Boost logo

Boost-Commit :

From: eric_at_[hidden]
Date: 2008-03-05 15:41:40


Author: eric_niebler
Date: 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
New Revision: 43519
URL: http://svn.boost.org/trac/boost/changeset/43519

Log:
Merged revisions 42451-43517 via svnmerge from
https://svn.boost.org/svn/boost/trunk

................
  r42455 | johnmaddock | 2008-01-04 08:54:35 -0800 (Fri, 04 Jan 2008) | 1 line
  
  Fix typos.
................
  r42456 | eric_niebler | 2008-01-04 09:14:53 -0800 (Fri, 04 Jan 2008) | 1 line
  
  mark up borland and sun accumulators failures
................
  r42459 | andreas_huber69 | 2008-01-04 10:23:18 -0800 (Fri, 04 Jan 2008) | 1 line
  
  This should fix template parameter shadowing errors for gcc and Intel compilers.
................
  r42462 | bgubenko | 2008-01-04 15:55:43 -0800 (Fri, 04 Jan 2008) | 1 line
  
  mark Accumulators tests for gcc 4.2.1 affected by GCC Bugzilla Bug 33580
................
  r42471 | turkanis | 2008-01-04 20:51:49 -0800 (Fri, 04 Jan 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 42441-42469; added 'std::' for Intel on Linux/Darwin; added STDCXX workaround for codecvt; fixed docs for invert.hpp
................
  r42473 | turkanis | 2008-01-04 23:35:44 -0800 (Fri, 04 Jan 2008) | 1 line
  
  new iostreams expected failures: stream_offset_64bit_test.cpp on Borland, and wide stream tests on gcc-3.4.2_hpux_pa_risc
................
  r42475 | andreas_huber69 | 2008-01-05 04:42:02 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Added defaults for in_state_reaction template parameters and updated tests accordingly.
................
  r42476 | bemandawes | 2008-01-05 06:41:55 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Disable Microsoft "secure" overloads in Dinkumware libraries since they cause compile errors with Intel versions 9 and 10
................
  r42478 | jurko | 2008-01-05 07:19:53 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Typo corrections. Minor stylistic changes.
................
  r42479 | jurko | 2008-01-05 08:53:03 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Updated Boost.Jam command line option texts. Minor stylistic changes.
................
  r42480 | jurko | 2008-01-05 08:55:36 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Typo corrections. Minor stylistic changes.
................
  r42481 | jurko | 2008-01-05 08:56:42 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Typo correction. Corrected an invalid command-line option name.
................
  r42482 | jurko | 2008-01-05 08:57:17 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Corrected an invalid command-line option name reference.
................
  r42483 | jurko | 2008-01-05 08:58:01 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Corrected an out-of-date comment listing all command-line options.
................
  r42484 | jurko | 2008-01-05 09:11:50 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Corrected the used file suffix for the VERBATIM file type. Now the documentation is in sync with the 'customization' example. This also closes the Trac ticket 134. Minor stylistic changes.
................
  r42485 | jurko | 2008-01-05 09:46:45 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Stylistic comment changes & typo corrections.
................
  r42486 | jurko | 2008-01-05 09:52:31 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Stylistic comment changes & typo corrections in several files. Corrected an incorrect error message in boost-build/build/project.jam displayed when a --build-dir command-line option and a non top-level project build-dir attribute are specified.
................
  r42487 | jurko | 2008-01-05 09:54:02 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Cleaned up some import rule calls.
................
  r42488 | jurko | 2008-01-05 10:02:23 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Documentation wording cleaned up a bit.
................
  r42489 | jurko | 2008-01-05 10:13:10 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Removed or simplified some import calls. Comment updates. Minor stylistic changes.
................
  r42490 | jurko | 2008-01-05 10:14:20 -0800 (Sat, 05 Jan 2008) | 2 lines
  
  Simplified the used make rules. Removed some dead code. Minor stylistic changes.
................
  r42492 | jurko | 2008-01-05 10:29:36 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Removed trailing spaces and some empty lines.
................
  r42494 | jurko | 2008-01-05 12:02:24 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Minor stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, etc.
................
  r42495 | jurko | 2008-01-05 12:06:15 -0800 (Sat, 05 Jan 2008) | 2 lines
  
  Cleaned up where the stage module is imported in tools/builtin.jam. Added a missing import in tools/stage.jam that causes errors with the previous fix. Minor stylistic changes in tools/stage.jam.
................
  r42496 | jurko | 2008-01-05 12:14:48 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Comment cleanup.
................
  r42497 | jurko | 2008-01-05 12:37:44 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Minor stylistic changes - cleaned up import calls, wrapped much text at 80 characters updated comments, typo corrections, removed trailing spaces, etc.
................
  r42498 | jurko | 2008-01-05 12:48:50 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Renamed some Jamfile and project-root.jam references to Jamfile.jam and Jamroot.jam respectively.
................
  r42499 | jurko | 2008-01-05 13:37:15 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Test code cleaned up a bit. No functional changes.
................
  r42502 | hkaiser | 2008-01-05 14:44:28 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Wave: updated copyright messages to include the year 2008 (merged from release branch).
................
  r42504 | jurko | 2008-01-05 15:18:17 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Refactored the test into two separate test functions. Made the 'directory names with dots' test use the expect_output_line() tool instead of a manual find, causing a better diagnostic to be displayed in case of a failure. Made one of the test Jam scripts more compact. Made the test use the Jamroot.jam file instead of project-root.jam.
................
  r42505 | bgubenko | 2008-01-05 15:35:05 -0800 (Sat, 05 Jan 2008) | 1 line
  
  mark up accumulators library test weighted_kurtosis for acc toolset
................
  r42506 | jurko | 2008-01-05 16:25:48 -0800 (Sat, 05 Jan 2008) | 1 line
  
  No functional changes but only stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, removing empty lines, made tests use Jamfile.jam and Jamroot.jam Boost Build script names, removed unnecessary module imports, etc.
................
  r42507 | jurko | 2008-01-05 16:53:09 -0800 (Sat, 05 Jan 2008) | 1 line
  
  No functional changes but only stylistic changes such as: comment typo corrections, wrapping lines to 80 characters, indentations, removing trailing spaces, removing empty lines, removed unnecessary module imports, etc.
................
  r42508 | jurko | 2008-01-05 22:15:39 -0800 (Sat, 05 Jan 2008) | 5 lines
  
  Refactored build-system.jam. Added many detailed comments.
  
  Test configuration module now gets loaded the same as all other configuration modules.
  
  In addition to being able to specify which user configuration to load, user may now also prevent loading the user configuration by specifying an empty file name for it.
................
  r42509 | jurko | 2008-01-05 22:50:56 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Added a --test-config command-line option for specifying where the test configuration file should be loaded from instead of always being looked up in Boost Build's test folder. This allows non-test builds to not use test config when it exists on the system and different tests to use different test configurations when needed.
................
  r42510 | jurko | 2008-01-05 22:58:24 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Specifying that a build uses test configuration no longer prevents toolset auto-configuration and therefore no longer causes --toolset options to be ignored.
................
  r42511 | jurko | 2008-01-05 23:13:28 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Minor stylistic comment changes.
................
  r42512 | jurko | 2008-01-05 23:17:08 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Added support for choosing the toolset and toolset version to be used 'by default' by Boost Build. Allows testing of default toolset functionality.
................
  r42513 | jurko | 2008-01-05 23:26:46 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Upgraded the tool for testing that a certain line exists in the given output support so that it now also knows how to test that a certain line does not exist in the given output.
................
  r42514 | jurko | 2008-01-05 23:28:47 -0800 (Sat, 05 Jan 2008) | 1 line
  
  Added the --ignore-site-config option telling Boost.Build not to load the site configuration file.
................
  r42516 | jurko | 2008-01-06 00:16:34 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Stylistic changes: typo corrections, comment alignments, output string updates, no functional changes, etc.
................
  r42527 | andreas_huber69 | 2008-01-06 05:49:31 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Various doc updates.
................
  r42528 | danieljames | 2008-01-06 08:47:16 -0800 (Sun, 06 Jan 2008) | 2 lines
  
  Add Boost.Unordered and add to the documentation. Not fully integrated yet.
................
  r42529 | danieljames | 2008-01-06 08:48:36 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Add more libraries that use Boost.Hash to its intro.
................
  r42530 | danieljames | 2008-01-06 08:49:11 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Add Boost.Unordered to Boost.Hash's intro.
................
  r42531 | danieljames | 2008-01-06 08:59:18 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Combine the 'container' and 'unordered' tests.
................
  r42532 | danieljames | 2008-01-06 08:59:49 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Give the unordered exception test suite its own name.
................
  r42533 | danieljames | 2008-01-06 09:13:15 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Add the contents of compile_tests.cpp to set_compile.cpp and map_compile.cpp
................
  r42534 | danieljames | 2008-01-06 09:16:51 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Rename the test-suites to match other libraries' style.
................
  r42535 | danieljames | 2008-01-06 09:23:16 -0800 (Sun, 06 Jan 2008) | 2 lines
  
  Add forwarding html files for Boost.Unordered.
................
  r42536 | danieljames | 2008-01-06 09:40:32 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Add Boost.Unordered to the regression tests.
................
  r42537 | eric_niebler | 2008-01-06 09:44:06 -0800 (Sun, 06 Jan 2008) | 1 line
  
  add myself as maintainer of accumulators
................
  r42538 | danieljames | 2008-01-06 09:45:18 -0800 (Sun, 06 Jan 2008) | 2 lines
  
  Add library identification.
................
  r42539 | danieljames | 2008-01-06 09:48:11 -0800 (Sun, 06 Jan 2008) | 2 lines
  
  Add the unordered library to the maintainers list.
................
  r42540 | danieljames | 2008-01-06 09:56:06 -0800 (Sun, 06 Jan 2008) | 2 lines
  
  Add unordered to the library list.
................
  r42544 | turkanis | 2008-01-06 10:32:05 -0800 (Sun, 06 Jan 2008) | 18 lines
  
  copy.hpp:
  
      fix for Visual Age: std::min was passed arguments of different types; replaced std:: min with conditional
  
  detail/streambuf/indirect_streambuf.hpp:
  
      removed trailing comma in enum definition
  
  test/combine_test.cpp:
  test/symmetric_filter_test.cpp:
  test/compose_test.cpp:
  test/close_test.cpp:
  test/invert_test.cpp:
  test/tee_test.cpp:
  test/restrict_test.cpp:
  test/Jamfile.v2:
  
      moved tests for close() into the test files for various adapters
................
  r42546 | jurko | 2008-01-06 12:06:33 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Corrected a bug with the customized default toolset being read from the toolset module but defined in the build-system module. Effect was that customized default toolsets were getting ignored.
................
  r42547 | jurko | 2008-01-06 12:37:55 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Simple code cleanup. Typo corrections.
................
  r42548 | jurko | 2008-01-06 12:43:25 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Added support for tests configuring whether they want their Boost Build to ignore toolset requirements instead of always ignoring them. Minor stylistic changes.
................
  r42549 | jurko | 2008-01-06 12:56:20 -0800 (Sun, 06 Jan 2008) | 1 line
  
  Added new tests related to Boost Build's default toolset handling. They test that the correct default toolset gets use and that when it gets used that has no different status than any other explicitly specified toolset.
................
  r42563 | turkanis | 2008-01-06 17:26:52 -0800 (Sun, 06 Jan 2008) | 1 line
  
  marked restrict_test.cpp as failing on vacpp and stream_offset_64bit_test as failing on sun (iostreams)
................
  r42564 | turkanis | 2008-01-06 17:32:29 -0800 (Sun, 06 Jan 2008) | 1 line
  
  alphabetized the iostreams failures
................
  r42565 | turkanis | 2008-01-06 21:20:32 -0800 (Sun, 06 Jan 2008) | 5 lines
  
  merged changes from branches/iostreams_dev, revisions 42544-42544
  
  - added "slice" as an alias for "restrict", for platforms on which "restrict" is a keyword
  - attempted to configure file_descriptor for __IBMCPP__
  - added better error output to stream_offset_64bit_test.cpp
................
  r42566 | jurko | 2008-01-07 09:00:59 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Corrected explicitly specified user-config file handling. Was not looking for the specified file in the regular path instead of the current folder and did not work with absolute paths.
................
  r42567 | jurko | 2008-01-07 10:15:13 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Code cleanup. Converted to using True/False instead of 1/0. Changed to obey documented coding conventions regarding whitespace and function parameters. Renamed private member functions to use the __ name prefix.
................
  r42568 | jurko | 2008-01-07 10:38:28 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Added a new configuration test making sure that the bug with not being able to process absolute user-config configuration file references never rears its ugly head again.
................
  r42570 | eric_niebler | 2008-01-07 11:06:31 -0800 (Mon, 07 Jan 2008) | 1 line
  
  s/order/tail/
................
  r42571 | eric_niebler | 2008-01-07 11:08:16 -0800 (Mon, 07 Jan 2008) | 1 line
  
  add missing includes, fix signed/unsigned warnings, clean-up trailing whitespace, fixes #1552
................
  r42572 | danieljames | 2008-01-07 11:40:32 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Rename the exception tests so that they don't clash with the normal tests.
................
  r42573 | danieljames | 2008-01-07 11:41:05 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Remove some development code.
................
  r42575 | danieljames | 2008-01-07 11:44:13 -0800 (Mon, 07 Jan 2008) | 3 lines
  
  Add missing 'use namespace std'. Which I should have done when I was told about
  them before. Sorry.
................
  r42576 | danieljames | 2008-01-07 11:46:27 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Add support for multiple copyrights in the library info.
................
  r42578 | danieljames | 2008-01-07 11:51:02 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Reneame the set and map compile tests so they'll be adjacent in the test results.
................
  r42580 | danieljames | 2008-01-07 12:06:15 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Avoid some uses of an invalid pointer.
................
  r42581 | danieljames | 2008-01-07 12:07:12 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Use the default location for the reference documentation.
................
  r42587 | danieljames | 2008-01-07 13:05:42 -0800 (Mon, 07 Jan 2008) | 5 lines
  
  Fix a bug which was causing the memory area stuff to fail.
  
  I should probably try to be less clever and use memory area's lower
  bounds as the key, and do the extra work required to get that working.
................
  r42588 | danieljames | 2008-01-07 13:07:43 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Fix an off by one error.
................
  r42591 | danieljames | 2008-01-07 13:47:24 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Merge in spell check.
................
  r42596 | turkanis | 2008-01-07 15:13:26 -0800 (Mon, 07 Jan 2008) | 5 lines
  
  merged changes from branches/iostreams_dev, revisions 42565-42595:
  
  - Simplified implementation with the help to the C-runtime function _get_osfhandle so that on Windows only a single HANDLE is stored and the POSIX-style implementation is never needed; added the handle_type on POSIX systems (typedef for int) and a function returning the underlying handle as an instance of handle_type
  - fixed the bug described in ticket Ticket #1551 (stream_buffer::seekpos ignores openmode parameter)
  - fixed test/operation_sequence_test.cpp file description
................
  r42598 | grafik | 2008-01-07 18:49:25 -0800 (Mon, 07 Jan 2008) | 1 line
  
  Mostly fix bad path calc for direct html from doxygen doc generation. (fixes #1562)
................
  r42600 | turkanis | 2008-01-07 19:49:23 -0800 (Mon, 07 Jan 2008) | 1 line
  
  merged changes from branches/iostreams_dev revisions 42595-42599; applied Dinkumware implementation of positioning functions to IBM Visual Age; simplified and corrected implementation
................
  r42602 | turkanis | 2008-01-07 20:20:38 -0800 (Mon, 07 Jan 2008) | 1 line
  
  removed unneeded headers, one of which (restrict.hpp) causes failures on IBM Visual Age
................
  r42603 | turkanis | 2008-01-07 20:52:54 -0800 (Mon, 07 Jan 2008) | 1 line
  
  removed spurious '.cpp' extension from test names (iostreams)
................
  r42612 | danieljames | 2008-01-08 05:59:01 -0800 (Tue, 08 Jan 2008) | 3 lines
  
  Merge in latest unordered developments (revisions 42607-42611).
................
  r42613 | jurko | 2008-01-08 06:40:24 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Added a new test making sure properties conditioned on multiple different feature values are handled correctly. This especially includes testing the case when one of those features is <toolset> and the value given for it includes a toolset version.
................
  r42614 | jurko | 2008-01-08 07:21:15 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Made some debugging messages more consistent.
................
  r42615 | eric_niebler | 2008-01-08 09:42:20 -0800 (Tue, 08 Jan 2008) | 1 line
  
  support for LaTeX formulas in Doxygen comments
................
  r42616 | eric_niebler | 2008-01-08 09:43:34 -0800 (Tue, 08 Jan 2008) | 1 line
  
  automatically generate png files from LaTeX formulas using doxygen
................
  r42617 | jurko | 2008-01-08 09:51:30 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Comment correction.
................
  r42619 | danieljames | 2008-01-08 10:15:01 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Merge: Another missing 'using namespace std'
................
  r42620 | eric_niebler | 2008-01-08 10:43:43 -0800 (Tue, 08 Jan 2008) | 1 line
  
  fix signed/unsigned warnings, clean up trailing whitespace
................
  r42624 | eric_niebler | 2008-01-08 13:40:52 -0800 (Tue, 08 Jan 2008) | 1 line
  
  disable iterator debugging for all msvc versions
................
  r42625 | turkanis | 2008-01-08 14:25:01 -0800 (Tue, 08 Jan 2008) | 1 line
  
  merged changes from branches/iostreams_dev, revisions 42602-42624: adding missing included to fix #1550; fix for positioning on IBM; fix for file_descriptor on POSIX; restructed the version range for the Borland workaround in large_file_test.cpp
................
  r42626 | jurko | 2008-01-08 17:09:26 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Minor stylistic code indentation changes.
................
  r42627 | jurko | 2008-01-08 17:11:03 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Tried trailing spaces. Minor comment typo corrections.
................
  r42628 | jurko | 2008-01-08 17:18:38 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Remove trailing spaces. Removed an empty line.
................
  r42629 | jurko | 2008-01-08 20:05:29 -0800 (Tue, 08 Jan 2008) | 8 lines
  
  Updated the __ACTION_RULE__ to not return its action command output as a single string but instead split it into a list of output lines. This allows Jam code using this output to work correctly independently of what newline character combinations are in use. This was causing problems with Boost Build unit tests which can now be updated to pass.
  
  Consequences & checks:
    * Final __ACTION_RULE__ rule parameter has changed from output ? to output-lines *.
    * Updated corresponding Jam documentation.
    * Updated the all related Boost Build code.
    * No code on the Boost trunk uses this rule except for Boost Build itself.
................
  r42630 | jurko | 2008-01-08 20:15:35 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Fixed a failing test by making it access action output using the __ACTION_RULE__ rule so it would not be affected by the level of debug output given by Boost Build/Jam.
................
  r42631 | jurko | 2008-01-08 20:30:25 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Fixed a failing test by making it access its action results using the __ACTION_RULE__ rule. Now it works with the default debug level settings (i.e. no action output displayed).
................
  r42632 | grafik | 2008-01-08 20:31:58 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Revert various changes that break backward compatibility, and also some minor edits.
................
  r42633 | grafik | 2008-01-08 20:34:12 -0800 (Tue, 08 Jan 2008) | 1 line
  
  Revert various changes that break backward compatibility, and also some minor edits.
................
  r42637 | jurko | 2008-01-09 06:36:37 -0800 (Wed, 09 Jan 2008) | 1 line
  
  Updated the test so it passes on Windows. Had to change it to enable action output logging and compensate for the fact that now action names are sent to the output as well. Minor stylistic changes.
................
  r42639 | jurko | 2008-01-09 09:03:45 -0800 (Wed, 09 Jan 2008) | 1 line
  
  Updated the test so it passes on Windows. Had to change it to enable action output logging and compensate for the fact that now action names are sent to the output as well. Minor stylistic changes.
................
  r42641 | eric_niebler | 2008-01-09 12:21:51 -0800 (Wed, 09 Jan 2008) | 1 line
  
  copy the png files to where fop will look for them when building pdf
................
  r42642 | eric_niebler | 2008-01-09 12:33:05 -0800 (Wed, 09 Jan 2008) | 1 line
  
  fix more signed/unsigned warnings
................
  r42644 | turkanis | 2008-01-09 15:13:57 -0800 (Wed, 09 Jan 2008) | 1 line
  
  marked stream_offset_64bit_test as an expected failure on vacpp (iostreams)
................
  r42645 | turkanis | 2008-01-09 15:16:17 -0800 (Wed, 09 Jan 2008) | 1 line
  
  replaced 2 occurrences of the identifier 'restrict' with BOOST_IOSTREAMS_RESTRICT
................
  r42646 | turkanis | 2008-01-09 19:27:51 -0800 (Wed, 09 Jan 2008) | 1 line
  
  added expected failures for Sun and IBM; removed a Borland intermittent failure; removed some obsolete toolsets (iostreams)
................
  r42647 | troyer | 2008-01-10 01:49:16 -0800 (Thu, 10 Jan 2008) | 1 line
  
  Optimizations for Boost.MPI
................
  r42648 | troyer | 2008-01-10 03:54:36 -0800 (Thu, 10 Jan 2008) | 1 line
  
  Undid backward-compatibility breaking change in pair serialization
................
  r42651 | johnmaddock | 2008-01-10 04:10:37 -0800 (Thu, 10 Jan 2008) | 1 line
  
  Apply patch from Issue #1187.
................
  r42657 | anthonyw | 2008-01-10 06:19:36 -0800 (Thu, 10 Jan 2008) | 1 line
  
  removed references to NULL
................
  r42658 | turkanis | 2008-01-10 10:50:19 -0800 (Thu, 10 Jan 2008) | 1 line
  
  marked up two moe expected failures for sun-5.7-5.8 (iostreams)
................
  r42664 | bgubenko | 2008-01-10 13:13:42 -0800 (Thu, 10 Jan 2008) | 1 line
  
  marked iostreams library compose_test for gcc-3.4.6_linux_ia64 : linking exceeds 10 min. limit
................
  r42665 | danieljames | 2008-01-10 14:25:35 -0800 (Thu, 10 Jan 2008) | 2 lines
  
  Initialise svnmerge for merging changes for unordered.
................
  r42666 | danieljames | 2008-01-10 14:30:46 -0800 (Thu, 10 Jan 2008) | 6 lines
  
  Merge latest unordered developments:
  
  Make simple_test test a little more.
  Use doubles for calculating max load factor.
  Some workarounds, mostly for Borland and running the tests.
................
  r42670 | turkanis | 2008-01-10 16:02:36 -0800 (Thu, 10 Jan 2008) | 1 line
  
  merged changes from branches/iostreams_dev, revisions 42645=42660; fix for Intel-darwin; removed dependence of file_descriptor_test and mapped_file_test on library boost_iostreams
................
  r42672 | turkanis | 2008-01-10 17:35:46 -0800 (Thu, 10 Jan 2008) | 1 line
  
  force static runtime-link for intel-darwin
................
  r42674 | johnmaddock | 2008-01-11 01:55:43 -0800 (Fri, 11 Jan 2008) | 1 line
  
  Fix bugs reported by Will Drewry: certain invalid regexes can cause the library to access invalid memory, changed to ensure that the correct exception is thrown long before this happens.
................
  r42676 | jurko | 2008-01-11 05:44:51 -0800 (Fri, 11 Jan 2008) | 1 line
  
  Removed the manual boost-build.jam file creation since that file already exists in the SVN repository and this only overwrote it with the same content minus the copyright notice. Removed a reference to the no longer existing boost_build_v2.html file.
................
  r42677 | johnmaddock | 2008-01-11 05:48:57 -0800 (Fri, 11 Jan 2008) | 1 line
  
  Update for Intel-10.1.
................
  r42684 | turkanis | 2008-01-11 11:12:22 -0800 (Fri, 11 Jan 2008) | 1 line
  
  another attempt to fix linking for compression tests on intel-darwin
................
  r42688 | turkanis | 2008-01-11 14:58:21 -0800 (Fri, 11 Jan 2008) | 1 line
  
  merged changes from iostreams_dev; fixes for IBM and more documentation
................
  r42689 | turkanis | 2008-01-11 18:45:55 -0800 (Fri, 11 Jan 2008) | 1 line
  
  more detailed note for vacpp (iostreams)
................
  r42691 | eric_niebler | 2008-01-11 22:43:28 -0800 (Fri, 11 Jan 2008) | 1 line
  
  new style transforms a-la proto v3
................
  r42693 | nesotto | 2008-01-12 04:38:57 -0800 (Sat, 12 Jan 2008) | 1 line
  
  doc fixes
................
  r42698 | danieljames | 2008-01-12 06:43:40 -0800 (Sat, 12 Jan 2008) | 9 lines
  
  Merge the latest unordered changes. These are concerned with getting the tests
  working on more compilers. The biggest change is that the exception tests have
  been changed to use a very simple exception testing mechanism on top of
  lightweight_test. This was because Boost.Test exception testing isn't working
  on several platforms. I'm trying to set this up so that I can use Boost.Test on
  compilers which it completely supports, and lightweight test on others.
  Boost.Test tests more than my simple exception testing code ever will so it's
  worth using where I can.
................
  r42700 | eric_niebler | 2008-01-12 09:09:17 -0800 (Sat, 12 Jan 2008) | 1 line
  
  missing includes
................
  r42701 | eric_niebler | 2008-01-12 09:40:40 -0800 (Sat, 12 Jan 2008) | 1 line
  
  more msvc-7.1-friendly default_context implementation, more missing headers
................
  r42706 | turkanis | 2008-01-12 12:19:42 -0800 (Sat, 12 Jan 2008) | 1 line
  
  corrected use of feature detection macros for AIX; simplified implementation slightly; updated docs
................
  r42707 | turkanis | 2008-01-12 12:20:35 -0800 (Sat, 12 Jan 2008) | 1 line
  
  removed intel-darwin sepcific code, since it didn't work
................
  r42708 | eric_niebler | 2008-01-12 13:19:45 -0800 (Sat, 12 Jan 2008) | 1 line
  
  port toy_spirit example to proto v3
................
  r42713 | turkanis | 2008-01-12 23:17:07 -0800 (Sat, 12 Jan 2008) | 1 line
  
  improved docs
................
  r42715 | nesotto | 2008-01-13 03:37:41 -0800 (Sun, 13 Jan 2008) | 1 line
  
  fixed #if to #ifdef
................
  r42722 | bgubenko | 2008-01-13 07:52:12 -0800 (Sun, 13 Jan 2008) | 1 line
  
  better note for iostreams library test compose_test on gcc-3.4.6_linux_ia64
................
  r42723 | bgubenko | 2008-01-13 08:12:37 -0800 (Sun, 13 Jan 2008) | 1 line
  
  marked up random library test random_test for gcc-3.4.6_linux_ia64
................
  r42724 | danieljames | 2008-01-13 08:19:26 -0800 (Sun, 13 Jan 2008) | 3 lines
  
  Merge in latest changes to Boost.Unordered. Some compiler workarounds and
  starting to clean up the tests a little.
................
  r42729 | eric_niebler | 2008-01-13 11:39:54 -0800 (Sun, 13 Jan 2008) | 1 line
  
  work around msvc-7.1 bug
................
  r42741 | eric_niebler | 2008-01-13 13:56:56 -0800 (Sun, 13 Jan 2008) | 1 line
  
  boost template instantiation depth on darwin
................
  r42745 | johnmaddock | 2008-01-14 01:46:12 -0800 (Mon, 14 Jan 2008) | 1 line
  
  Ooops, fix broken escape sequence.
................
  r42747 | johnmaddock | 2008-01-14 01:58:36 -0800 (Mon, 14 Jan 2008) | 1 line
  
  Fix documentation typos.
................
  r42750 | chris_kohlhoff | 2008-01-14 05:13:35 -0800 (Mon, 14 Jan 2008) | 2 lines
  
  Fix concept name in comment.
................
  r42751 | johnmaddock | 2008-01-14 05:17:09 -0800 (Mon, 14 Jan 2008) | 1 line
  
  Patch regex concept checks and TR1 library to work with VC9 + MS TR1 feature pack.
................
  r42752 | chris_kohlhoff | 2008-01-14 05:20:06 -0800 (Mon, 14 Jan 2008) | 2 lines
  
  Add missing broken pipe error.
................
  r42753 | chris_kohlhoff | 2008-01-14 05:21:37 -0800 (Mon, 14 Jan 2008) | 3 lines
  
  Don't include sys/time.h when compiling with aCC, as that header does not
  supply pselect(), which is needed for HP-UX/aCC to work correctly.
................
  r42754 | chris_kohlhoff | 2008-01-14 05:22:21 -0800 (Mon, 14 Jan 2008) | 2 lines
  
  Disable noisy and incorrect /Wp64 warnings generated by MSVC.
................
  r42755 | chris_kohlhoff | 2008-01-14 05:24:28 -0800 (Mon, 14 Jan 2008) | 3 lines
  
  Don't call epoll_wait/kevent if there are no old operations (where old means
  added prior to the last epoll_wait/kevent call) needing to be demultiplexed.
................
  r42756 | chris_kohlhoff | 2008-01-14 05:25:24 -0800 (Mon, 14 Jan 2008) | 2 lines
  
  Silence some integer truncation warnings.
................
  r42758 | chris_kohlhoff | 2008-01-14 05:27:52 -0800 (Mon, 14 Jan 2008) | 8 lines
  
  Silence some integer truncation warnings.
  
  Only perform the windows-bug workaround where we use a short timeout with
  GetQueuedCompletionStatus from one thread, i.e. the timer thread.
  
  Keep track of the number of OVERLAPPED-derived operations to ensure that
  they all get cleaned up when the io_service is destroyed.
................
  r42759 | chris_kohlhoff | 2008-01-14 05:29:08 -0800 (Mon, 14 Jan 2008) | 5 lines
  
  Check for truncation when converting buffer size from size_t to openssl's
  int argument.
  
  Try to fix possible thread-safety issues in SSL wrapper.
................
  r42766 | eric_niebler | 2008-01-14 08:49:32 -0800 (Mon, 14 Jan 2008) | 1 line
  
  register mpl::bool_ with typeof
................
  r42767 | dgregor | 2008-01-14 09:01:26 -0800 (Mon, 14 Jan 2008) | 1 line
  
  Improved suggestion for dealing with Qt MOC, from Niels Dekker
................
  r42771 | niels_dekker | 2008-01-14 10:17:30 -0800 (Mon, 14 Jan 2008) | 1 line
  
  Documented value_init workaround to compiler issues, added new introduction, updated to 2003 edition of C++ Standard -- reviewed by Fernando Cacciola
................
  r42773 | guwi17 | 2008-01-14 11:04:43 -0800 (Mon, 14 Jan 2008) | 2 lines
  
  - fixed typo
................
  r42776 | eric_niebler | 2008-01-14 12:26:58 -0800 (Mon, 14 Jan 2008) | 1 line
  
  add skip(), for specifying a skip regex
................
  r42778 | turkanis | 2008-01-14 12:47:17 -0800 (Mon, 14 Jan 2008) | 1 line
  
  overhaul of dual_use filters: close() is now called just once; suppressed Borland/Dinkumware warnings in mapped_file.hpp
................
  r42779 | niels_dekker | 2008-01-14 13:46:20 -0800 (Mon, 14 Jan 2008) | 1 line
  
  Minor "beautifications" of value_init documentation, inc. placing references in order of appearance
................
  r42780 | lbourdev | 2008-01-14 14:06:07 -0800 (Mon, 14 Jan 2008) | 3 lines
  
  Changed size_t to std::size_t
................
  r42781 | lbourdev | 2008-01-14 15:25:10 -0800 (Mon, 14 Jan 2008) | 3 lines
  
  GIL: Changing size_t to std::size_t
................
  r42788 | eric_niebler | 2008-01-14 22:46:39 -0800 (Mon, 14 Jan 2008) | 1 line
  
  code clean-up, begin updating the transform section in proto's docs
................
  r42789 | eric_niebler | 2008-01-14 23:46:51 -0800 (Mon, 14 Jan 2008) | 1 line
  
  try disabling iterator debugging for intel-win toolset
................
  r42797 | t_schwinger | 2008-01-15 11:46:10 -0800 (Tue, 15 Jan 2008) | 3 lines
  
  adds missing #include
................
  r42798 | niels_dekker | 2008-01-15 11:53:28 -0800 (Tue, 15 Jan 2008) | 1 line
  
  value_init doc + test: Added revision date.
................
  r42801 | jurko | 2008-01-15 13:13:52 -0800 (Tue, 15 Jan 2008) | 1 line
  
  Minor stylistic comment changes. Removed trailing spaces.
................
  r42804 | eric_niebler | 2008-01-15 14:06:51 -0800 (Tue, 15 Jan 2008) | 1 line
  
  document call<>, make<> and bind<>
................
  r42807 | turkanis | 2008-01-15 14:54:40 -0800 (Tue, 15 Jan 2008) | 1 line
  
  rewrote treatment of result_of in terms of a new (hopefully temporary) config macro BOOST_IOSTREAMS_NO_RESULT_OF; fixed docs
................
  r42811 | turkanis | 2008-01-15 17:14:04 -0800 (Tue, 15 Jan 2008) | 1 line
  
  reverted last change except for doc fixes; regression was result of test runner's local patch
................
  r42813 | turkanis | 2008-01-15 17:16:36 -0800 (Tue, 15 Jan 2008) | 1 line
  
  botched last commit
................
  r42814 | djenkins | 2008-01-15 22:39:34 -0800 (Tue, 15 Jan 2008) | 1 line
  
  missing include
................
  r42815 | niels_dekker | 2008-01-16 01:35:12 -0800 (Wed, 16 Jan 2008) | 1 line
  
  Added convenience class initialized_value, as announced at http://article.gmane.org/gmane.comp.lib.boost.devel/169833
................
  r42816 | niels_dekker | 2008-01-16 01:37:25 -0800 (Wed, 16 Jan 2008) | 1 line
  
  Added test and documentation for convenience class initialized_value, that was added with changeset [42815]
................
  r42817 | chris_kohlhoff | 2008-01-16 05:46:01 -0800 (Wed, 16 Jan 2008) | 2 lines
  
  Set the openssl callback function for getting a thread ID.
................
  r42818 | anthonyw | 2008-01-16 07:23:36 -0800 (Wed, 16 Jan 2008) | 1 line
  
  Provide tss_cleanup_implemented as a dummy function on Windows CE to allow tests to run
................
  r42821 | t_schwinger | 2008-01-16 11:16:37 -0800 (Wed, 16 Jan 2008) | 3 lines
  
  works around MSVC7.1 problems (hopefully)
................
  r42822 | t_schwinger | 2008-01-16 11:17:09 -0800 (Wed, 16 Jan 2008) | 3 lines
  
  attempts to fix Borland regressions
................
  r42823 | eric_niebler | 2008-01-16 11:24:33 -0800 (Wed, 16 Jan 2008) | 1 line
  
  document when<> and is_callable<>
................
  r42825 | turkanis | 2008-01-16 12:46:56 -0800 (Wed, 16 Jan 2008) | 1 line
  
  replaced __IBMCPP__ with _AIX
................
  r42827 | turkanis | 2008-01-16 16:50:14 -0800 (Wed, 16 Jan 2008) | 1 line
  
  added pgi to toolsets expected to fail seekawble_file_test (iostreams)
................
  r42836 | eric_niebler | 2008-01-17 14:47:54 -0800 (Thu, 17 Jan 2008) | 1 line
  
  stl_iterator does better error handling
................
  r42837 | jurko | 2008-01-17 17:14:17 -0800 (Thu, 17 Jan 2008) | 1 line
  
  Stylistic changes. Removed trailing spaces. Removed empty lines. Corrected comment typos and wording.
................
  r42839 | eric_niebler | 2008-01-17 23:56:31 -0800 (Thu, 17 Jan 2008) | 1 line
  
  tweaks for better doxygen-ated output
................
  r42840 | eric_niebler | 2008-01-17 23:56:59 -0800 (Thu, 17 Jan 2008) | 1 line
  
  updated reference section
................
  r42841 | eric_niebler | 2008-01-17 23:58:48 -0800 (Thu, 17 Jan 2008) | 1 line
  
  add back reference section, document user-defined transforms
................
  r42843 | t_schwinger | 2008-01-18 06:37:41 -0800 (Fri, 18 Jan 2008) | 3 lines
  
  makes member object support work with BCC
................
  r42851 | johnmaddock | 2008-01-18 08:56:57 -0800 (Fri, 18 Jan 2008) | 1 line
  
  Add needed <iostream> include.
................
  r42852 | johnmaddock | 2008-01-18 09:05:35 -0800 (Fri, 18 Jan 2008) | 1 line
  
  We don't have a tr1::hash functor if the std lib is the Apache version.
................
  r42853 | hkaiser | 2008-01-18 09:56:53 -0800 (Fri, 18 Jan 2008) | 1 line
  
  Wave: removed T_DEFINED token id from the library.
................
  r42855 | johnmaddock | 2008-01-18 10:18:17 -0800 (Fri, 18 Jan 2008) | 1 line
  
  Needs to #include <cstring> in order to use std::memset.
................
  r42856 | danieljames | 2008-01-18 11:35:55 -0800 (Fri, 18 Jan 2008) | 2 lines
  
  Merge in some changes to the unordered tests.
................
  r42857 | t_schwinger | 2008-01-18 12:05:56 -0800 (Fri, 18 Jan 2008) | 3 lines
  
  simplifies function_types markup
................
  r42858 | t_schwinger | 2008-01-18 12:52:06 -0800 (Fri, 18 Jan 2008) | 3 lines
  
  attempts to fix BCB 5.9 regression in synthesis/mem_func_ptr_cv_ptr_to_this test
................
  r42859 | t_schwinger | 2008-01-18 13:06:44 -0800 (Fri, 18 Jan 2008) | 3 lines
  
  attempts to fix pathscale failure
................
  r42868 | niels_dekker | 2008-01-19 12:21:18 -0800 (Sat, 19 Jan 2008) | 1 line
  
  value_init_test now works around Borland 5.82 bug ("Error E2015: Ambiguity..." when using initialized_value), that is fixed with a newer compiler version
................
  r42869 | niels_dekker | 2008-01-19 12:52:04 -0800 (Sat, 19 Jan 2008) | 1 line
  
  Removed local named variable from value_initialized::operator=, as Fernando Cacciola suggested me to avoid unnecessary named variables.
................
  r42873 | bemandawes | 2008-01-19 18:01:35 -0800 (Sat, 19 Jan 2008) | 1 line
  
  Remove extraneous defines since they are inherited from library build Jamfile
................
  r42877 | johnmaddock | 2008-01-20 01:42:35 -0800 (Sun, 20 Jan 2008) | 1 line
  
  Add include of <eh.h> for msvc.
................
  r42878 | igaztanaga | 2008-01-20 03:54:47 -0800 (Sun, 20 Jan 2008) | 5 lines
  
  Updated Interprocess and Intrusive:
  
  -> Added linear slist to intrusive
  -> Updated all allocators to version 2 allocators in Interprocess
  -> Optimized rbtree_best_fit size overhead to 1 std:size_t.
................
  r42881 | danieljames | 2008-01-20 09:37:21 -0800 (Sun, 20 Jan 2008) | 1 line
  
  Include <new> to get std::bad_alloc.
................
  r42882 | danieljames | 2008-01-20 10:55:57 -0800 (Sun, 20 Jan 2008) | 22 lines
  
  Merged revisions 42856-42881 via svnmerge from
  https://svn.boost.org/svn/boost/branches/unordered/trunk
  
  ........
    r42880 | danieljames | 2008-01-20 16:10:43 +0000 (Sun, 20 Jan 2008) | 17 lines
    
    Simplify the tests a little:
    
    Add a parameter to random_values to control what sort of values it generates.
    This means that instead of using equivalent_object to test collisions (which
    was a total hack) we now just need another parameter.
    
    This requires some meta programming to act differently for maps and sets.
    Because of this pairs no longer need to be generated so remove the code for
    doing that (which doesn't work on some compilers).
    
    Remove the generator object, just call generate directly.
    
    Remove some of the tests using int containers, they didn't really add to
    anthing other than the compile time (some tests are timing out).
  ........
................
  r42884 | jurko | 2008-01-20 12:18:50 -0800 (Sun, 20 Jan 2008) | 5 lines
  
  Minor stylistic changes:
    * Removed trailing spaces.
    * Added a comment for code discovering the user's home-directories.
    * Removed a stale regex import.
    * Removed an old corpse 'identity' rule found inside the __test__ rule.
................
  r42890 | johnmaddock | 2008-01-21 01:41:17 -0800 (Mon, 21 Jan 2008) | 1 line
  
  Only disable wide character support for HP aCC: for gcc the logic is already taken care of in libstdcpp3.hpp.
................
  r42897 | hkaiser | 2008-01-21 08:13:31 -0800 (Mon, 21 Jan 2008) | 1 line
  
  Removed a duplicate entry.
................
  r42898 | rogeeff | 2008-01-21 09:02:53 -0800 (Mon, 21 Jan 2008) | 1 line
  
  changed output of booleans
................
  r42899 | johnmaddock | 2008-01-21 10:11:09 -0800 (Mon, 21 Jan 2008) | 1 line
  
  Updated type traits library so that everything compiles with -Wall -pedantic with GCC.
................
  r42904 | davedeakins | 2008-01-21 11:38:44 -0800 (Mon, 21 Jan 2008) | 1 line
  
  Don't include <eh.h> for WinCE (since WinCE does not have this header)
................
  r42906 | eric_niebler | 2008-01-21 12:39:35 -0800 (Mon, 21 Jan 2008) | 1 line
  
  minor clean-up
................
  r42909 | rogeeff | 2008-01-21 19:41:23 -0800 (Mon, 21 Jan 2008) | 1 line
  
  missing header
................
  r42911 | igaztanaga | 2008-01-22 08:49:22 -0800 (Tue, 22 Jan 2008) | 1 line
  
  Refactor some allocation code and fix instantiation problem in 64 bit platforms
................
  r42916 | eric_niebler | 2008-01-22 12:42:18 -0800 (Tue, 22 Jan 2008) | 1 line
  
  add concepts section to proto reference
................
  r42917 | hljin | 2008-01-22 14:10:48 -0800 (Tue, 22 Jan 2008) | 1 line
  
  GIL: fixed the problem with std::hex by adding #include <ios>
................
  r42918 | eric_niebler | 2008-01-22 18:23:15 -0800 (Tue, 22 Jan 2008) | 1 line
  
  proto works with boost 1.34.1
................
  r42929 | johnmaddock | 2008-01-23 08:08:44 -0800 (Wed, 23 Jan 2008) | 1 line
  
  Applies fix for issue #1598: added missing #include.
................
  r42931 | igaztanaga | 2008-01-23 11:34:39 -0800 (Wed, 23 Jan 2008) | 1 line
  
  Ticket #1593: [interprocess] 'streamoff' : is not a member of 'std'
................
  r42934 | andreas_huber69 | 2008-01-23 13:46:58 -0800 (Wed, 23 Jan 2008) | 1 line
  
  Fixes #1594
................
  r42935 | eric_niebler | 2008-01-23 13:57:47 -0800 (Wed, 23 Jan 2008) | 1 line
  
  fix dependency issue in Jamfile
................
  r42938 | jano_gaspar | 2008-01-23 15:04:57 -0800 (Wed, 23 Jan 2008) | 1 line
  
  circular_buffer: updated documentation
................
  r42939 | eric_niebler | 2008-01-23 15:25:24 -0800 (Wed, 23 Jan 2008) | 1 line
  
  fix quickbook scanner to recognize the [import ...] block
................
  r42943 | danieljames | 2008-01-23 15:39:59 -0800 (Wed, 23 Jan 2008) | 60 lines
  
  Merged revisions 42882-42941 via svnmerge from
  https://svn.boost.org/svn/boost/branches/unordered/trunk
  
  ................
    r42887 | danieljames | 2008-01-20 21:32:04 +0000 (Sun, 20 Jan 2008) | 10 lines
    
    Merged revisions 42590-42664,42667-42697,42699-42723,42725-42855,42857-42881 via svnmerge from
    https://svn.boost.org/svn/boost/trunk
    
    ........
      r42881 | danieljames | 2008-01-20 17:37:21 +0000 (Sun, 20 Jan 2008) | 1 line
      
      Include <new> to get std::bad_alloc.
    ........
  ................
    r42892 | danieljames | 2008-01-21 13:03:16 +0000 (Mon, 21 Jan 2008) | 1 line
    
    On some compilers the Rogue Wave/Apache stdcxx library doesn't have the normal std::distance, but instead has a variant that takes the result as the third parameter so it doesn't have to work out the type from the iterator.
  ................
    r42893 | danieljames | 2008-01-21 13:07:58 +0000 (Mon, 21 Jan 2008) | 1 line
    
    Fix a typo in the last commit.
  ................
    r42895 | danieljames | 2008-01-21 13:33:29 +0000 (Mon, 21 Jan 2008) | 1 line
    
    Remove tabs from the last checkin.
  ................
    r42896 | danieljames | 2008-01-21 15:51:40 +0000 (Mon, 21 Jan 2008) | 1 line
    
    Use Boost config to tell when we have a std::distance function. Also, no need for a macro.
  ................
    r42908 | danieljames | 2008-01-21 21:37:04 +0000 (Mon, 21 Jan 2008) | 1 line
    
    Use boost::long_long_type and boost::ulong_long_type.
  ................
    r42921 | danieljames | 2008-01-23 11:43:35 +0000 (Wed, 23 Jan 2008) | 1 line
    
    Remove some tabs.
  ................
    r42922 | danieljames | 2008-01-23 11:46:28 +0000 (Wed, 23 Jan 2008) | 2 lines
    
    Add missing include. Refs #1596
  ................
    r42923 | danieljames | 2008-01-23 11:52:47 +0000 (Wed, 23 Jan 2008) | 2 lines
    
    Always use void const* for the second parameter of allocate. Refs #1596.
  ................
    r42936 | danieljames | 2008-01-23 22:22:16 +0000 (Wed, 23 Jan 2008) | 1 line
    
    Use Boost style library name in the documentation.
  ................
    r42937 | danieljames | 2008-01-23 22:22:32 +0000 (Wed, 23 Jan 2008) | 1 line
    
    More tabs.
  ................
    r42941 | danieljames | 2008-01-23 23:35:01 +0000 (Wed, 23 Jan 2008) | 1 line
    
    Fix all the allocators.
  ................
................
  r42948 | turkanis | 2008-01-23 22:50:32 -0800 (Wed, 23 Jan 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 42825-42947
................
  r42950 | t_schwinger | 2008-01-24 10:56:27 -0800 (Thu, 24 Jan 2008) | 3 lines
  
  correctsbroken compiler support for MPL
................
  r42951 | eric_niebler | 2008-01-24 13:06:23 -0800 (Thu, 24 Jan 2008) | 1 line
  
  peeker optimization looks inside independent sub-expressions
................
  r42952 | nesotto | 2008-01-24 14:22:35 -0800 (Thu, 24 Jan 2008) | 1 line
  
  test of output iterators
................
  r42953 | nesotto | 2008-01-24 14:26:36 -0800 (Thu, 24 Jan 2008) | 1 line
  
  output iterator test
................
  r42954 | nesotto | 2008-01-24 14:27:27 -0800 (Thu, 24 Jan 2008) | 1 line
  
  output iterators for ptr_containers
................
  r42957 | t_schwinger | 2008-01-24 16:26:16 -0800 (Thu, 24 Jan 2008) | 3 lines
  
  simplifies preprocessing code
................
  r42958 | t_schwinger | 2008-01-24 16:28:15 -0800 (Thu, 24 Jan 2008) | 3 lines
  
  touched
................
  r42960 | noel_belcourt | 2008-01-24 20:41:16 -0800 (Thu, 24 Jan 2008) | 6 lines
  
  Changed the -soname and -shared options in intel-darwin.jam
  to use -dynamiclib and -install_name, as done in darwin.jam.
  Apparently the Intel compilers on the Mac support the same
  options as gcc for setting the internal dynamic library name.
................
  r42963 | nesotto | 2008-01-24 23:52:14 -0800 (Thu, 24 Jan 2008) | 1 line
  
  renaming ...
................
  r42964 | nesotto | 2008-01-24 23:52:56 -0800 (Thu, 24 Jan 2008) | 1 line
  
  renaming
................
  r42965 | nesotto | 2008-01-24 23:54:28 -0800 (Thu, 24 Jan 2008) | 1 line
  
  renaming
................
  r42970 | turkanis | 2008-01-25 09:56:25 -0800 (Fri, 25 Jan 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 42947-42962: fixed tickets 1003, 1139, 1140, 1149
................
  r42971 | noel_belcourt | 2008-01-25 11:52:47 -0800 (Fri, 25 Jan 2008) | 2 lines
  
  Fixed a typo to yesterdays patch.
................
  r42972 | dgregor | 2008-01-25 13:07:14 -0800 (Fri, 25 Jan 2008) | 2 lines
  
  Include <ios> to get std::boolalpha. Fixes #1586
................
  r42974 | igaztanaga | 2008-01-25 15:07:51 -0800 (Fri, 25 Jan 2008) | 4 lines
  
  1)Fixed gcc release mode warnings.
  2)Replaced throw with BOOST_RETHROW when BOOST_TRY is used.
  3)Fixed issues with singly linked lists
................
  r42976 | hkaiser | 2008-01-25 17:24:21 -0800 (Fri, 25 Jan 2008) | 2 lines
  
  Wave: Fixed a problem in flex_string::compare() (#include_next was non-functional).
................
  r42977 | hkaiser | 2008-01-25 17:36:20 -0800 (Fri, 25 Jan 2008) | 1 line
  
  Wave: Added new testcase.
................
  r42980 | hkaiser | 2008-01-25 17:44:32 -0800 (Fri, 25 Jan 2008) | 1 line
  
  Wave: Tweaked new testcase.
................
  r42982 | igaztanaga | 2008-01-26 03:52:25 -0800 (Sat, 26 Jan 2008) | 1 line
  
  Refactored common slist functions in a single class
................
  r42984 | noel_belcourt | 2008-01-26 10:35:59 -0800 (Sat, 26 Jan 2008) | 7 lines
  
  Fixes #416
  
  Fixed spelling of Jack Edmonds name and renamed files
  where necessary. Updated the documentation as well.
  Tested changes by building/running tests in libs/graph/test.
................
  r42985 | noel_belcourt | 2008-01-26 10:51:28 -0800 (Sat, 26 Jan 2008) | 5 lines
  
  Fixes #640
  
  Corrected the mpl push_front html documentation.
................
  r42986 | eric_niebler | 2008-01-26 11:38:44 -0800 (Sat, 26 Jan 2008) | 1 line
  
  optimize repeated searches with patterns that have leading repeats
................
  r42987 | t_schwinger | 2008-01-26 13:50:14 -0800 (Sat, 26 Jan 2008) | 3 lines
  
  attempts to allow some preprocessing with VACPP (IBM)
................
  r42988 | noel_belcourt | 2008-01-26 14:21:57 -0800 (Sat, 26 Jan 2008) | 5 lines
  
  Fixes #1539
  
  Fixed typo in the random documentation.
................
  r42989 | noel_belcourt | 2008-01-26 15:06:24 -0800 (Sat, 26 Jan 2008) | 6 lines
  
  Fixes #965
  
  Patched the XML and will check to ensure the html
  page reflects this change.
................
  r42990 | eric_niebler | 2008-01-26 21:56:46 -0800 (Sat, 26 Jan 2008) | 1 line
  
  updated vcproj
................
  r42991 | eric_niebler | 2008-01-26 21:57:08 -0800 (Sat, 26 Jan 2008) | 1 line
  
  fix typo
................
  r42992 | johnmaddock | 2008-01-27 10:43:35 -0800 (Sun, 27 Jan 2008) | 1 line
  
  Extended leading repeat optimization to more cases.
................
  r42997 | vladimir_prus | 2008-01-28 09:59:27 -0800 (Mon, 28 Jan 2008) | 1 line
  
  Correct speliing of --build-dir in --help output
................
  r43000 | eric_niebler | 2008-01-28 12:03:41 -0800 (Mon, 28 Jan 2008) | 1 line
  
  update acknowledgement of john maddock
................
  r43001 | bgubenko | 2008-01-28 13:27:13 -0800 (Mon, 28 Jan 2008) | 1 line
  
  marked 2 asio library tests for gcc-4.2.1_hpux_ia64 (HP-UX 11.23 with gcc)
................
  r43002 | eric_niebler | 2008-01-28 14:55:30 -0800 (Mon, 28 Jan 2008) | 1 line
  
  doc more concepts, misc clean-up
................
  r43003 | eric_niebler | 2008-01-28 14:56:46 -0800 (Mon, 28 Jan 2008) | 1 line
  
  proto doxygen comments, misc clean-up
................
  r43006 | eric_niebler | 2008-01-28 18:20:45 -0800 (Mon, 28 Jan 2008) | 1 line
  
  more proto doxygen comments, update copyright
................
  r43007 | vladimir_prus | 2008-01-28 22:28:09 -0800 (Mon, 28 Jan 2008) | 1 line
  
  Retain top-level boost-build.jam
................
  r43008 | vladimir_prus | 2008-01-28 22:40:06 -0800 (Mon, 28 Jan 2008) | 4 lines
  
  Disable relinking when <target-os> is either windows or cygwin.
  
  Fixes #1062.
................
  r43009 | eric_niebler | 2008-01-28 23:03:03 -0800 (Mon, 28 Jan 2008) | 1 line
  
  add tests for deep_copy, make_expr, unpack_expr; fix bugs; update more copyrights
................
  r43012 | djenkins | 2008-01-29 08:41:12 -0800 (Tue, 29 Jan 2008) | 1 line
  
  fix typo
................
  r43013 | djenkins | 2008-01-29 08:43:51 -0800 (Tue, 29 Jan 2008) | 1 line
  
  update copyright and misc cleanup
................
  r43014 | bgubenko | 2008-01-29 09:47:01 -0800 (Tue, 29 Jan 2008) | 1 line
  
  marked interprocess library unusable on gcc-4.2.1_hpux_ia64 (until it is ported to HP-UX platform)
................
  r43016 | eric_niebler | 2008-01-29 13:02:52 -0800 (Tue, 29 Jan 2008) | 1 line
  
  make_expr and unpack_expr improvements, fix scary transform::arg_c bug
................
  r43018 | djenkins | 2008-01-29 19:39:02 -0800 (Tue, 29 Jan 2008) | 1 line
  
  use skip directive to simplify example
................
  r43023 | eric_niebler | 2008-01-30 14:10:13 -0800 (Wed, 30 Jan 2008) | 1 line
  
  finally, a make_expr() I can live with
................
  r43024 | eric_niebler | 2008-01-30 14:26:34 -0800 (Wed, 30 Jan 2008) | 1 line
  
  regenerated boostbook reference
................
  r43025 | niels_dekker | 2008-01-30 14:42:23 -0800 (Wed, 30 Jan 2008) | 1 line
  
  value_init: Removed aligned_storage::address() calls, to improve TR1 compatibility, as confirmed by John Maddock. Added internal helper function, wrapper_address(), as discussed with Fernando.
................
  r43026 | eric_niebler | 2008-01-30 15:03:36 -0800 (Wed, 30 Jan 2008) | 1 line
  
  minor tweak to make_expr result_of return type calculation
................
  r43031 | eric_niebler | 2008-01-30 23:36:28 -0800 (Wed, 30 Jan 2008) | 1 line
  
  simplify make_expr.hpp, user docs for make_expr()
................
  r43035 | eric_niebler | 2008-01-31 10:44:17 -0800 (Thu, 31 Jan 2008) | 1 line
  
  minor tweak to fusion value_of and value_at for expressions, for better interop with proto::unpack_expr
................
  r43037 | vladimir_prus | 2008-01-31 11:47:12 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Build in MT mode (as long as wave links to boost.thread)
................
  r43038 | hkaiser | 2008-01-31 12:57:47 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Wave: fixed expanding_function_like_macro()
................
  r43040 | eric_niebler | 2008-01-31 13:12:44 -0800 (Thu, 31 Jan 2008) | 1 line
  
  finish documentation for expression construction utilities
................
  r43041 | hkaiser | 2008-01-31 14:33:43 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Wave: Added additional configuration possibility to allow control threading support.
................
  r43042 | hkaiser | 2008-01-31 14:48:56 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Wave: Added additional configuration possibility to allow control threading support. Updated the documentation.
................
  r43043 | jurko | 2008-01-31 16:27:31 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Reverted changes made in rev 43038 which seem to have been committed by mistake and include some user specific settings in it local to the comitter's environment while this file is intended to be used as generic template for actual user-config.jam files and do nothing in case user does not specify his own settings there.
................
  r43044 | jurko | 2008-01-31 16:44:23 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Minor stylistic spacing changes. Remove trailing spaces.
................
  r43045 | jurko | 2008-01-31 16:46:50 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Corrected outputting native Windows paths so that it works correctly for absolute paths without the drive letter being explicitly specified, e.g. \aaa\bbb or /aaa/bbb.
................
  r43046 | jurko | 2008-01-31 17:49:16 -0800 (Thu, 31 Jan 2008) | 1 line
  
  Added the missing end-of-line character when outputting DEBUG_SEARCH debug messages from file_build1(). This cleans up the -d+6 bjam output a lot.
................
  r43050 | eric_niebler | 2008-02-01 12:30:29 -0800 (Fri, 01 Feb 2008) | 1 line
  
  add future group example
................
  r43052 | noel_belcourt | 2008-02-01 18:41:23 -0800 (Fri, 01 Feb 2008) | 4 lines
  
  Fix a typo in pgi.jam that prevented shared libraries
  from being built correctly.
................
  r43054 | chris_kohlhoff | 2008-02-02 03:37:45 -0800 (Sat, 02 Feb 2008) | 4 lines
  
  Ensure that the workaround for the MSVC secure iterator problem is only
  used when compiling with MSVC. The workaround causes g++'s library debug
  mode to report errors due to the assignment from a singular iterator.
................
  r43055 | chris_kohlhoff | 2008-02-02 03:39:17 -0800 (Sat, 02 Feb 2008) | 2 lines
  
  Fix "possible loss of data" warning when building for Windows 2000 targets.
................
  r43056 | chris_kohlhoff | 2008-02-02 04:02:23 -0800 (Sat, 02 Feb 2008) | 3 lines
  
  The latest Windows SDKs don't support IPv6 when building for Windows 2000,
  so we need to use the SDK emulation in that case.
................
  r43057 | eric_niebler | 2008-02-02 04:27:16 -0800 (Sat, 02 Feb 2008) | 1 line
  
  port test to boost version 1.34.1
................
  r43061 | turkanis | 2008-02-02 14:10:46 -0800 (Sat, 02 Feb 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 42962-43059: updated copyright notices
................
  r43080 | eric_niebler | 2008-02-03 10:40:03 -0800 (Sun, 03 Feb 2008) | 1 line
  
  fix bug found by L. Evans re: fusion and stateful function objects
................
  r43083 | johnmaddock | 2008-02-04 01:13:36 -0800 (Mon, 04 Feb 2008) | 1 line
  
  Added missing file.
................
  r43085 | johnmaddock | 2008-02-04 01:17:35 -0800 (Mon, 04 Feb 2008) | 1 line
  
  Removed dead file.
................
  r43087 | johnmaddock | 2008-02-04 01:20:46 -0800 (Mon, 04 Feb 2008) | 1 line
  
  Removed dead files.
................
  r43089 | johnmaddock | 2008-02-04 01:23:28 -0800 (Mon, 04 Feb 2008) | 1 line
  
  Removed dead files.
................
  r43094 | anthonyw | 2008-02-04 05:16:32 -0800 (Mon, 04 Feb 2008) | 1 line
  
  added test for duration overloads of timed_lock, and added missing implementation to win32 version
................
  r43101 | hkaiser | 2008-02-04 11:21:46 -0800 (Mon, 04 Feb 2008) | 1 line
  
  Wave: trying to fix stdcxx_gcc regression.
................
  r43103 | matias | 2008-02-04 13:01:06 -0800 (Mon, 04 Feb 2008) | 1 line
  
  hooking --> additional information in html docs
................
  r43106 | eric_niebler | 2008-02-04 18:09:51 -0800 (Mon, 04 Feb 2008) | 1 line
  
  fleshing out evaluation.qbk, document transforms of if_, not_, and_ and or_
................
  r43107 | eric_niebler | 2008-02-04 21:33:12 -0800 (Mon, 04 Feb 2008) | 1 line
  
  eliminate warnings under msvc's -W4
................
  r43111 | eric_niebler | 2008-02-04 22:03:01 -0800 (Mon, 04 Feb 2008) | 1 line
  
  fix typo
................
  r43112 | marshall | 2008-02-05 08:07:19 -0800 (Tue, 05 Feb 2008) | 1 line
  
  Fix typo (bug #1434)
................
  r43113 | marshall | 2008-02-05 08:15:35 -0800 (Tue, 05 Feb 2008) | 1 line
  
  Applied patch (fixes bug #1307)
................
  r43117 | dgregor | 2008-02-05 12:51:23 -0800 (Tue, 05 Feb 2008) | 1 line
  
  Fix add_vertex and add_vertices when the CSR graph has vertex properties
................
  r43118 | danieljames | 2008-02-05 12:57:02 -0800 (Tue, 05 Feb 2008) | 13 lines
  
  Merged revisions 42942-43116 via svnmerge from
  https://svn.boost.org/svn/boost/branches/unordered/trunk
  
  ........
    r42975 | danieljames | 2008-01-26 00:29:32 +0000 (Sat, 26 Jan 2008) | 1 line
    
    Typedef some types before using them, to make life easier for Borland.
  ........
    r43116 | danieljames | 2008-02-05 20:47:44 +0000 (Tue, 05 Feb 2008) | 1 line
    
    Some compilers and libraries combinations have problems with deques of non-assingable types. Using a list instead.
  ........
................
  r43120 | eric_niebler | 2008-02-05 13:07:31 -0800 (Tue, 05 Feb 2008) | 1 line
  
  add missing #include
................
  r43121 | bemandawes | 2008-02-05 18:01:46 -0800 (Tue, 05 Feb 2008) | 1 line
  
  Add circular_buffer to the alphabetic list
................
  r43125 | t_schwinger | 2008-02-06 05:00:08 -0800 (Wed, 06 Feb 2008) | 3 lines
  
  attempts to make synthesis metafunctions work with sun compiler
................
  r43129 | danieljames | 2008-02-06 11:02:38 -0800 (Wed, 06 Feb 2008) | 2 lines
  
  In the boostbook navbar, link FAQ and people to the website.
................
  r43130 | eric_niebler | 2008-02-06 11:57:51 -0800 (Wed, 06 Feb 2008) | 1 line
  
  untabify
................
  r43132 | nesotto | 2008-02-06 14:46:19 -0800 (Wed, 06 Feb 2008) | 1 line
  
  cleanup to pass inspection report
................
  r43133 | nesotto | 2008-02-06 14:46:31 -0800 (Wed, 06 Feb 2008) | 1 line
  
  cleanup to pass inspection report
................
  r43134 | eric_niebler | 2008-02-06 14:57:57 -0800 (Wed, 06 Feb 2008) | 1 line
  
  add handy get() accessors on literal<> wrapper
................
  r43135 | nesotto | 2008-02-06 15:12:21 -0800 (Wed, 06 Feb 2008) | 1 line
  
  cleanup to pass inspection tool
................
  r43136 | eric_niebler | 2008-02-06 16:05:01 -0800 (Wed, 06 Feb 2008) | 1 line
  
  reasonably complete user docs for expression evaluation
................
  r43138 | eric_niebler | 2008-02-07 00:06:29 -0800 (Thu, 07 Feb 2008) | 1 line
  
  tweaks for doxygen 1.5.4, document matches<>
................
  r43141 | johnmaddock | 2008-02-07 01:55:41 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Fix last checked version.
................
  r43143 | johnmaddock | 2008-02-07 02:03:16 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Remove tabs.
................
  r43145 | johnmaddock | 2008-02-07 02:13:31 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Fix min/max usage violation.
................
  r43147 | vladimir_prus | 2008-02-07 02:17:03 -0800 (Thu, 07 Feb 2008) | 2 lines
  
  Attempt to unbreak <library-file>
................
  r43148 | johnmaddock | 2008-02-07 02:24:29 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Added comment to suppress inspect warning.
................
  r43150 | johnmaddock | 2008-02-07 02:29:59 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Added fix for inspection report.
................
  r43152 | vladimir_prus | 2008-02-07 03:04:30 -0800 (Thu, 07 Feb 2008) | 4 lines
  
  Fix <framework> with no path.
  
  Patch from Jon Olsson.
................
  r43154 | bemandawes | 2008-02-07 05:22:34 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Remove obsolete CVS scripts, add 1.35.0 SVN scripts, beginning of docs page
................
  r43155 | nesotto | 2008-02-07 06:41:04 -0800 (Thu, 07 Feb 2008) | 6 lines
  
  
  iterator_range disables msvc warning 4996
      <http://svn.boost.org/trac/boost/ticket/1565>
  
  [range] sub_range assignment issue
      <http://svn.boost.org/trac/boost/ticket/1284>
................
  r43156 | nesotto | 2008-02-07 06:46:19 -0800 (Thu, 07 Feb 2008) | 1 line
  
  test
................
  r43157 | joaquin | 2008-02-07 08:29:27 -0800 (Thu, 07 Feb 2008) | 1 line
  
  updated according to latest regression tests results, fixed a broken link, typo
................
  r43159 | turkanis | 2008-02-07 09:07:28 -0800 (Thu, 07 Feb 2008) | 1 line
  
  added missing 'self.' qualification
................
  r43165 | dgregor | 2008-02-07 13:08:09 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Support for non-blocking MPI operations in Python, from Andreas Kloeckner
................
  r43166 | dgregor | 2008-02-07 13:09:38 -0800 (Thu, 07 Feb 2008) | 1 line
  
  Note addition of nonblocking operations to the Python interface
................
  r43171 | nesotto | 2008-02-08 01:58:35 -0800 (Fri, 08 Feb 2008) | 1 line
  
  silence of warnings for unused arguments
................
  r43175 | nesotto | 2008-02-08 07:25:01 -0800 (Fri, 08 Feb 2008) | 1 line
  
  missing ) fixed
................
  r43176 | noel_belcourt | 2008-02-08 08:32:35 -0800 (Fri, 08 Feb 2008) | 14 lines
  
  Force PPC Darwin to use fork instead of vfork. This change
  requires both the parent and child process to explicitly set
  the process group id. Vfork guarantees the child process
  runs to the exec before it releases the parent process.
  Now that we use fork instead of vfork, it's possible for the
  parent to wait on the child process without having the child
  setpgid on itself. This eliminates spurious hangs on ppc
  darwin caused by either a race condition between vfork and
  execvp, or a bug in the vfork implementation.
  
  Added a test to ensure we don't try to read from the
  stderr pipe descriptor if the descriptor's not valid.
................
  r43177 | eric_niebler | 2008-02-08 09:11:57 -0800 (Fri, 08 Feb 2008) | 1 line
  
  reserve some c_type bits for dinkumware on windows, fixes #1625
................
  r43179 | noel_belcourt | 2008-02-08 09:53:50 -0800 (Fri, 08 Feb 2008) | 13 lines
  
  I've added the -single_module option to the intel-darwin.link.dll
  action to fix this linker error when linking dylibs:
  
  ld: common symbols not allowed with MH_DYLIB output format with the -multi_module option
  boost/bin.v2/libs/system/build/intel-darwin-9.1/debug/macosx-version-10.4/error_code.o
    definition of common __ZGVZNK5boost6system14error_category7messageEiE1s (size 16)
  boost/bin.v2/libs/system/build/intel-darwin-9.1/debug/macosx-version-10.4/error_code.o
    definition of common __ZZNK5boost6system14error_category7messageEiE1s (size 16)
  
  though I would note that the common symbols problem occurs in a number of
  other libraries (test, graph, spirit, ...) as well.
................
  r43188 | danieljames | 2008-02-09 04:29:02 -0800 (Sat, 09 Feb 2008) | 2 lines
  
  Fix a link in the intrusive redirect.
................
  r43189 | danieljames | 2008-02-09 04:37:00 -0800 (Sat, 09 Feb 2008) | 1 line
  
  Fix another redirect link.
................
  r43190 | danieljames | 2008-02-09 04:38:19 -0800 (Sat, 09 Feb 2008) | 1 line
  
  Update link to Jamfile, to link to the version 2 jamfile.
................
  r43191 | danieljames | 2008-02-09 04:39:06 -0800 (Sat, 09 Feb 2008) | 1 line
  
  Fix a link.
................
  r43192 | danieljames | 2008-02-09 04:45:32 -0800 (Sat, 09 Feb 2008) | 2 lines
  
  Add a forwarding header for hash/custom.html as Boost.Bimap links to it.
................
  r43193 | danieljames | 2008-02-09 05:02:45 -0800 (Sat, 09 Feb 2008) | 1 line
  
  Fix the link to the license.
................
  r43199 | eric_niebler | 2008-02-09 12:32:27 -0800 (Sat, 09 Feb 2008) | 1 line
  
  more doxygen comments, const-correctness tweak for fusion::at() on proto expression
................
  r43200 | eric_niebler | 2008-02-09 12:34:33 -0800 (Sat, 09 Feb 2008) | 1 line
  
  document how to access children of proto expressions
................
  r43204 | eric_niebler | 2008-02-09 22:57:24 -0800 (Sat, 09 Feb 2008) | 1 line
  
  fix oops in proto fusion interface
................
  r43205 | eric_niebler | 2008-02-09 23:02:54 -0800 (Sat, 09 Feb 2008) | 1 line
  
  suppress msvc warning
................
  r43206 | danieljames | 2008-02-10 01:55:03 -0800 (Sun, 10 Feb 2008) | 1 line
  
  Fix some broken links.
................
  r43207 | vladimir_prus | 2008-02-10 05:13:41 -0800 (Sun, 10 Feb 2008) | 4 lines
  
  Tolerate argc being zero.
  
  Patch from C. K. Jester-Young.
................
  r43209 | danieljames | 2008-02-10 06:56:22 -0800 (Sun, 10 Feb 2008) | 1 line
  
  Link to people pages on the website, as they've been removed from the download.
................
  r43210 | danieljames | 2008-02-10 07:02:17 -0800 (Sun, 10 Feb 2008) | 1 line
  
  Point links to the pages that used to be in 'more' to the site.
................
  r43212 | danieljames | 2008-02-10 08:10:16 -0800 (Sun, 10 Feb 2008) | 1 line
  
  Fix links on the home page as well.
................
  r43213 | danieljames | 2008-02-10 08:21:22 -0800 (Sun, 10 Feb 2008) | 1 line
  
  Generated documentation which is no longer generated.
................
  r43220 | eric_niebler | 2008-02-10 19:48:41 -0800 (Sun, 10 Feb 2008) | 1 line
  
  include config.hpp and workaround.hpp before uses of BOOST_WORKAROUND and BOOST_MSVC
................
  r43221 | chris_kohlhoff | 2008-02-11 05:59:44 -0800 (Mon, 11 Feb 2008) | 2 lines
  
  Need to define _XOPEN_SOURCE_EXTENDED when compiling for HP-UX.
................
  r43226 | djenkins | 2008-02-11 12:49:19 -0800 (Mon, 11 Feb 2008) | 1 line
  
  cleanup using local<> and skip()
................
  r43239 | turkanis | 2008-02-12 21:43:39 -0800 (Tue, 12 Feb 2008) | 1 line
  
  fixed return value of read(), to correctly handle eof
................
  r43240 | turkanis | 2008-02-12 21:47:44 -0800 (Tue, 12 Feb 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 43059-43238: better debug output for mapped file; fixed large_file_test.cpp under UNICODE on Windows
................
  r43241 | turkanis | 2008-02-13 11:38:52 -0800 (Wed, 13 Feb 2008) | 1 line
  
  added markup for stdcxx failures (iostreams)
................
  r43243 | turkanis | 2008-02-13 11:42:10 -0800 (Wed, 13 Feb 2008) | 1 line
  
  switched from <wchar.h> to <cwchar>, for stdcxx (which is conforming in this case)
................
  r43246 | matias | 2008-02-14 09:33:12 -0800 (Thu, 14 Feb 2008) | 1 line
  
  remove local admonitions
................
  r43247 | matias | 2008-02-14 09:43:52 -0800 (Thu, 14 Feb 2008) | 1 line
  
  optional docs fixes
................
  r43248 | matias | 2008-02-14 09:44:21 -0800 (Thu, 14 Feb 2008) | 1 line
  
  redirect optional docs to new version
................
  r43251 | matias | 2008-02-14 10:08:16 -0800 (Thu, 14 Feb 2008) | 1 line
  
  conversion docs fixes
................
  r43252 | matias | 2008-02-14 10:09:34 -0800 (Thu, 14 Feb 2008) | 1 line
  
  redirect to new conversion docs
................
  r43253 | matias | 2008-02-14 10:19:34 -0800 (Thu, 14 Feb 2008) | 1 line
  
  redirect optional and numeric/conversion docs to new version
................
  r43254 | matias | 2008-02-14 11:03:55 -0800 (Thu, 14 Feb 2008) | 1 line
  
  bimap doc fixes
................
  r43255 | matias | 2008-02-14 11:05:04 -0800 (Thu, 14 Feb 2008) | 1 line
  
  fix tabs in files
................
  r43256 | matias | 2008-02-14 11:22:15 -0800 (Thu, 14 Feb 2008) | 1 line
  
  fix tabs in files
................
  r43260 | matias | 2008-02-14 13:24:11 -0800 (Thu, 14 Feb 2008) | 1 line
  
  add missing images
................
  r43262 | hkaiser | 2008-02-14 14:01:54 -0800 (Thu, 14 Feb 2008) | 1 line
  
  Fixed a whitespace insertion glitch, where whitespace got inserted unconditionally between two operators even if one of these was a comma.
................
  r43264 | hkaiser | 2008-02-14 15:52:33 -0800 (Thu, 14 Feb 2008) | 1 line
  
  Wave: More fixes to whitespace insertion engine.
................
  r43266 | hkaiser | 2008-02-15 06:35:36 -0800 (Fri, 15 Feb 2008) | 1 line
  
  Wave: More fixes to whitespace insertion engine.
................
  r43269 | pdimov | 2008-02-15 10:40:36 -0800 (Fri, 15 Feb 2008) | 1 line
  
  Added support for &&, ||
................
  r43272 | andreas_huber69 | 2008-02-16 02:13:08 -0800 (Sat, 16 Feb 2008) | 1 line
  
  Updated statechart markup
................
  r43274 | andreas_huber69 | 2008-02-16 02:19:49 -0800 (Sat, 16 Feb 2008) | 2 lines
  
  Silenced GCC 4.0.1 warning (patch supplied by Euan)
  <http://thread.gmane.org/gmane.comp.lib.boost.devel/171071>
................
  r43280 | jurko | 2008-02-16 08:50:42 -0800 (Sat, 16 Feb 2008) | 1 line
  
  Corrected comments related to the allowed linker & linker-type values. Minor stylistic changes.
................
  r43281 | jurko | 2008-02-16 08:53:33 -0800 (Sat, 16 Feb 2008) | 1 line
  
  Added support for compiling C++ programs without RTTI support using the gcc toolset.
................
  r43282 | jurko | 2008-02-16 09:03:54 -0800 (Sat, 16 Feb 2008) | 1 line
  
  Made the msvc toolset always explicitly enable or disable rtti support based on the <rtti> feature value instead of only setting it if <rtti>on and depending on it being disabled by default. The original behaviour did not work well with msvc 8.0 for which there was not way to disable rtti support as that compiler enables rtti support by default.
................
  r43283 | bemandawes | 2008-02-16 18:01:32 -0800 (Sat, 16 Feb 2008) | 1 line
  
  Show output of example program
................
  r43290 | hkaiser | 2008-02-17 08:45:08 -0800 (Sun, 17 Feb 2008) | 1 line
  
  Wave: Extended a workaround to newest Intel compiler version (Linux V10.1)
................
  r43292 | nesotto | 2008-02-17 08:49:38 -0800 (Sun, 17 Feb 2008) | 1 line
  
  support for comparinson operators
................
  r43293 | nesotto | 2008-02-17 08:50:02 -0800 (Sun, 17 Feb 2008) | 1 line
  
  support for comparison operators
................
  r43294 | hkaiser | 2008-02-17 09:00:20 -0800 (Sun, 17 Feb 2008) | 1 line
  
  Wave: Fixed test cases to reflect recent changes to whitespace insertion.
................
  r43296 | eric_niebler | 2008-02-17 12:53:18 -0800 (Sun, 17 Feb 2008) | 1 line
  
  proto documentation improvements
................
  r43299 | turkanis | 2008-02-17 21:48:13 -0800 (Sun, 17 Feb 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 43243-43298: overhaul of category_of and close(): stringstream is now dual_seekable; standard file streams and string streams are closable; public Boost.Iostreams streams and streambufs are closable; close() pops filtering streams and streambufs
................
  r43300 | eric_niebler | 2008-02-17 22:16:27 -0800 (Sun, 17 Feb 2008) | 1 line
  
  remove dependence on boost.lambda, make numeric function objects work with std binders
................
  r43301 | chris_kohlhoff | 2008-02-18 05:31:26 -0800 (Mon, 18 Feb 2008) | 2 lines
  
  Fix printing of error messages.
................
  r43302 | chris_kohlhoff | 2008-02-18 05:33:23 -0800 (Mon, 18 Feb 2008) | 2 lines
  
  Only define _XOPEN_SOURCE_EXTENDED when building with gcc on HP-UX.
................
  r43303 | chris_kohlhoff | 2008-02-18 05:35:15 -0800 (Mon, 18 Feb 2008) | 3 lines
  
  Add missing #include of socket_types.hpp needed for the SSL unit tests
  to compile successfully on Windows.
................
  r43306 | eric_niebler | 2008-02-18 10:29:29 -0800 (Mon, 18 Feb 2008) | 1 line
  
  remove post_construct docs, fix link to boost.parameter library
................
  r43308 | niels_dekker | 2008-02-18 14:11:19 -0800 (Mon, 18 Feb 2008) | 1 line
  
  Fixed the assignment of value_initialized<T> for T being a C-style array. (The previous version would trigger a compile error in this case.)
................
  r43309 | niels_dekker | 2008-02-18 14:13:21 -0800 (Mon, 18 Feb 2008) | 1 line
  
  Tested the assignment of value_initialized<T>, for T being a C-style array. Related to the fix of changeset [43308]
................
  r43310 | eric_niebler | 2008-02-18 15:03:23 -0800 (Mon, 18 Feb 2008) | 1 line
  
  some doxygen comments for proto/traits.hpp
................
  r43311 | eric_niebler | 2008-02-18 21:56:52 -0800 (Mon, 18 Feb 2008) | 1 line
  
  more proto documentation tweaks, remove unnecessary result_of::arg_c instantiation
................
  r43312 | eric_niebler | 2008-02-18 23:14:37 -0800 (Mon, 18 Feb 2008) | 1 line
  
  fix droppable accumulators
................
  r43314 | eric_niebler | 2008-02-18 23:33:30 -0800 (Mon, 18 Feb 2008) | 1 line
  
  darn, back out bad droppable changes
................
  r43316 | pdimov | 2008-02-19 05:18:58 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fixes #1590.
................
  r43317 | pdimov | 2008-02-19 06:01:13 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fixes #1444.
................
  r43318 | pdimov | 2008-02-19 06:26:36 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fix #398, as long as the macros BOOST_NO_STD_TYPEINFO and BOOST_NO_IOSTREAM are defined. I don't know how Boost.Config needs to be changed to autodetect eVC4 and set these on its own.
................
  r43319 | pdimov | 2008-02-19 06:51:10 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fix #1641.
................
  r43320 | pdimov | 2008-02-19 06:59:28 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fix #1646.
................
  r43321 | pdimov | 2008-02-19 07:09:10 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fix #1642.
................
  r43322 | nesotto | 2008-02-19 07:10:05 -0800 (Tue, 19 Feb 2008) | 1 line
  
  fixed problem with operator()() when the value_type was abstract.
................
  r43323 | pdimov | 2008-02-19 07:40:58 -0800 (Tue, 19 Feb 2008) | 1 line
  
  Fix #1643.
................
  r43325 | turkanis | 2008-02-19 11:34:07 -0800 (Tue, 19 Feb 2008) | 1 line
  
  stringstreams are no longer closable; the semantics of close() for these devices was illconsidered
................
  r43328 | turkanis | 2008-02-19 16:09:06 -0800 (Tue, 19 Feb 2008) | 1 line
  
  menu fix from iostreams_dev
................
  r43329 | turkanis | 2008-02-19 19:20:17 -0800 (Tue, 19 Feb 2008) | 1 line
  
  markup for pgi-7.0 (iostreams)
................
  r43330 | bemandawes | 2008-02-20 05:46:49 -0800 (Wed, 20 Feb 2008) | 1 line
  
  Add .z7 archive generation
................
  r43332 | grafik | 2008-02-20 09:32:09 -0800 (Wed, 20 Feb 2008) | 1 line
  
  New readme page for now standalone release.
................
  r43334 | grafik | 2008-02-20 11:15:16 -0800 (Wed, 20 Feb 2008) | 1 line
  
  Fix link to getting started docs.
................
  r43335 | grafik | 2008-02-20 14:50:03 -0800 (Wed, 20 Feb 2008) | 1 line
  
  Add the <python.interpreter> to all requirements to allow other toolsets to use the currently configured python instead of relying on python being in the path.
................
  r43336 | grafik | 2008-02-20 15:01:43 -0800 (Wed, 20 Feb 2008) | 1 line
  
  Use the configured python interpreter instead of assuming it's in the path.
................
  r43337 | grafik | 2008-02-20 15:03:28 -0800 (Wed, 20 Feb 2008) | 1 line
  
  Add missing, and assumed, white background for screen rendering.
................
  r43338 | grafik | 2008-02-20 15:26:58 -0800 (Wed, 20 Feb 2008) | 1 line
  
  Doc cleanups.
................
  r43344 | eric_niebler | 2008-02-20 23:18:24 -0800 (Wed, 20 Feb 2008) | 1 line
  
  More Proto documentation
................
  r43346 | johnmaddock | 2008-02-21 02:37:59 -0800 (Thu, 21 Feb 2008) | 3 lines
  
  Fix typo in example.
  Added links to PDF versions of the docs.
  Regenerated all the docs to fix people links.
................
  r43347 | johnmaddock | 2008-02-21 03:53:59 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Update main overview page.
................
  r43349 | bemandawes | 2008-02-21 04:46:11 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Fix typo; .z7 should be .7z
................
  r43351 | johnmaddock | 2008-02-21 04:58:15 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Added link to PDF docs, and regenerated.
................
  r43354 | johnmaddock | 2008-02-21 05:51:18 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Added link to PDF docs, and regenerated.
................
  r43357 | johnmaddock | 2008-02-21 08:49:59 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Added link to PDF docs.
................
  r43359 | johnmaddock | 2008-02-21 09:01:26 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Regenerated docs to fix links.
................
  r43361 | bemandawes | 2008-02-21 12:11:32 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Fix still another typo
................
  r43362 | eric_niebler | 2008-02-21 12:12:02 -0800 (Thu, 21 Feb 2008) | 1 line
  
  doxygen comments for proto::when<>
................
  r43363 | eric_niebler | 2008-02-21 16:42:12 -0800 (Thu, 21 Feb 2008) | 1 line
  
  fix crash when actions are in keep() expressions
................
  r43364 | eric_niebler | 2008-02-21 18:01:46 -0800 (Thu, 21 Feb 2008) | 1 line
  
  doxygen comments
................
  r43365 | grafik | 2008-02-21 21:26:39 -0800 (Thu, 21 Feb 2008) | 1 line
  
  Rename readme.html to index.html, and add forwarding index.htm for backward compatibility.
................
  r43368 | danieljames | 2008-02-22 01:21:22 -0800 (Fri, 22 Feb 2008) | 2 lines
  
  Update the index.html link in the navbar.
................
  r43371 | grafik | 2008-02-22 08:25:21 -0800 (Fri, 22 Feb 2008) | 1 line
  
  Remove obsolete getting started files. They where replaced by more/getting_started/*.
................
  r43377 | chris_kohlhoff | 2008-02-22 14:43:54 -0800 (Fri, 22 Feb 2008) | 2 lines
  
  Use the correct vector of timer queues when dispatching timers.
................
  r43390 | turkanis | 2008-02-22 16:05:49 -0800 (Fri, 22 Feb 2008) | 2 lines
  
  Ported change from iostreams_dev
................
  r43391 | turkanis | 2008-02-22 16:06:24 -0800 (Fri, 22 Feb 2008) | 2 lines
  
  Ported changes from iostreams_dev
................
  r43392 | turkanis | 2008-02-22 16:07:13 -0800 (Fri, 22 Feb 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 43327-43389
................
  r43393 | turkanis | 2008-02-22 16:11:07 -0800 (Fri, 22 Feb 2008) | 1 line
  
  merged changes from iostreams_dev
................
  r43395 | turkanis | 2008-02-22 22:07:59 -0800 (Fri, 22 Feb 2008) | 1 line
  
  updated to test close() on filtering streambufs
................
  r43399 | turkanis | 2008-02-22 23:44:58 -0800 (Fri, 22 Feb 2008) | 1 line
  
  merged changes from iostreams_dev
................
  r43402 | bemandawes | 2008-02-23 06:04:02 -0800 (Sat, 23 Feb 2008) | 1 line
  
  Give the 1st and 2nd level index.html files a common look-and-feel.
................
  r43405 | vladimir_prus | 2008-02-24 04:59:04 -0800 (Sun, 24 Feb 2008) | 3 lines
  
  Recognize that fact, for that for intel-win, <runtime-debuggin>
  matters and should be added to the library name.
................
  r43409 | bemandawes | 2008-02-24 16:53:26 -0800 (Sun, 24 Feb 2008) | 1 line
  
  Fix html boo boo
................
  r43410 | schoepflin | 2008-02-25 00:37:10 -0800 (Mon, 25 Feb 2008) | 1 line
  
  Added missing template keyword.
................
  r43411 | t_schwinger | 2008-02-25 03:45:51 -0800 (Mon, 25 Feb 2008) | 3 lines
  
  removes unnecessary escaping
................
  r43412 | t_schwinger | 2008-02-25 03:47:59 -0800 (Mon, 25 Feb 2008) | 3 lines
  
  removes unnecessary comment
................
  r43416 | hkaiser | 2008-02-26 11:25:05 -0800 (Tue, 26 Feb 2008) | 1 line
  
  Wave: Fixed expanding_function_like_macro preprocessing hook.
................
  r43417 | danieljames | 2008-02-26 14:04:55 -0800 (Tue, 26 Feb 2008) | 2 lines
  
  Fix a link to Boost.Bimap.
................
  r43418 | danieljames | 2008-02-26 14:07:25 -0800 (Tue, 26 Feb 2008) | 2 lines
  
  Change another link that's no longer in the repository to link to the website.
................
  r43419 | hkaiser | 2008-02-26 14:36:36 -0800 (Tue, 26 Feb 2008) | 1 line
  
  Fixed a compilation problem on pathscale
................
  r43421 | eric_niebler | 2008-02-27 10:48:22 -0800 (Wed, 27 Feb 2008) | 1 line
  
  partially revert breaking change to independent sub-expressions until I can make a proper fix
................
  r43422 | danieljames | 2008-02-27 10:51:14 -0800 (Wed, 27 Feb 2008) | 1 line
  
  Fix broken copyright urls. Fixes #1573.
................
  r43423 | danieljames | 2008-02-27 11:22:01 -0800 (Wed, 27 Feb 2008) | 1 line
  
  Fix incorrect links to copyright of the form 'http:#www.boost.org
................
  r43424 | eric_niebler | 2008-02-27 11:39:43 -0800 (Wed, 27 Feb 2008) | 1 line
  
  fix bug in use_simple_repeat calculation
................
  r43428 | eric_niebler | 2008-02-27 16:03:15 -0800 (Wed, 27 Feb 2008) | 1 line
  
  add test case for use_simple_repeat fix
................
  r43433 | eric_niebler | 2008-02-28 14:47:12 -0800 (Thu, 28 Feb 2008) | 1 line
  
  fix oops
................
  r43434 | johnmaddock | 2008-02-29 01:49:42 -0800 (Fri, 29 Feb 2008) | 1 line
  
  Apply fixes to issue #1658 which fixes some broken URL's.
................
  r43435 | johnmaddock | 2008-02-29 01:58:30 -0800 (Fri, 29 Feb 2008) | 1 line
  
  Fix broken link as per report #1658.
................
  r43437 | chris_kohlhoff | 2008-02-29 04:57:57 -0800 (Fri, 29 Feb 2008) | 2 lines
  
  Add missing tie().
................
  r43438 | schoepflin | 2008-02-29 07:13:41 -0800 (Fri, 29 Feb 2008) | 2 lines
  
  Added expected failure markup for the test weighted_tail_variate_means on Tru64/CXX.
................
  r43441 | eric_niebler | 2008-03-01 11:32:56 -0800 (Sat, 01 Mar 2008) | 1 line
  
  add map_assign example
................
  r43458 | turkanis | 2008-03-02 22:20:14 -0800 (Sun, 02 Mar 2008) | 1 line
  
  merged changes from iostreams_dev, revisions 43399-43457
................
  r43461 | anthonyw | 2008-03-03 00:44:42 -0800 (Mon, 03 Mar 2008) | 1 line
  
  Test and fix for issue #1665
................
  r43464 | anthonyw | 2008-03-03 02:52:44 -0800 (Mon, 03 Mar 2008) | 1 line
  
  thread constructor now accepts up to three additional arguments to pass to thread function
................
  r43467 | danieljames | 2008-03-03 04:10:35 -0800 (Mon, 03 Mar 2008) | 2 lines
  
  Tell subversion that date_time.doc is a text file, not a word document.
................
  r43468 | danieljames | 2008-03-03 04:11:25 -0800 (Mon, 03 Mar 2008) | 1 line
  
  Fix license link in date_time.doc
................
  r43469 | chris_kohlhoff | 2008-03-03 05:21:05 -0800 (Mon, 03 Mar 2008) | 4 lines
  
  Disable use of CancelIo by default, due to the possibility of silent
  failure on some system configurations. Swallow error returned by CancelIoEx
  if there are no operations to be cancelled.
................
  r43470 | chris_kohlhoff | 2008-03-03 05:27:06 -0800 (Mon, 03 Mar 2008) | 2 lines
  
  Add missing 'boost_' prefix to helper namespace.
................
  r43471 | chris_kohlhoff | 2008-03-03 05:36:35 -0800 (Mon, 03 Mar 2008) | 2 lines
  
  Regenerate documentation.
................
  r43472 | chris_kohlhoff | 2008-03-03 06:05:35 -0800 (Mon, 03 Mar 2008) | 1 line
  
  Update copyright notices.
................
  r43473 | chris_kohlhoff | 2008-03-03 06:13:01 -0800 (Mon, 03 Mar 2008) | 2 lines
  
  Update copyright notices.
................
  r43476 | eric_niebler | 2008-03-03 11:44:54 -0800 (Mon, 03 Mar 2008) | 1 line
  
  add Map Assign example to documentation
................
  r43478 | eric_niebler | 2008-03-03 11:47:47 -0800 (Mon, 03 Mar 2008) | 1 line
  
  second attempt at fixing actions in independent expressions
................
  r43484 | eric_niebler | 2008-03-03 15:48:17 -0800 (Mon, 03 Mar 2008) | 1 line
  
  handle static regexes with actions nested in dynamic independent subexpressions
................
  r43485 | emildotchevski | 2008-03-03 17:41:17 -0800 (Mon, 03 Mar 2008) | 1 line
  
  boost exception
................
  r43496 | eric_niebler | 2008-03-04 10:51:07 -0800 (Tue, 04 Mar 2008) | 1 line
  
  rename numeric::empty to numeric::default_, fixes #1650
................
  r43501 | eric_niebler | 2008-03-04 11:31:57 -0800 (Tue, 04 Mar 2008) | 1 line
  
  eliminate msvc level 4 warnings, fixes #1631
................
  r43502 | eric_niebler | 2008-03-04 11:42:36 -0800 (Tue, 04 Mar 2008) | 1 line
  
  add Dave Jenkin's evil static/dynamic actions in keep test case
................
  r43503 | eric_niebler | 2008-03-04 13:09:47 -0800 (Tue, 04 Mar 2008) | 1 line
  
  work around msvc bug 331418, fixes #1652
................
  r43506 | eric_niebler | 2008-03-04 15:01:17 -0800 (Tue, 04 Mar 2008) | 1 line
  
  fix bad interaction between boyer-moore optimization and partial match feature, fixes #1564
................
  r43508 | eric_niebler | 2008-03-04 22:32:39 -0800 (Tue, 04 Mar 2008) | 1 line
  
  add BOOST_REVERSE_FOREACH, fixes #1071
................
  r43509 | eric_niebler | 2008-03-04 23:12:03 -0800 (Tue, 04 Mar 2008) | 1 line
  
  fix bug iterating over abstract base
................

Added:
   branches/proto/v3/boost/exception/
      - copied from r43509, /trunk/boost/exception/
   branches/proto/v3/boost/exception.hpp
      - copied unchanged from r43509, /trunk/boost/exception.hpp
   branches/proto/v3/boost/exception/cloning.hpp
      - copied unchanged from r43509, /trunk/boost/exception/cloning.hpp
   branches/proto/v3/boost/exception/detail/
      - copied from r43509, /trunk/boost/exception/detail/
   branches/proto/v3/boost/exception/detail/cloning_base.hpp
      - copied unchanged from r43509, /trunk/boost/exception/detail/cloning_base.hpp
   branches/proto/v3/boost/exception/detail/counted_base.hpp
      - copied unchanged from r43509, /trunk/boost/exception/detail/counted_base.hpp
   branches/proto/v3/boost/exception/enable_error_info.hpp
      - copied unchanged from r43509, /trunk/boost/exception/enable_error_info.hpp
   branches/proto/v3/boost/exception/enable_exception_cloning.hpp
      - copied unchanged from r43509, /trunk/boost/exception/enable_exception_cloning.hpp
   branches/proto/v3/boost/exception/error_info.hpp
      - copied unchanged from r43509, /trunk/boost/exception/error_info.hpp
   branches/proto/v3/boost/exception/exception.hpp
      - copied unchanged from r43509, /trunk/boost/exception/exception.hpp
   branches/proto/v3/boost/exception/info.hpp
      - copied unchanged from r43509, /trunk/boost/exception/info.hpp
   branches/proto/v3/boost/exception/info_tuple.hpp
      - copied unchanged from r43509, /trunk/boost/exception/info_tuple.hpp
   branches/proto/v3/boost/exception/to_string.hpp
      - copied unchanged from r43509, /trunk/boost/exception/to_string.hpp
   branches/proto/v3/boost/exception/to_string_stub.hpp
      - copied unchanged from r43509, /trunk/boost/exception/to_string_stub.hpp
   branches/proto/v3/boost/graph/edmonds_karp_max_flow.hpp
      - copied unchanged from r43509, /trunk/boost/graph/edmonds_karp_max_flow.hpp
   branches/proto/v3/boost/interprocess/allocators/detail/allocator_common.hpp
      - copied unchanged from r43509, /trunk/boost/interprocess/allocators/detail/allocator_common.hpp
   branches/proto/v3/boost/intrusive/detail/common_slist_algorithms.hpp
      - copied unchanged from r43509, /trunk/boost/intrusive/detail/common_slist_algorithms.hpp
   branches/proto/v3/boost/intrusive/linear_slist_algorithms.hpp
      - copied unchanged from r43509, /trunk/boost/intrusive/linear_slist_algorithms.hpp
   branches/proto/v3/boost/iostreams/detail/absolute_path.hpp
      - copied unchanged from r43509, /trunk/boost/iostreams/detail/absolute_path.hpp
   branches/proto/v3/boost/iostreams/detail/config/fpos.hpp
      - copied unchanged from r43509, /trunk/boost/iostreams/detail/config/fpos.hpp
   branches/proto/v3/boost/iostreams/detail/current_directory.hpp
      - copied unchanged from r43509, /trunk/boost/iostreams/detail/current_directory.hpp
   branches/proto/v3/boost/iostreams/detail/restrict_impl.hpp
      - copied unchanged from r43509, /trunk/boost/iostreams/detail/restrict_impl.hpp
   branches/proto/v3/boost/iostreams/slice.hpp
      - copied unchanged from r43509, /trunk/boost/iostreams/slice.hpp
   branches/proto/v3/boost/mpi/detail/binary_buffer_iprimitive.hpp
      - copied unchanged from r43509, /trunk/boost/mpi/detail/binary_buffer_iprimitive.hpp
   branches/proto/v3/boost/mpi/detail/binary_buffer_oprimitive.hpp
      - copied unchanged from r43509, /trunk/boost/mpi/detail/binary_buffer_oprimitive.hpp
   branches/proto/v3/boost/ptr_container/clone_inserter.hpp
      - copied unchanged from r43509, /trunk/boost/ptr_container/clone_inserter.hpp
   branches/proto/v3/boost/ptr_container/ptr_inserter.hpp
      - copied unchanged from r43509, /trunk/boost/ptr_container/ptr_inserter.hpp
   branches/proto/v3/boost/unordered/
      - copied from r43509, /trunk/boost/unordered/
   branches/proto/v3/boost/unordered/detail/
      - copied from r43509, /trunk/boost/unordered/detail/
   branches/proto/v3/boost/unordered/detail/allocator.hpp
      - copied unchanged from r43509, /trunk/boost/unordered/detail/allocator.hpp
   branches/proto/v3/boost/unordered/detail/hash_table.hpp
      - copied unchanged from r43509, /trunk/boost/unordered/detail/hash_table.hpp
   branches/proto/v3/boost/unordered/detail/hash_table_impl.hpp
      - copied unchanged from r43509, /trunk/boost/unordered/detail/hash_table_impl.hpp
   branches/proto/v3/boost/unordered_map.hpp
      - copied unchanged from r43509, /trunk/boost/unordered_map.hpp
   branches/proto/v3/boost/unordered_set.hpp
      - copied unchanged from r43509, /trunk/boost/unordered_set.hpp
   branches/proto/v3/boost/xpressive/proto/detail/ignore_unused.hpp
      - copied unchanged from r43509, /trunk/boost/xpressive/proto/detail/ignore_unused.hpp
   branches/proto/v3/boost/xpressive/proto/detail/pop_front.hpp
      - copied unchanged from r43509, /trunk/boost/xpressive/proto/detail/pop_front.hpp
   branches/proto/v3/boost/xpressive/proto/detail/reverse.hpp
      - copied unchanged from r43509, /trunk/boost/xpressive/proto/detail/reverse.hpp
   branches/proto/v3/doc/html/hash/
      - copied from r43509, /trunk/doc/html/hash/
   branches/proto/v3/doc/html/hash/custom.html
      - copied unchanged from r43509, /trunk/doc/html/hash/custom.html
   branches/proto/v3/doc/html/unordered.html
      - copied unchanged from r43509, /trunk/doc/html/unordered.html
   branches/proto/v3/index.htm
      - copied unchanged from r43509, /trunk/index.htm
   branches/proto/v3/index.html
      - copied unchanged from r43509, /trunk/index.html
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/additional_information.html
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/boost_bimap/the_tutorial/additional_information.html
   branches/proto/v3/libs/bimap/doc/html/images/bimap/relation.and.pair.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/bimap/relation.and.pair.png
   branches/proto/v3/libs/bimap/doc/html/images/bimap/relation.and.pair.with.info.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/bimap/relation.and.pair.with.info.png
   branches/proto/v3/libs/bimap/doc/html/images/bimap/relation.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/bimap/relation.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/
      - copied from r43509, /trunk/libs/bimap/doc/html/images/callouts/
   branches/proto/v3/libs/bimap/doc/html/images/callouts/1.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/1.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/10.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/10.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/11.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/11.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/12.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/12.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/13.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/13.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/14.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/14.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/15.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/15.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/2.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/2.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/3.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/3.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/4.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/4.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/5.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/5.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/6.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/6.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/7.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/7.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/8.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/8.png
   branches/proto/v3/libs/bimap/doc/html/images/callouts/9.png
      - copied unchanged from r43509, /trunk/libs/bimap/doc/html/images/callouts/9.png
   branches/proto/v3/libs/bind/test/bind_and_or_test.cpp
      - copied unchanged from r43509, /trunk/libs/bind/test/bind_and_or_test.cpp
   branches/proto/v3/libs/exception/
      - copied from r43509, /trunk/libs/exception/
   branches/proto/v3/libs/exception/doc/
      - copied from r43509, /trunk/libs/exception/doc/
   branches/proto/v3/libs/exception/doc/BOOST_ERROR_INFO.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/BOOST_ERROR_INFO.html
   branches/proto/v3/libs/exception/doc/adding_data_at_throw.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/adding_data_at_throw.html
   branches/proto/v3/libs/exception/doc/adding_data_later.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/adding_data_later.html
   branches/proto/v3/libs/exception/doc/boost-exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/boost-exception.html
   branches/proto/v3/libs/exception/doc/clone_exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/clone_exception.html
   branches/proto/v3/libs/exception/doc/cloning.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/cloning.html
   branches/proto/v3/libs/exception/doc/cloning_and_rethrowing.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/cloning_and_rethrowing.html
   branches/proto/v3/libs/exception/doc/enable_error_info.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/enable_error_info.html
   branches/proto/v3/libs/exception/doc/enable_exception_cloning.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/enable_exception_cloning.html
   branches/proto/v3/libs/exception/doc/error_info.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/error_info.html
   branches/proto/v3/libs/exception/doc/exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception.html
   branches/proto/v3/libs/exception/doc/exception_cloning_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_cloning_hpp.html
   branches/proto/v3/libs/exception/doc/exception_constructors.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_constructors.html
   branches/proto/v3/libs/exception/doc/exception_destructor.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_destructor.html
   branches/proto/v3/libs/exception/doc/exception_enable_error_info_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_enable_error_info_hpp.html
   branches/proto/v3/libs/exception/doc/exception_enable_exception_cloning_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_enable_exception_cloning_hpp.html
   branches/proto/v3/libs/exception/doc/exception_error_info_group_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_error_info_group_hpp.html
   branches/proto/v3/libs/exception/doc/exception_error_info_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_error_info_hpp.html
   branches/proto/v3/libs/exception/doc/exception_error_info_value_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_error_info_value_hpp.html
   branches/proto/v3/libs/exception/doc/exception_exception_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_exception_hpp.html
   branches/proto/v3/libs/exception/doc/exception_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_hpp.html
   branches/proto/v3/libs/exception/doc/exception_ptr.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_ptr.html
   branches/proto/v3/libs/exception/doc/exception_what.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/exception_what.html
   branches/proto/v3/libs/exception/doc/get_error_info.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/get_error_info.html
   branches/proto/v3/libs/exception/doc/grouping_data.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/grouping_data.html
   branches/proto/v3/libs/exception/doc/logging.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/logging.html
   branches/proto/v3/libs/exception/doc/name_idx.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/name_idx.html
   branches/proto/v3/libs/exception/doc/operator_shl_exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/operator_shl_exception.html
   branches/proto/v3/libs/exception/doc/reno.css
      - copied unchanged from r43509, /trunk/libs/exception/doc/reno.css
   branches/proto/v3/libs/exception/doc/rethrow_exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/rethrow_exception.html
   branches/proto/v3/libs/exception/doc/shade-l.png
      - copied unchanged from r43509, /trunk/libs/exception/doc/shade-l.png
   branches/proto/v3/libs/exception/doc/shade-r.png
      - copied unchanged from r43509, /trunk/libs/exception/doc/shade-r.png
   branches/proto/v3/libs/exception/doc/throw_exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/throw_exception.html
   branches/proto/v3/libs/exception/doc/throw_exception_hpp.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/throw_exception_hpp.html
   branches/proto/v3/libs/exception/doc/transporting_data.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/transporting_data.html
   branches/proto/v3/libs/exception/doc/unknown_exception.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/unknown_exception.html
   branches/proto/v3/libs/exception/doc/using_enable_cloning.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/using_enable_cloning.html
   branches/proto/v3/libs/exception/doc/using_enable_error_info.html
      - copied unchanged from r43509, /trunk/libs/exception/doc/using_enable_error_info.html
   branches/proto/v3/libs/exception/doc/valid-css.png
      - copied unchanged from r43509, /trunk/libs/exception/doc/valid-css.png
   branches/proto/v3/libs/exception/doc/valid-xhtml.png
      - copied unchanged from r43509, /trunk/libs/exception/doc/valid-xhtml.png
   branches/proto/v3/libs/exception/example/
      - copied from r43509, /trunk/libs/exception/example/
   branches/proto/v3/libs/exception/example/Jamfile
      - copied unchanged from r43509, /trunk/libs/exception/example/Jamfile
   branches/proto/v3/libs/exception/example/cloning_1.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/cloning_1.cpp
   branches/proto/v3/libs/exception/example/cloning_2.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/cloning_2.cpp
   branches/proto/v3/libs/exception/example/enable_error_info.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/enable_error_info.cpp
   branches/proto/v3/libs/exception/example/error_info_1.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/error_info_1.cpp
   branches/proto/v3/libs/exception/example/error_info_2.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/error_info_2.cpp
   branches/proto/v3/libs/exception/example/example_io.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/example_io.cpp
   branches/proto/v3/libs/exception/example/info_tuple.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/info_tuple.cpp
   branches/proto/v3/libs/exception/example/logging.cpp
      - copied unchanged from r43509, /trunk/libs/exception/example/logging.cpp
   branches/proto/v3/libs/exception/test/
      - copied from r43509, /trunk/libs/exception/test/
   branches/proto/v3/libs/exception/test/Jamfile
      - copied unchanged from r43509, /trunk/libs/exception/test/Jamfile
   branches/proto/v3/libs/exception/test/boost_error_info_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/boost_error_info_test.cpp
   branches/proto/v3/libs/exception/test/cloning_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/cloning_test.cpp
   branches/proto/v3/libs/exception/test/enable_error_info_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/enable_error_info_test.cpp
   branches/proto/v3/libs/exception/test/errno_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/errno_test.cpp
   branches/proto/v3/libs/exception/test/error_info_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/error_info_test.cpp
   branches/proto/v3/libs/exception/test/exception_fail.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/exception_fail.cpp
   branches/proto/v3/libs/exception/test/exception_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/exception_test.cpp
   branches/proto/v3/libs/exception/test/helper1.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/helper1.cpp
   branches/proto/v3/libs/exception/test/helper1.hpp
      - copied unchanged from r43509, /trunk/libs/exception/test/helper1.hpp
   branches/proto/v3/libs/exception/test/helper2.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/helper2.cpp
   branches/proto/v3/libs/exception/test/helper2.hpp
      - copied unchanged from r43509, /trunk/libs/exception/test/helper2.hpp
   branches/proto/v3/libs/exception/test/throw_exception_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/throw_exception_test.cpp
   branches/proto/v3/libs/exception/test/to_string_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/to_string_test.cpp
   branches/proto/v3/libs/exception/test/unknown_exception_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/unknown_exception_test.cpp
   branches/proto/v3/libs/exception/test/what_test.cpp
      - copied unchanged from r43509, /trunk/libs/exception/test/what_test.cpp
   branches/proto/v3/libs/foreach/test/array_byref_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/array_byref_r.cpp
   branches/proto/v3/libs/foreach/test/array_byval_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/array_byval_r.cpp
   branches/proto/v3/libs/foreach/test/cstr_byref_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/cstr_byref_r.cpp
   branches/proto/v3/libs/foreach/test/cstr_byval_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/cstr_byval_r.cpp
   branches/proto/v3/libs/foreach/test/misc.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/misc.cpp
   branches/proto/v3/libs/foreach/test/pair_byref_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/pair_byref_r.cpp
   branches/proto/v3/libs/foreach/test/pair_byval_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/pair_byval_r.cpp
   branches/proto/v3/libs/foreach/test/rvalue_const_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/rvalue_const_r.cpp
   branches/proto/v3/libs/foreach/test/rvalue_nonconst_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/rvalue_nonconst_r.cpp
   branches/proto/v3/libs/foreach/test/stl_byref_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/stl_byref_r.cpp
   branches/proto/v3/libs/foreach/test/stl_byval_r.cpp
      - copied unchanged from r43509, /trunk/libs/foreach/test/stl_byval_r.cpp
   branches/proto/v3/libs/graph/doc/edmonds_karp_max_flow.html
      - copied unchanged from r43509, /trunk/libs/graph/doc/edmonds_karp_max_flow.html
   branches/proto/v3/libs/graph/example/edmonds-karp-eg.cpp
      - copied unchanged from r43509, /trunk/libs/graph/example/edmonds-karp-eg.cpp
   branches/proto/v3/libs/interprocess/test/vector_test.hpp
      - copied unchanged from r43509, /trunk/libs/interprocess/test/vector_test.hpp
   branches/proto/v3/libs/iostreams/doc/functions/slice.html
      - copied unchanged from r43509, /trunk/libs/iostreams/doc/functions/slice.html
   branches/proto/v3/libs/iostreams/doc/release_notes.html
      - copied unchanged from r43509, /trunk/libs/iostreams/doc/release_notes.html
   branches/proto/v3/libs/iostreams/test/bool_trait_test.cpp
      - copied unchanged from r43509, /trunk/libs/iostreams/test/bool_trait_test.cpp
   branches/proto/v3/libs/iostreams/test/combine_test.cpp
      - copied unchanged from r43509, /trunk/libs/iostreams/test/combine_test.cpp
   branches/proto/v3/libs/iostreams/test/slice_test.cpp
      - copied unchanged from r43509, /trunk/libs/iostreams/test/slice_test.cpp
   branches/proto/v3/libs/iostreams/test/stream_offset_32bit_test.cpp
      - copied unchanged from r43509, /trunk/libs/iostreams/test/stream_offset_32bit_test.cpp
   branches/proto/v3/libs/iostreams/test/stream_offset_64bit_test.cpp
      - copied unchanged from r43509, /trunk/libs/iostreams/test/stream_offset_64bit_test.cpp
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/compilers_overview.html
      - copied unchanged from r43509, /trunk/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/compilers_overview.html
   branches/proto/v3/libs/mpi/src/python/py_nonblocking.cpp
      - copied unchanged from r43509, /trunk/libs/mpi/src/python/py_nonblocking.cpp
   branches/proto/v3/libs/mpi/src/python/request_with_value.hpp
      - copied unchanged from r43509, /trunk/libs/mpi/src/python/request_with_value.hpp
   branches/proto/v3/libs/mpi/test/python/nonblocking_test.py
      - copied unchanged from r43509, /trunk/libs/mpi/test/python/nonblocking_test.py
   branches/proto/v3/libs/numeric/conversion/doc/Jamfile.v2
      - copied unchanged from r43509, /trunk/libs/numeric/conversion/doc/Jamfile.v2
   branches/proto/v3/libs/numeric/conversion/doc/html/images/
      - copied from r43509, /trunk/libs/numeric/conversion/doc/html/images/
   branches/proto/v3/libs/numeric/conversion/doc/html/images/callouts/
      - copied from r43509, /trunk/libs/numeric/conversion/doc/html/images/callouts/
   branches/proto/v3/libs/numeric/conversion/doc/html/images/callouts/R.png
      - copied unchanged from r43509, /trunk/libs/numeric/conversion/doc/html/images/callouts/R.png
   branches/proto/v3/libs/numeric/conversion/doc/html/images/space.png
      - copied unchanged from r43509, /trunk/libs/numeric/conversion/doc/html/images/space.png
   branches/proto/v3/libs/ptr_container/test/ptr_inserter.cpp
      - copied unchanged from r43509, /trunk/libs/ptr_container/test/ptr_inserter.cpp
   branches/proto/v3/libs/smart_ptr/test/scoped_array_eq_fail.cpp
      - copied unchanged from r43509, /trunk/libs/smart_ptr/test/scoped_array_eq_fail.cpp
   branches/proto/v3/libs/smart_ptr/test/scoped_ptr_eq_fail.cpp
      - copied unchanged from r43509, /trunk/libs/smart_ptr/test/scoped_ptr_eq_fail.cpp
   branches/proto/v3/libs/thread/test/test_thread_launching.cpp
      - copied unchanged from r43509, /trunk/libs/thread/test/test_thread_launching.cpp
   branches/proto/v3/libs/unordered/
      - copied from r43509, /trunk/libs/unordered/
   branches/proto/v3/libs/unordered/doc/
      - copied from r43509, /trunk/libs/unordered/doc/
   branches/proto/v3/libs/unordered/doc/Jamfile.v2
      - copied unchanged from r43509, /trunk/libs/unordered/doc/Jamfile.v2
   branches/proto/v3/libs/unordered/doc/buckets.qbk
      - copied unchanged from r43509, /trunk/libs/unordered/doc/buckets.qbk
   branches/proto/v3/libs/unordered/doc/comparison.qbk
      - copied unchanged from r43509, /trunk/libs/unordered/doc/comparison.qbk
   branches/proto/v3/libs/unordered/doc/diagrams/
      - copied from r43509, /trunk/libs/unordered/doc/diagrams/
   branches/proto/v3/libs/unordered/doc/diagrams/buckets.dia
      - copied unchanged from r43509, /trunk/libs/unordered/doc/diagrams/buckets.dia
   branches/proto/v3/libs/unordered/doc/diagrams/buckets.png
      - copied unchanged from r43509, /trunk/libs/unordered/doc/diagrams/buckets.png
   branches/proto/v3/libs/unordered/doc/hash_equality.qbk
      - copied unchanged from r43509, /trunk/libs/unordered/doc/hash_equality.qbk
   branches/proto/v3/libs/unordered/doc/intro.qbk
      - copied unchanged from r43509, /trunk/libs/unordered/doc/intro.qbk
   branches/proto/v3/libs/unordered/doc/rationale.qbk
      - copied unchanged from r43509, /trunk/libs/unordered/doc/rationale.qbk
   branches/proto/v3/libs/unordered/doc/ref.xml
      - copied unchanged from r43509, /trunk/libs/unordered/doc/ref.xml
   branches/proto/v3/libs/unordered/doc/src_code/
      - copied from r43509, /trunk/libs/unordered/doc/src_code/
   branches/proto/v3/libs/unordered/doc/src_code/insensitive.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/doc/src_code/insensitive.cpp
   branches/proto/v3/libs/unordered/doc/src_code/point1.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/doc/src_code/point1.cpp
   branches/proto/v3/libs/unordered/doc/src_code/point2.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/doc/src_code/point2.cpp
   branches/proto/v3/libs/unordered/doc/unordered.qbk
      - copied unchanged from r43509, /trunk/libs/unordered/doc/unordered.qbk
   branches/proto/v3/libs/unordered/examples/
      - copied from r43509, /trunk/libs/unordered/examples/
   branches/proto/v3/libs/unordered/examples/case_insensitive.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/examples/case_insensitive.hpp
   branches/proto/v3/libs/unordered/examples/case_insensitive_test.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/examples/case_insensitive_test.cpp
   branches/proto/v3/libs/unordered/examples/hash_functions/
      - copied from r43509, /trunk/libs/unordered/examples/hash_functions/
   branches/proto/v3/libs/unordered/examples/hash_functions/fnv-1.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/examples/hash_functions/fnv-1.hpp
   branches/proto/v3/libs/unordered/index.html
      - copied unchanged from r43509, /trunk/libs/unordered/index.html
   branches/proto/v3/libs/unordered/test/
      - copied from r43509, /trunk/libs/unordered/test/
   branches/proto/v3/libs/unordered/test/Jamfile.v2
      - copied unchanged from r43509, /trunk/libs/unordered/test/Jamfile.v2
   branches/proto/v3/libs/unordered/test/exception/
      - copied from r43509, /trunk/libs/unordered/test/exception/
   branches/proto/v3/libs/unordered/test/exception/Jamfile.v2
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/Jamfile.v2
   branches/proto/v3/libs/unordered/test/exception/assign_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/assign_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/exception/constructor_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/constructor_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/exception/containers.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/containers.hpp
   branches/proto/v3/libs/unordered/test/exception/copy_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/copy_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/exception/erase_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/erase_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/exception/insert_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/insert_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/exception/rehash_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/rehash_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/exception/swap_exception_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/exception/swap_exception_tests.cpp
   branches/proto/v3/libs/unordered/test/helpers/
      - copied from r43509, /trunk/libs/unordered/test/helpers/
   branches/proto/v3/libs/unordered/test/helpers/allocator.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/allocator.hpp
   branches/proto/v3/libs/unordered/test/helpers/check_return_type.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/check_return_type.hpp
   branches/proto/v3/libs/unordered/test/helpers/equivalent.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/equivalent.hpp
   branches/proto/v3/libs/unordered/test/helpers/exception_test.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/exception_test.hpp
   branches/proto/v3/libs/unordered/test/helpers/fwd.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/fwd.hpp
   branches/proto/v3/libs/unordered/test/helpers/generators.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/generators.hpp
   branches/proto/v3/libs/unordered/test/helpers/helpers.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/helpers.hpp
   branches/proto/v3/libs/unordered/test/helpers/input_iterator.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/input_iterator.hpp
   branches/proto/v3/libs/unordered/test/helpers/invariants.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/invariants.hpp
   branches/proto/v3/libs/unordered/test/helpers/metafunctions.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/metafunctions.hpp
   branches/proto/v3/libs/unordered/test/helpers/random_values.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/random_values.hpp
   branches/proto/v3/libs/unordered/test/helpers/strong.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/strong.hpp
   branches/proto/v3/libs/unordered/test/helpers/test.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/test.hpp
   branches/proto/v3/libs/unordered/test/helpers/tracker.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/helpers/tracker.hpp
   branches/proto/v3/libs/unordered/test/objects/
      - copied from r43509, /trunk/libs/unordered/test/objects/
   branches/proto/v3/libs/unordered/test/objects/exception.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/objects/exception.hpp
   branches/proto/v3/libs/unordered/test/objects/fwd.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/objects/fwd.hpp
   branches/proto/v3/libs/unordered/test/objects/memory.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/objects/memory.hpp
   branches/proto/v3/libs/unordered/test/objects/minimal.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/objects/minimal.hpp
   branches/proto/v3/libs/unordered/test/objects/test.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/objects/test.hpp
   branches/proto/v3/libs/unordered/test/unordered/
      - copied from r43509, /trunk/libs/unordered/test/unordered/
   branches/proto/v3/libs/unordered/test/unordered/Jamfile.v2
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/Jamfile.v2
   branches/proto/v3/libs/unordered/test/unordered/assign_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/assign_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/at_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/at_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/bucket_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/bucket_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/compile_map.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/compile_map.cpp
   branches/proto/v3/libs/unordered/test/unordered/compile_set.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/compile_set.cpp
   branches/proto/v3/libs/unordered/test/unordered/compile_tests.hpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/compile_tests.hpp
   branches/proto/v3/libs/unordered/test/unordered/constructor_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/constructor_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/copy_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/copy_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/equivalent_keys_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/equivalent_keys_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/erase_equiv_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/erase_equiv_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/erase_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/erase_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/find_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/find_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/insert_stable_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/insert_stable_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/insert_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/insert_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/link_test_1.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/link_test_1.cpp
   branches/proto/v3/libs/unordered/test/unordered/link_test_2.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/link_test_2.cpp
   branches/proto/v3/libs/unordered/test/unordered/load_factor_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/load_factor_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/rehash_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/rehash_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/simple_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/simple_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/swap_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/swap_tests.cpp
   branches/proto/v3/libs/unordered/test/unordered/unnecessary_copy_tests.cpp
      - copied unchanged from r43509, /trunk/libs/unordered/test/unordered/unnecessary_copy_tests.cpp
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_019.cpp
      - copied unchanged from r43509, /trunk/libs/wave/test/testwave/testfiles/t_9_019.cpp
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_019.hpp
      - copied unchanged from r43509, /trunk/libs/wave/test/testwave/testfiles/t_9_019.hpp
   branches/proto/v3/libs/xpressive/proto/doc/concepts/
      - copied from r43509, /trunk/libs/xpressive/proto/doc/concepts/
   branches/proto/v3/libs/xpressive/proto/doc/concepts/PolymorphicFunctionObject.xml
      - copied unchanged from r43509, /trunk/libs/xpressive/proto/doc/concepts/PolymorphicFunctionObject.xml
   branches/proto/v3/libs/xpressive/proto/doc/concepts/PrimitiveTransform.xml
      - copied unchanged from r43509, /trunk/libs/xpressive/proto/doc/concepts/PrimitiveTransform.xml
   branches/proto/v3/libs/xpressive/proto/doc/concepts/Transform.xml
      - copied unchanged from r43509, /trunk/libs/xpressive/proto/doc/concepts/Transform.xml
   branches/proto/v3/libs/xpressive/proto/doc/proto.xml
      - copied unchanged from r43509, /trunk/libs/xpressive/proto/doc/proto.xml
   branches/proto/v3/libs/xpressive/proto/doc/wave.sh
      - copied unchanged from r43509, /trunk/libs/xpressive/proto/doc/wave.sh
   branches/proto/v3/libs/xpressive/proto/example/futures.cpp
      - copied, changed from r43509, /trunk/libs/xpressive/proto/example/futures.cpp
   branches/proto/v3/libs/xpressive/proto/example/map_assign.cpp
      - copied, changed from r43509, /trunk/libs/xpressive/proto/example/map_assign.cpp
   branches/proto/v3/libs/xpressive/test/test_skip.cpp
      - copied unchanged from r43509, /trunk/libs/xpressive/test/test_skip.cpp
   branches/proto/v3/tools/build/v2/test/conditionals_multiple.py
      - copied unchanged from r43509, /trunk/tools/build/v2/test/conditionals_multiple.py
   branches/proto/v3/tools/build/v2/test/configuration.py
      - copied unchanged from r43509, /trunk/tools/build/v2/test/configuration.py
   branches/proto/v3/tools/build/v2/test/default_toolset.py
      - copied unchanged from r43509, /trunk/tools/build/v2/test/default_toolset.py
   branches/proto/v3/tools/release/index.html
      - copied unchanged from r43509, /trunk/tools/release/index.html
   branches/proto/v3/tools/release/inspect.sh
      - copied unchanged from r43509, /trunk/tools/release/inspect.sh
   branches/proto/v3/tools/release/snapshot_posix.sh
      - copied unchanged from r43509, /trunk/tools/release/snapshot_posix.sh
   branches/proto/v3/tools/release/snapshot_windows.sh
      - copied unchanged from r43509, /trunk/tools/release/snapshot_windows.sh
Removed:
   branches/proto/v3/README
   branches/proto/v3/boost/asio/detail/win_iocp_operation.hpp
   branches/proto/v3/boost/graph/edmunds_karp_max_flow.hpp
   branches/proto/v3/doc/html/boost_math/
   branches/proto/v3/doc/html/boost_math.html
   branches/proto/v3/doc/html/boost_typetraits/
   branches/proto/v3/doc/html/boost_typetraits.html
   branches/proto/v3/doc/html/functionN.html
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/hooking_information.html
   branches/proto/v3/libs/bimap/doc/html/images/caution.png
   branches/proto/v3/libs/bimap/doc/html/images/extern/boost.blade.logo.png
   branches/proto/v3/libs/bimap/doc/html/images/home.png
   branches/proto/v3/libs/bimap/doc/html/images/important.png
   branches/proto/v3/libs/bimap/doc/html/images/next.png
   branches/proto/v3/libs/bimap/doc/html/images/note.png
   branches/proto/v3/libs/bimap/doc/html/images/prev.png
   branches/proto/v3/libs/bimap/doc/html/images/tip.png
   branches/proto/v3/libs/bimap/doc/html/images/toc/
   branches/proto/v3/libs/bimap/doc/html/images/up.png
   branches/proto/v3/libs/bimap/doc/html/images/warning.png
   branches/proto/v3/libs/fusion/doc/html/fusion/extension/macros.html
   branches/proto/v3/libs/graph/doc/edmunds_karp_max_flow.html
   branches/proto/v3/libs/graph/example/edmunds-karp-eg.cpp
   branches/proto/v3/libs/numeric/conversion/doc/bounds.html
   branches/proto/v3/libs/numeric/conversion/doc/conversion_traits.html
   branches/proto/v3/libs/numeric/conversion/doc/converter.html
   branches/proto/v3/libs/numeric/conversion/doc/converter_policies.html
   branches/proto/v3/libs/numeric/conversion/doc/definitions.html
   branches/proto/v3/libs/numeric/conversion/doc/index.html
   branches/proto/v3/libs/numeric/conversion/doc/numeric_cast.html
   branches/proto/v3/libs/numeric/conversion/doc/requirements.html
   branches/proto/v3/libs/optional/doc/html/images/callouts/1.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/10.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/11.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/12.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/13.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/14.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/15.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/2.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/3.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/4.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/5.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/6.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/7.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/8.png
   branches/proto/v3/libs/optional/doc/html/images/callouts/9.png
   branches/proto/v3/libs/optional/doc/html/images/caution.png
   branches/proto/v3/libs/optional/doc/html/images/home.png
   branches/proto/v3/libs/optional/doc/html/images/important.png
   branches/proto/v3/libs/optional/doc/html/images/next.png
   branches/proto/v3/libs/optional/doc/html/images/note.png
   branches/proto/v3/libs/optional/doc/html/images/prev.png
   branches/proto/v3/libs/optional/doc/html/images/tip.png
   branches/proto/v3/libs/optional/doc/html/images/up.png
   branches/proto/v3/libs/optional/doc/html/images/warning.png
   branches/proto/v3/libs/optional/doc/optional.html
   branches/proto/v3/libs/ptr_container/test/sequence_point.cpp
   branches/proto/v3/libs/range/test/TODO
   branches/proto/v3/libs/range/test/compat1.cpp
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/background.html
   branches/proto/v3/more/Jamfile.v2
   branches/proto/v3/more/css_0/
   branches/proto/v3/more/favicon.ico
   branches/proto/v3/more/getting_started.rst
   branches/proto/v3/more/index.htm
   branches/proto/v3/tools/release/make_tarballs.py
   branches/proto/v3/tools/release/utils.py
Properties modified:
   branches/proto/v3/ (props changed)
   branches/proto/v3/libs/date_time/src/date_time.doc (contents, props changed)
Binary files modified:
   branches/proto/v3/libs/date_time/src/date_time.doc
   branches/proto/v3/libs/range/doc/Jamfile.v2
   branches/proto/v3/libs/statechart/doc/reference.pdf
Text files modified:
   branches/proto/v3/Jamroot | 2
   branches/proto/v3/boost/accumulators/framework/accumulator_set.hpp | 5
   branches/proto/v3/boost/accumulators/framework/accumulators/droppable_accumulator.hpp | 14
   branches/proto/v3/boost/accumulators/framework/accumulators/reference_accumulator.hpp | 2
   branches/proto/v3/boost/accumulators/framework/accumulators/value_accumulator.hpp | 2
   branches/proto/v3/boost/accumulators/framework/depends_on.hpp | 8
   branches/proto/v3/boost/accumulators/framework/extractor.hpp | 2
   branches/proto/v3/boost/accumulators/numeric/functional.hpp | 27
   branches/proto/v3/boost/accumulators/numeric/functional_fwd.hpp | 6
   branches/proto/v3/boost/accumulators/statistics/covariance.hpp | 25
   branches/proto/v3/boost/accumulators/statistics/density.hpp | 58
   branches/proto/v3/boost/accumulators/statistics/extended_p_square.hpp | 21
   branches/proto/v3/boost/accumulators/statistics/extended_p_square_quantile.hpp | 51
   branches/proto/v3/boost/accumulators/statistics/kurtosis.hpp | 20
   branches/proto/v3/boost/accumulators/statistics/mean.hpp | 4
   branches/proto/v3/boost/accumulators/statistics/median.hpp | 42
   branches/proto/v3/boost/accumulators/statistics/moment.hpp | 2
   branches/proto/v3/boost/accumulators/statistics/p_square_cumulative_distribution.hpp | 56
   branches/proto/v3/boost/accumulators/statistics/p_square_quantile.hpp | 19
   branches/proto/v3/boost/accumulators/statistics/peaks_over_threshold.hpp | 120 +-
   branches/proto/v3/boost/accumulators/statistics/pot_quantile.hpp | 33
   branches/proto/v3/boost/accumulators/statistics/pot_tail_mean.hpp | 29
   branches/proto/v3/boost/accumulators/statistics/skewness.hpp | 16
   branches/proto/v3/boost/accumulators/statistics/sum.hpp | 4
   branches/proto/v3/boost/accumulators/statistics/tail.hpp | 10
   branches/proto/v3/boost/accumulators/statistics/tail_mean.hpp | 67
   branches/proto/v3/boost/accumulators/statistics/tail_quantile.hpp | 34
   branches/proto/v3/boost/accumulators/statistics/tail_variate.hpp | 4
   branches/proto/v3/boost/accumulators/statistics/tail_variate_means.hpp | 76 +
   branches/proto/v3/boost/accumulators/statistics/times2_iterator.hpp | 2
   branches/proto/v3/boost/accumulators/statistics/variance.hpp | 35
   branches/proto/v3/boost/accumulators/statistics/weighted_covariance.hpp | 19
   branches/proto/v3/boost/accumulators/statistics/weighted_density.hpp | 54
   branches/proto/v3/boost/accumulators/statistics/weighted_extended_p_square.hpp | 55
   branches/proto/v3/boost/accumulators/statistics/weighted_kurtosis.hpp | 24
   branches/proto/v3/boost/accumulators/statistics/weighted_mean.hpp | 6
   branches/proto/v3/boost/accumulators/statistics/weighted_median.hpp | 37
   branches/proto/v3/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp | 64
   branches/proto/v3/boost/accumulators/statistics/weighted_p_square_quantile.hpp | 61
   branches/proto/v3/boost/accumulators/statistics/weighted_peaks_over_threshold.hpp | 56
   branches/proto/v3/boost/accumulators/statistics/weighted_skewness.hpp | 14
   branches/proto/v3/boost/accumulators/statistics/weighted_sum.hpp | 8
   branches/proto/v3/boost/accumulators/statistics/weighted_tail_mean.hpp | 49
   branches/proto/v3/boost/accumulators/statistics/weighted_tail_quantile.hpp | 37
   branches/proto/v3/boost/accumulators/statistics/weighted_tail_variate_means.hpp | 80 +
   branches/proto/v3/boost/accumulators/statistics/weighted_variance.hpp | 24
   branches/proto/v3/boost/accumulators/statistics_fwd.hpp | 62
   branches/proto/v3/boost/asio.hpp | 2
   branches/proto/v3/boost/asio/basic_datagram_socket.hpp | 2
   branches/proto/v3/boost/asio/basic_deadline_timer.hpp | 2
   branches/proto/v3/boost/asio/basic_io_object.hpp | 2
   branches/proto/v3/boost/asio/basic_socket.hpp | 76 +
   branches/proto/v3/boost/asio/basic_socket_acceptor.hpp | 2
   branches/proto/v3/boost/asio/basic_socket_iostream.hpp | 4
   branches/proto/v3/boost/asio/basic_socket_streambuf.hpp | 2
   branches/proto/v3/boost/asio/basic_stream_socket.hpp | 2
   branches/proto/v3/boost/asio/basic_streambuf.hpp | 2
   branches/proto/v3/boost/asio/buffer.hpp | 7
   branches/proto/v3/boost/asio/buffered_read_stream.hpp | 2
   branches/proto/v3/boost/asio/buffered_read_stream_fwd.hpp | 2
   branches/proto/v3/boost/asio/buffered_stream.hpp | 2
   branches/proto/v3/boost/asio/buffered_stream_fwd.hpp | 2
   branches/proto/v3/boost/asio/buffered_write_stream.hpp | 2
   branches/proto/v3/boost/asio/buffered_write_stream_fwd.hpp | 2
   branches/proto/v3/boost/asio/completion_condition.hpp | 2
   branches/proto/v3/boost/asio/datagram_socket_service.hpp | 2
   branches/proto/v3/boost/asio/deadline_timer.hpp | 2
   branches/proto/v3/boost/asio/deadline_timer_service.hpp | 2
   branches/proto/v3/boost/asio/detail/bind_handler.hpp | 12
   branches/proto/v3/boost/asio/detail/buffer_resize_guard.hpp | 2
   branches/proto/v3/boost/asio/detail/buffered_stream_storage.hpp | 2
   branches/proto/v3/boost/asio/detail/call_stack.hpp | 2
   branches/proto/v3/boost/asio/detail/const_buffers_iterator.hpp | 2
   branches/proto/v3/boost/asio/detail/consuming_buffers.hpp | 2
   branches/proto/v3/boost/asio/detail/deadline_timer_service.hpp | 2
   branches/proto/v3/boost/asio/detail/dev_poll_reactor.hpp | 2
   branches/proto/v3/boost/asio/detail/dev_poll_reactor_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/epoll_reactor.hpp | 16
   branches/proto/v3/boost/asio/detail/epoll_reactor_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/event.hpp | 2
   branches/proto/v3/boost/asio/detail/fd_set_adapter.hpp | 2
   branches/proto/v3/boost/asio/detail/handler_alloc_helpers.hpp | 2
   branches/proto/v3/boost/asio/detail/handler_invoke_helpers.hpp | 8
   branches/proto/v3/boost/asio/detail/handler_queue.hpp | 4
   branches/proto/v3/boost/asio/detail/hash_map.hpp | 2
   branches/proto/v3/boost/asio/detail/io_control.hpp | 2
   branches/proto/v3/boost/asio/detail/kqueue_reactor.hpp | 16
   branches/proto/v3/boost/asio/detail/kqueue_reactor_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/local_free_on_block_exit.hpp | 2
   branches/proto/v3/boost/asio/detail/mutex.hpp | 2
   branches/proto/v3/boost/asio/detail/noncopyable.hpp | 2
   branches/proto/v3/boost/asio/detail/null_event.hpp | 2
   branches/proto/v3/boost/asio/detail/null_mutex.hpp | 2
   branches/proto/v3/boost/asio/detail/null_signal_blocker.hpp | 2
   branches/proto/v3/boost/asio/detail/null_thread.hpp | 2
   branches/proto/v3/boost/asio/detail/null_tss_ptr.hpp | 2
   branches/proto/v3/boost/asio/detail/old_win_sdk_compat.hpp | 18
   branches/proto/v3/boost/asio/detail/pipe_select_interrupter.hpp | 2
   branches/proto/v3/boost/asio/detail/pop_options.hpp | 2
   branches/proto/v3/boost/asio/detail/posix_event.hpp | 2
   branches/proto/v3/boost/asio/detail/posix_fd_set_adapter.hpp | 2
   branches/proto/v3/boost/asio/detail/posix_mutex.hpp | 2
   branches/proto/v3/boost/asio/detail/posix_signal_blocker.hpp | 2
   branches/proto/v3/boost/asio/detail/posix_thread.hpp | 2
   branches/proto/v3/boost/asio/detail/posix_tss_ptr.hpp | 2
   branches/proto/v3/boost/asio/detail/push_options.hpp | 8
   branches/proto/v3/boost/asio/detail/reactive_socket_service.hpp | 2
   branches/proto/v3/boost/asio/detail/reactor_op_queue.hpp | 2
   branches/proto/v3/boost/asio/detail/resolver_service.hpp | 2
   branches/proto/v3/boost/asio/detail/scoped_lock.hpp | 2
   branches/proto/v3/boost/asio/detail/select_interrupter.hpp | 2
   branches/proto/v3/boost/asio/detail/select_reactor.hpp | 2
   branches/proto/v3/boost/asio/detail/select_reactor_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/service_base.hpp | 2
   branches/proto/v3/boost/asio/detail/service_id.hpp | 2
   branches/proto/v3/boost/asio/detail/service_registry.hpp | 2
   branches/proto/v3/boost/asio/detail/service_registry_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/signal_blocker.hpp | 2
   branches/proto/v3/boost/asio/detail/signal_init.hpp | 2
   branches/proto/v3/boost/asio/detail/socket_holder.hpp | 2
   branches/proto/v3/boost/asio/detail/socket_ops.hpp | 11
   branches/proto/v3/boost/asio/detail/socket_option.hpp | 2
   branches/proto/v3/boost/asio/detail/socket_select_interrupter.hpp | 2
   branches/proto/v3/boost/asio/detail/socket_types.hpp | 4
   branches/proto/v3/boost/asio/detail/strand_service.hpp | 6
   branches/proto/v3/boost/asio/detail/task_io_service.hpp | 4
   branches/proto/v3/boost/asio/detail/task_io_service_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/thread.hpp | 2
   branches/proto/v3/boost/asio/detail/throw_error.hpp | 2
   branches/proto/v3/boost/asio/detail/timer_queue.hpp | 2
   branches/proto/v3/boost/asio/detail/timer_queue_base.hpp | 2
   branches/proto/v3/boost/asio/detail/tss_ptr.hpp | 2
   branches/proto/v3/boost/asio/detail/win_event.hpp | 2
   branches/proto/v3/boost/asio/detail/win_fd_set_adapter.hpp | 2
   branches/proto/v3/boost/asio/detail/win_iocp_io_service.hpp | 110 ++
   branches/proto/v3/boost/asio/detail/win_iocp_io_service_fwd.hpp | 2
   branches/proto/v3/boost/asio/detail/win_iocp_socket_service.hpp | 103 +
   branches/proto/v3/boost/asio/detail/win_mutex.hpp | 2
   branches/proto/v3/boost/asio/detail/win_signal_blocker.hpp | 2
   branches/proto/v3/boost/asio/detail/win_thread.hpp | 2
   branches/proto/v3/boost/asio/detail/win_tss_ptr.hpp | 2
   branches/proto/v3/boost/asio/detail/wince_thread.hpp | 2
   branches/proto/v3/boost/asio/detail/winsock_init.hpp | 2
   branches/proto/v3/boost/asio/detail/wrapped_handler.hpp | 4
   branches/proto/v3/boost/asio/error.hpp | 7
   branches/proto/v3/boost/asio/handler_alloc_hook.hpp | 2
   branches/proto/v3/boost/asio/handler_invoke_hook.hpp | 2
   branches/proto/v3/boost/asio/impl/io_service.ipp | 2
   branches/proto/v3/boost/asio/impl/read.ipp | 6
   branches/proto/v3/boost/asio/impl/read_until.ipp | 8
   branches/proto/v3/boost/asio/impl/write.ipp | 6
   branches/proto/v3/boost/asio/io_service.hpp | 2
   branches/proto/v3/boost/asio/ip/address.hpp | 2
   branches/proto/v3/boost/asio/ip/address_v4.hpp | 2
   branches/proto/v3/boost/asio/ip/address_v6.hpp | 2
   branches/proto/v3/boost/asio/ip/basic_endpoint.hpp | 2
   branches/proto/v3/boost/asio/ip/basic_resolver.hpp | 2
   branches/proto/v3/boost/asio/ip/basic_resolver_entry.hpp | 2
   branches/proto/v3/boost/asio/ip/basic_resolver_iterator.hpp | 2
   branches/proto/v3/boost/asio/ip/basic_resolver_query.hpp | 2
   branches/proto/v3/boost/asio/ip/detail/socket_option.hpp | 2
   branches/proto/v3/boost/asio/ip/host_name.hpp | 2
   branches/proto/v3/boost/asio/ip/multicast.hpp | 2
   branches/proto/v3/boost/asio/ip/resolver_query_base.hpp | 2
   branches/proto/v3/boost/asio/ip/resolver_service.hpp | 2
   branches/proto/v3/boost/asio/ip/tcp.hpp | 2
   branches/proto/v3/boost/asio/ip/udp.hpp | 2
   branches/proto/v3/boost/asio/ip/unicast.hpp | 2
   branches/proto/v3/boost/asio/ip/v6_only.hpp | 2
   branches/proto/v3/boost/asio/is_read_buffered.hpp | 2
   branches/proto/v3/boost/asio/is_write_buffered.hpp | 2
   branches/proto/v3/boost/asio/placeholders.hpp | 2
   branches/proto/v3/boost/asio/read.hpp | 2
   branches/proto/v3/boost/asio/read_until.hpp | 2
   branches/proto/v3/boost/asio/socket_acceptor_service.hpp | 2
   branches/proto/v3/boost/asio/socket_base.hpp | 2
   branches/proto/v3/boost/asio/ssl.hpp | 2
   branches/proto/v3/boost/asio/ssl/basic_context.hpp | 2
   branches/proto/v3/boost/asio/ssl/context.hpp | 2
   branches/proto/v3/boost/asio/ssl/context_base.hpp | 2
   branches/proto/v3/boost/asio/ssl/context_service.hpp | 2
   branches/proto/v3/boost/asio/ssl/detail/openssl_context_service.hpp | 2
   branches/proto/v3/boost/asio/ssl/detail/openssl_init.hpp | 18
   branches/proto/v3/boost/asio/ssl/detail/openssl_operation.hpp | 43
   branches/proto/v3/boost/asio/ssl/detail/openssl_stream_service.hpp | 55 +
   branches/proto/v3/boost/asio/ssl/detail/openssl_types.hpp | 4
   branches/proto/v3/boost/asio/ssl/stream.hpp | 2
   branches/proto/v3/boost/asio/ssl/stream_base.hpp | 2
   branches/proto/v3/boost/asio/ssl/stream_service.hpp | 2
   branches/proto/v3/boost/asio/strand.hpp | 2
   branches/proto/v3/boost/asio/stream_socket_service.hpp | 2
   branches/proto/v3/boost/asio/streambuf.hpp | 2
   branches/proto/v3/boost/asio/time_traits.hpp | 2
   branches/proto/v3/boost/asio/version.hpp | 2
   branches/proto/v3/boost/asio/write.hpp | 2
   branches/proto/v3/boost/assign/list_of.hpp | 140 ++
   branches/proto/v3/boost/assign/ptr_list_of.hpp | 14
   branches/proto/v3/boost/bimap/detail/bimap_core.hpp | 50
   branches/proto/v3/boost/bimap/detail/set_view_base.hpp | 2
   branches/proto/v3/boost/bimap/list_of.hpp | 4
   branches/proto/v3/boost/bimap/multiset_of.hpp | 8
   branches/proto/v3/boost/bimap/set_of.hpp | 8
   branches/proto/v3/boost/bimap/unconstrained_set_of.hpp | 4
   branches/proto/v3/boost/bimap/unordered_multiset_of.hpp | 8
   branches/proto/v3/boost/bimap/unordered_set_of.hpp | 8
   branches/proto/v3/boost/bimap/vector_of.hpp | 4
   branches/proto/v3/boost/bind.hpp | 26
   branches/proto/v3/boost/circular_buffer/base.hpp | 10
   branches/proto/v3/boost/circular_buffer/details.hpp | 2
   branches/proto/v3/boost/circular_buffer/space_optimized.hpp | 5
   branches/proto/v3/boost/config/compiler/intel.hpp | 15
   branches/proto/v3/boost/config/compiler/sunpro_cc.hpp | 4
   branches/proto/v3/boost/config/platform/hpux.hpp | 3
   branches/proto/v3/boost/date_time.hpp | 2
   branches/proto/v3/boost/date_time/adjust_functors.hpp | 2
   branches/proto/v3/boost/date_time/c_local_time_adjustor.hpp | 2
   branches/proto/v3/boost/date_time/c_time.hpp | 2
   branches/proto/v3/boost/date_time/compiler_config.hpp | 2
   branches/proto/v3/boost/date_time/constrained_value.hpp | 2
   branches/proto/v3/boost/date_time/date.hpp | 2
   branches/proto/v3/boost/date_time/date_clock_device.hpp | 2
   branches/proto/v3/boost/date_time/date_defs.hpp | 2
   branches/proto/v3/boost/date_time/date_duration.hpp | 2
   branches/proto/v3/boost/date_time/date_duration_types.hpp | 4
   branches/proto/v3/boost/date_time/date_facet.hpp | 2
   branches/proto/v3/boost/date_time/date_format_simple.hpp | 2
   branches/proto/v3/boost/date_time/date_formatting.hpp | 2
   branches/proto/v3/boost/date_time/date_formatting_limited.hpp | 2
   branches/proto/v3/boost/date_time/date_formatting_locales.hpp | 2
   branches/proto/v3/boost/date_time/date_generator_formatter.hpp | 2
   branches/proto/v3/boost/date_time/date_generator_parser.hpp | 2
   branches/proto/v3/boost/date_time/date_generators.hpp | 2
   branches/proto/v3/boost/date_time/date_iterator.hpp | 2
   branches/proto/v3/boost/date_time/date_names_put.hpp | 2
   branches/proto/v3/boost/date_time/date_parsing.hpp | 2
   branches/proto/v3/boost/date_time/dst_rules.hpp | 2
   branches/proto/v3/boost/date_time/dst_transition_generators.hpp | 2
   branches/proto/v3/boost/date_time/filetime_functions.hpp | 2
   branches/proto/v3/boost/date_time/format_date_parser.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/conversion.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/formatters.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/formatters_limited.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_calendar.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_date.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_day.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_day_of_year.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_duration.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_duration_types.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_facet.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_month.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_serialize.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_weekday.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_year.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/greg_ymd.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/gregorian.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/gregorian_io.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/gregorian_types.hpp | 2
   branches/proto/v3/boost/date_time/gregorian/parsers.hpp | 2
   branches/proto/v3/boost/date_time/gregorian_calendar.hpp | 2
   branches/proto/v3/boost/date_time/gregorian_calendar.ipp | 2
   branches/proto/v3/boost/date_time/int_adapter.hpp | 2
   branches/proto/v3/boost/date_time/iso_format.hpp | 2
   branches/proto/v3/boost/date_time/local_time/conversion.hpp | 2
   branches/proto/v3/boost/date_time/local_time/custom_time_zone.hpp | 2
   branches/proto/v3/boost/date_time/local_time/date_duration_operators.hpp | 4
   branches/proto/v3/boost/date_time/local_time/dst_transition_day_rules.hpp | 2
   branches/proto/v3/boost/date_time/local_time/local_date_time.hpp | 2
   branches/proto/v3/boost/date_time/local_time/local_time.hpp | 2
   branches/proto/v3/boost/date_time/local_time/local_time_io.hpp | 2
   branches/proto/v3/boost/date_time/local_time/local_time_types.hpp | 2
   branches/proto/v3/boost/date_time/local_time/posix_time_zone.hpp | 2
   branches/proto/v3/boost/date_time/local_time/tz_database.hpp | 2
   branches/proto/v3/boost/date_time/local_time_adjustor.hpp | 2
   branches/proto/v3/boost/date_time/local_timezone_defs.hpp | 2
   branches/proto/v3/boost/date_time/locale_config.hpp | 2
   branches/proto/v3/boost/date_time/microsec_time_clock.hpp | 2
   branches/proto/v3/boost/date_time/parse_format_base.hpp | 2
   branches/proto/v3/boost/date_time/period.hpp | 2
   branches/proto/v3/boost/date_time/period_formatter.hpp | 2
   branches/proto/v3/boost/date_time/period_parser.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/conversion.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/date_duration_operators.hpp | 4
   branches/proto/v3/boost/date_time/posix_time/posix_time.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/posix_time_config.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/posix_time_duration.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/posix_time_io.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/posix_time_legacy_io.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/posix_time_system.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/posix_time_types.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/ptime.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/time_formatters.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/time_formatters_limited.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/time_parsers.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/time_period.hpp | 2
   branches/proto/v3/boost/date_time/posix_time/time_serialize.hpp | 2
   branches/proto/v3/boost/date_time/special_defs.hpp | 2
   branches/proto/v3/boost/date_time/special_values_formatter.hpp | 2
   branches/proto/v3/boost/date_time/special_values_parser.hpp | 2
   branches/proto/v3/boost/date_time/string_convert.hpp | 2
   branches/proto/v3/boost/date_time/string_parse_tree.hpp | 2
   branches/proto/v3/boost/date_time/strings_from_facet.hpp | 2
   branches/proto/v3/boost/date_time/time.hpp | 2
   branches/proto/v3/boost/date_time/time_clock.hpp | 2
   branches/proto/v3/boost/date_time/time_defs.hpp | 2
   branches/proto/v3/boost/date_time/time_duration.hpp | 2
   branches/proto/v3/boost/date_time/time_facet.hpp | 2
   branches/proto/v3/boost/date_time/time_formatting_streams.hpp | 2
   branches/proto/v3/boost/date_time/time_iterator.hpp | 2
   branches/proto/v3/boost/date_time/time_parsing.hpp | 2
   branches/proto/v3/boost/date_time/time_resolution_traits.hpp | 2
   branches/proto/v3/boost/date_time/time_system_counted.hpp | 2
   branches/proto/v3/boost/date_time/time_system_split.hpp | 2
   branches/proto/v3/boost/date_time/time_zone_base.hpp | 2
   branches/proto/v3/boost/date_time/time_zone_names.hpp | 2
   branches/proto/v3/boost/date_time/tz_db_base.hpp | 2
   branches/proto/v3/boost/date_time/wrapping_int.hpp | 2
   branches/proto/v3/boost/date_time/year_month_day.hpp | 2
   branches/proto/v3/boost/foreach.hpp | 212 ++++
   branches/proto/v3/boost/function_types/components.hpp | 122 +-
   branches/proto/v3/boost/function_types/detail/cv_traits.hpp | 8
   branches/proto/v3/boost/function_types/detail/pp_arity_loop.hpp | 12
   branches/proto/v3/boost/function_types/detail/pp_cc_loop/master.hpp | 8
   branches/proto/v3/boost/function_types/detail/pp_cc_loop/preprocessed.hpp | 18
   branches/proto/v3/boost/function_types/detail/pp_loop.hpp | 4
   branches/proto/v3/boost/function_types/detail/pp_variate_loop/master.hpp | 2
   branches/proto/v3/boost/function_types/detail/pp_variate_loop/preprocessed.hpp | 40
   branches/proto/v3/boost/function_types/is_member_object_pointer.hpp | 4
   branches/proto/v3/boost/function_types/property_tags.hpp | 2
   branches/proto/v3/boost/functional/hash/hash.hpp | 8
   branches/proto/v3/boost/gil/color_base.hpp | 10
   branches/proto/v3/boost/gil/extension/io/png_io_private.hpp | 4
   branches/proto/v3/boost/graph/compressed_sparse_row_graph.hpp | 2
   branches/proto/v3/boost/graph/detail/indexed_properties.hpp | 3
   branches/proto/v3/boost/graph/edge_connectivity.hpp | 4
   branches/proto/v3/boost/interprocess/allocators/adaptive_pool.hpp | 476 +++++++----
   branches/proto/v3/boost/interprocess/allocators/allocation_type.hpp | 2
   branches/proto/v3/boost/interprocess/allocators/allocator.hpp | 97 +-
   branches/proto/v3/boost/interprocess/allocators/cached_adaptive_pool.hpp | 515 ++++++------
   branches/proto/v3/boost/interprocess/allocators/cached_node_allocator.hpp | 474 +++++------
   branches/proto/v3/boost/interprocess/allocators/detail/adaptive_node_pool.hpp | 742 +++++++++--------
   branches/proto/v3/boost/interprocess/allocators/detail/node_pool.hpp | 369 +++-----
   branches/proto/v3/boost/interprocess/allocators/detail/node_tools.hpp | 5
   branches/proto/v3/boost/interprocess/allocators/node_allocator.hpp | 481 +++++++----
   branches/proto/v3/boost/interprocess/allocators/private_adaptive_pool.hpp | 417 ++++++++--
   branches/proto/v3/boost/interprocess/allocators/private_node_allocator.hpp | 456 +++++++++++
   branches/proto/v3/boost/interprocess/containers/deque.hpp | 5
   branches/proto/v3/boost/interprocess/containers/detail/flat_tree.hpp | 2
   branches/proto/v3/boost/interprocess/containers/detail/node_alloc_holder.hpp | 51
   branches/proto/v3/boost/interprocess/containers/detail/tree.hpp | 8
   branches/proto/v3/boost/interprocess/containers/flat_map.hpp | 2
   branches/proto/v3/boost/interprocess/containers/flat_set.hpp | 2
   branches/proto/v3/boost/interprocess/containers/list.hpp | 9
   branches/proto/v3/boost/interprocess/containers/map.hpp | 2
   branches/proto/v3/boost/interprocess/containers/set.hpp | 2
   branches/proto/v3/boost/interprocess/containers/slist.hpp | 26
   branches/proto/v3/boost/interprocess/containers/string.hpp | 6
   branches/proto/v3/boost/interprocess/containers/vector.hpp | 31
   branches/proto/v3/boost/interprocess/creation_tags.hpp | 2
   branches/proto/v3/boost/interprocess/detail/algorithms.hpp | 4
   branches/proto/v3/boost/interprocess/detail/atomic.hpp | 2
   branches/proto/v3/boost/interprocess/detail/cast_tags.hpp | 2
   branches/proto/v3/boost/interprocess/detail/config_begin.hpp | 1
   branches/proto/v3/boost/interprocess/detail/in_place_interface.hpp | 2
   branches/proto/v3/boost/interprocess/detail/interprocess_tester.hpp | 2
   branches/proto/v3/boost/interprocess/detail/iterators.hpp | 8
   branches/proto/v3/boost/interprocess/detail/managed_memory_impl.hpp | 2
   branches/proto/v3/boost/interprocess/detail/managed_open_or_create_impl.hpp | 3
   branches/proto/v3/boost/interprocess/detail/math_functions.hpp | 2
   branches/proto/v3/boost/interprocess/detail/min_max.hpp | 2
   branches/proto/v3/boost/interprocess/detail/mpl.hpp | 2
   branches/proto/v3/boost/interprocess/detail/named_proxy.hpp | 2
   branches/proto/v3/boost/interprocess/detail/os_file_functions.hpp | 2
   branches/proto/v3/boost/interprocess/detail/os_thread_functions.hpp | 2
   branches/proto/v3/boost/interprocess/detail/pointer_type.hpp | 2
   branches/proto/v3/boost/interprocess/detail/posix_time_types_wrk.hpp | 2
   branches/proto/v3/boost/interprocess/detail/segment_manager_helper.hpp | 4
   branches/proto/v3/boost/interprocess/detail/tmp_dir_helpers.hpp | 2
   branches/proto/v3/boost/interprocess/detail/type_traits.hpp | 2
   branches/proto/v3/boost/interprocess/detail/utilities.hpp | 191 ++++
   branches/proto/v3/boost/interprocess/detail/version_type.hpp | 2
   branches/proto/v3/boost/interprocess/detail/win32_api.hpp | 2
   branches/proto/v3/boost/interprocess/detail/workaround.hpp | 6
   branches/proto/v3/boost/interprocess/errors.hpp | 2
   branches/proto/v3/boost/interprocess/exceptions.hpp | 2
   branches/proto/v3/boost/interprocess/file_mapping.hpp | 2
   branches/proto/v3/boost/interprocess/indexes/flat_map_index.hpp | 2
   branches/proto/v3/boost/interprocess/indexes/iset_index.hpp | 2
   branches/proto/v3/boost/interprocess/indexes/iunordered_set_index.hpp | 7
   branches/proto/v3/boost/interprocess/indexes/map_index.hpp | 2
   branches/proto/v3/boost/interprocess/indexes/null_index.hpp | 2
   branches/proto/v3/boost/interprocess/indexes/unordered_map_index.hpp | 2
   branches/proto/v3/boost/interprocess/interprocess_fwd.hpp | 18
   branches/proto/v3/boost/interprocess/ipc/message_queue.hpp | 2
   branches/proto/v3/boost/interprocess/managed_external_buffer.hpp | 7
   branches/proto/v3/boost/interprocess/managed_heap_memory.hpp | 2
   branches/proto/v3/boost/interprocess/managed_mapped_file.hpp | 2
   branches/proto/v3/boost/interprocess/managed_shared_memory.hpp | 2
   branches/proto/v3/boost/interprocess/managed_windows_shared_memory.hpp | 2
   branches/proto/v3/boost/interprocess/mapped_region.hpp | 2
   branches/proto/v3/boost/interprocess/mem_algo/detail/mem_algo_common.hpp | 185 ++++
   branches/proto/v3/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp | 61 +
   branches/proto/v3/boost/interprocess/mem_algo/rbtree_best_fit.hpp | 615 +++++++++------
   branches/proto/v3/boost/interprocess/mem_algo/simple_seq_fit.hpp | 2
   branches/proto/v3/boost/interprocess/offset_ptr.hpp | 6
   branches/proto/v3/boost/interprocess/segment_manager.hpp | 40
   branches/proto/v3/boost/interprocess/shared_memory_object.hpp | 2
   branches/proto/v3/boost/interprocess/smart_ptr/deleter.hpp | 2
   branches/proto/v3/boost/interprocess/smart_ptr/detail/shared_count.hpp | 4
   branches/proto/v3/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp | 2
   branches/proto/v3/boost/interprocess/smart_ptr/shared_ptr.hpp | 2
   branches/proto/v3/boost/interprocess/smart_ptr/weak_ptr.hpp | 2
   branches/proto/v3/boost/interprocess/streams/bufferstream.hpp | 2
   branches/proto/v3/boost/interprocess/streams/vectorstream.hpp | 2
   branches/proto/v3/boost/interprocess/sync/emulation/interprocess_condition.hpp | 2
   branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/emulation/interprocess_recursive_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/emulation/interprocess_semaphore.hpp | 2
   branches/proto/v3/boost/interprocess/sync/emulation/named_creation_functor.hpp | 2
   branches/proto/v3/boost/interprocess/sync/file_lock.hpp | 2
   branches/proto/v3/boost/interprocess/sync/interprocess_barrier.hpp | 2
   branches/proto/v3/boost/interprocess/sync/interprocess_condition.hpp | 2
   branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/interprocess_semaphore.hpp | 2
   branches/proto/v3/boost/interprocess/sync/interprocess_upgradable_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/lock_options.hpp | 2
   branches/proto/v3/boost/interprocess/sync/mutex_family.hpp | 2
   branches/proto/v3/boost/interprocess/sync/named_condition.hpp | 2
   branches/proto/v3/boost/interprocess/sync/named_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/named_recursive_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/named_semaphore.hpp | 2
   branches/proto/v3/boost/interprocess/sync/named_upgradable_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/null_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/interprocess_condition.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/interprocess_semaphore.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/pthread_helpers.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/ptime_to_timespec.hpp | 2
   branches/proto/v3/boost/interprocess/sync/posix/semaphore_wrapper.hpp | 2
   branches/proto/v3/boost/interprocess/sync/scoped_lock.hpp | 2
   branches/proto/v3/boost/interprocess/sync/sharable_lock.hpp | 2
   branches/proto/v3/boost/interprocess/sync/upgradable_lock.hpp | 2
   branches/proto/v3/boost/interprocess/windows_shared_memory.hpp | 2
   branches/proto/v3/boost/intrusive/circular_list_algorithms.hpp | 116 ++
   branches/proto/v3/boost/intrusive/circular_slist_algorithms.hpp | 316 +++++--
   branches/proto/v3/boost/intrusive/detail/tree_algorithms.hpp | 4
   branches/proto/v3/boost/intrusive/detail/utilities.hpp | 4
   branches/proto/v3/boost/intrusive/hashtable.hpp | 2
   branches/proto/v3/boost/intrusive/intrusive_fwd.hpp | 2
   branches/proto/v3/boost/intrusive/list.hpp | 220 ++---
   branches/proto/v3/boost/intrusive/options.hpp | 41
   branches/proto/v3/boost/intrusive/slist.hpp | 669 ++++++++++------
   branches/proto/v3/boost/intrusive/slist_hook.hpp | 2
   branches/proto/v3/boost/iostreams/categories.hpp | 71 +
   branches/proto/v3/boost/iostreams/chain.hpp | 3
   branches/proto/v3/boost/iostreams/char_traits.hpp | 3
   branches/proto/v3/boost/iostreams/checked_operations.hpp | 3
   branches/proto/v3/boost/iostreams/close.hpp | 67 +
   branches/proto/v3/boost/iostreams/code_converter.hpp | 21
   branches/proto/v3/boost/iostreams/combine.hpp | 24
   branches/proto/v3/boost/iostreams/compose.hpp | 93 +
   branches/proto/v3/boost/iostreams/concepts.hpp | 15
   branches/proto/v3/boost/iostreams/constants.hpp | 3
   branches/proto/v3/boost/iostreams/copy.hpp | 10
   branches/proto/v3/boost/iostreams/detail/access_control.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/concept_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/device_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/direct_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/filter_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/mode_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/non_blocking_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/output_iterator_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/adapter/range_adapter.hpp | 3
   branches/proto/v3/boost/iostreams/detail/add_facet.hpp | 3
   branches/proto/v3/boost/iostreams/detail/bool_trait_def.hpp | 3
   branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/forward.hpp | 3
   branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream.hpp | 10
   branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp | 8
   branches/proto/v3/boost/iostreams/detail/buffer.hpp | 3
   branches/proto/v3/boost/iostreams/detail/call_traits.hpp | 3
   branches/proto/v3/boost/iostreams/detail/char_traits.hpp | 3
   branches/proto/v3/boost/iostreams/detail/codecvt_helper.hpp | 3
   branches/proto/v3/boost/iostreams/detail/codecvt_holder.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/auto_link.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/bzip2.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/codecvt.hpp | 8
   branches/proto/v3/boost/iostreams/detail/config/disable_warnings.hpp | 4
   branches/proto/v3/boost/iostreams/detail/config/dyn_link.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/enable_warnings.hpp | 5
   branches/proto/v3/boost/iostreams/detail/config/gcc.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/limits.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/overload_resolution.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/rtl.hpp | 27
   branches/proto/v3/boost/iostreams/detail/config/wide_streams.hpp | 3
   branches/proto/v3/boost/iostreams/detail/config/windows_posix.hpp | 4
   branches/proto/v3/boost/iostreams/detail/config/zlib.hpp | 3
   branches/proto/v3/boost/iostreams/detail/counted_array.hpp | 3
   branches/proto/v3/boost/iostreams/detail/default_arg.hpp | 3
   branches/proto/v3/boost/iostreams/detail/dispatch.hpp | 3
   branches/proto/v3/boost/iostreams/detail/double_object.hpp | 3
   branches/proto/v3/boost/iostreams/detail/enable_if_stream.hpp | 3
   branches/proto/v3/boost/iostreams/detail/error.hpp | 3
   branches/proto/v3/boost/iostreams/detail/execute.hpp | 16
   branches/proto/v3/boost/iostreams/detail/forward.hpp | 3
   branches/proto/v3/boost/iostreams/detail/fstream.hpp | 3
   branches/proto/v3/boost/iostreams/detail/functional.hpp | 3
   branches/proto/v3/boost/iostreams/detail/ios.hpp | 3
   branches/proto/v3/boost/iostreams/detail/iostream.hpp | 3
   branches/proto/v3/boost/iostreams/detail/is_dereferenceable.hpp | 3
   branches/proto/v3/boost/iostreams/detail/is_iterator_range.hpp | 3
   branches/proto/v3/boost/iostreams/detail/newline.hpp | 3
   branches/proto/v3/boost/iostreams/detail/optional.hpp | 3
   branches/proto/v3/boost/iostreams/detail/param_type.hpp | 3
   branches/proto/v3/boost/iostreams/detail/push.hpp | 3
   branches/proto/v3/boost/iostreams/detail/push_params.hpp | 3
   branches/proto/v3/boost/iostreams/detail/resolve.hpp | 3
   branches/proto/v3/boost/iostreams/detail/select.hpp | 17
   branches/proto/v3/boost/iostreams/detail/select_by_size.hpp | 3
   branches/proto/v3/boost/iostreams/detail/streambuf.hpp | 3
   branches/proto/v3/boost/iostreams/detail/streambuf/chainbuf.hpp | 3
   branches/proto/v3/boost/iostreams/detail/streambuf/direct_streambuf.hpp | 8
   branches/proto/v3/boost/iostreams/detail/streambuf/indirect_streambuf.hpp | 16
   branches/proto/v3/boost/iostreams/detail/streambuf/linked_streambuf.hpp | 8
   branches/proto/v3/boost/iostreams/detail/system_failure.hpp | 9
   branches/proto/v3/boost/iostreams/detail/template_params.hpp | 3
   branches/proto/v3/boost/iostreams/detail/translate_int_type.hpp | 3
   branches/proto/v3/boost/iostreams/detail/vc6/close.hpp | 3
   branches/proto/v3/boost/iostreams/detail/vc6/read.hpp | 3
   branches/proto/v3/boost/iostreams/detail/vc6/write.hpp | 3
   branches/proto/v3/boost/iostreams/detail/wrap_unwrap.hpp | 3
   branches/proto/v3/boost/iostreams/device/array.hpp | 3
   branches/proto/v3/boost/iostreams/device/back_inserter.hpp | 3
   branches/proto/v3/boost/iostreams/device/file.hpp | 3
   branches/proto/v3/boost/iostreams/device/file_descriptor.hpp | 94 +
   branches/proto/v3/boost/iostreams/device/mapped_file.hpp | 10
   branches/proto/v3/boost/iostreams/device/null.hpp | 3
   branches/proto/v3/boost/iostreams/filter/aggregate.hpp | 6
   branches/proto/v3/boost/iostreams/filter/bzip2.hpp | 3
   branches/proto/v3/boost/iostreams/filter/counter.hpp | 3
   branches/proto/v3/boost/iostreams/filter/gzip.hpp | 7
   branches/proto/v3/boost/iostreams/filter/line.hpp | 5
   branches/proto/v3/boost/iostreams/filter/newline.hpp | 41
   branches/proto/v3/boost/iostreams/filter/regex.hpp | 11
   branches/proto/v3/boost/iostreams/filter/stdio.hpp | 3
   branches/proto/v3/boost/iostreams/filter/symmetric.hpp | 10
   branches/proto/v3/boost/iostreams/filter/test.hpp | 3
   branches/proto/v3/boost/iostreams/filter/zlib.hpp | 3
   branches/proto/v3/boost/iostreams/filtering_stream.hpp | 28
   branches/proto/v3/boost/iostreams/filtering_streambuf.hpp | 12
   branches/proto/v3/boost/iostreams/flush.hpp | 3
   branches/proto/v3/boost/iostreams/get.hpp | 3
   branches/proto/v3/boost/iostreams/imbue.hpp | 3
   branches/proto/v3/boost/iostreams/input_sequence.hpp | 4
   branches/proto/v3/boost/iostreams/invert.hpp | 8
   branches/proto/v3/boost/iostreams/operations.hpp | 3
   branches/proto/v3/boost/iostreams/operations_fwd.hpp | 3
   branches/proto/v3/boost/iostreams/optimal_buffer_size.hpp | 3
   branches/proto/v3/boost/iostreams/output_sequence.hpp | 4
   branches/proto/v3/boost/iostreams/pipeline.hpp | 3
   branches/proto/v3/boost/iostreams/positioning.hpp | 99 +-
   branches/proto/v3/boost/iostreams/put.hpp | 3
   branches/proto/v3/boost/iostreams/putback.hpp | 3
   branches/proto/v3/boost/iostreams/read.hpp | 3
   branches/proto/v3/boost/iostreams/restrict.hpp | 457 ----------
   branches/proto/v3/boost/iostreams/seek.hpp | 3
   branches/proto/v3/boost/iostreams/skip.hpp | 3
   branches/proto/v3/boost/iostreams/stream.hpp | 30
   branches/proto/v3/boost/iostreams/stream_buffer.hpp | 8
   branches/proto/v3/boost/iostreams/tee.hpp | 3
   branches/proto/v3/boost/iostreams/traits.hpp | 122 ++
   branches/proto/v3/boost/iostreams/traits_fwd.hpp | 42 +
   branches/proto/v3/boost/iostreams/write.hpp | 3
   branches/proto/v3/boost/math/distributions/binomial.hpp | 2
   branches/proto/v3/boost/math/tools/test_data.hpp | 1
   branches/proto/v3/boost/mpi/config.hpp | 5
   branches/proto/v3/boost/mpi/datatype.hpp | 32
   branches/proto/v3/boost/mpi/datatype_fwd.hpp | 2
   branches/proto/v3/boost/mpi/detail/packed_iprimitive.hpp | 15
   branches/proto/v3/boost/mpi/packed_iarchive.hpp | 45 +
   branches/proto/v3/boost/mpi/packed_oarchive.hpp | 36
   branches/proto/v3/boost/mpi/status.hpp | 2
   branches/proto/v3/boost/program_options/detail/parsers.hpp | 2
   branches/proto/v3/boost/range/as_literal.hpp | 6
   branches/proto/v3/boost/range/detail/implementation_help.hpp | 4
   branches/proto/v3/boost/range/iterator_range.hpp | 34
   branches/proto/v3/boost/range/sub_range.hpp | 12
   branches/proto/v3/boost/regex/concepts.hpp | 8
   branches/proto/v3/boost/regex/pending/unicode_iterator.hpp | 1
   branches/proto/v3/boost/regex/v4/basic_regex_creator.hpp | 13
   branches/proto/v3/boost/regex/v4/basic_regex_parser.hpp | 11
   branches/proto/v3/boost/regex/v4/perl_matcher_non_recursive.hpp | 9
   branches/proto/v3/boost/scoped_array.hpp | 3
   branches/proto/v3/boost/scoped_ptr.hpp | 3
   branches/proto/v3/boost/serialization/utility.hpp | 6
   branches/proto/v3/boost/shared_ptr.hpp | 11
   branches/proto/v3/boost/spirit/tree/impl/tree_to_xml.ipp | 2
   branches/proto/v3/boost/statechart/detail/counted_base.hpp | 2
   branches/proto/v3/boost/statechart/in_state_reaction.hpp | 48
   branches/proto/v3/boost/statechart/transition.hpp | 11
   branches/proto/v3/boost/test/impl/debug.ipp | 2
   branches/proto/v3/boost/test/impl/execution_monitor.ipp | 3
   branches/proto/v3/boost/test/test_tools.hpp | 11
   branches/proto/v3/boost/thread/pthread/thread.hpp | 30
   branches/proto/v3/boost/thread/pthread/tss.hpp | 2
   branches/proto/v3/boost/thread/win32/basic_recursive_mutex.hpp | 6
   branches/proto/v3/boost/thread/win32/basic_timed_mutex.hpp | 6
   branches/proto/v3/boost/thread/win32/once.hpp | 4
   branches/proto/v3/boost/thread/win32/shared_mutex.hpp | 6
   branches/proto/v3/boost/thread/win32/thread.hpp | 30
   branches/proto/v3/boost/thread/win32/thread_primitives.hpp | 4
   branches/proto/v3/boost/thread/win32/tss.hpp | 2
   branches/proto/v3/boost/tr1/detail/config.hpp | 25
   branches/proto/v3/boost/type_traits/make_signed.hpp | 4
   branches/proto/v3/boost/type_traits/make_unsigned.hpp | 4
   branches/proto/v3/boost/utility/value_init.hpp | 65
   branches/proto/v3/boost/wave.hpp | 2
   branches/proto/v3/boost/wave/cpp_context.hpp | 4
   branches/proto/v3/boost/wave/cpp_exceptions.hpp | 2
   branches/proto/v3/boost/wave/cpp_iteration_context.hpp | 2
   branches/proto/v3/boost/wave/cpp_throw.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/convert_trigraphs.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/cpp_lex_iterator.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/cpp_lex_token.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/cpplexer_exceptions.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/detect_include_guards.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/re2clex/aq.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/re2clex/scanner.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/token_cache.hpp | 2
   branches/proto/v3/boost/wave/cpplexer/validate_universal_char.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp | 6
   branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_defined_grammar_gen.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_expression_grammar_gen.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_grammar.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_grammar_gen.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp | 8
   branches/proto/v3/boost/wave/grammars/cpp_literal_grammar_gen.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_predef_macros_gen.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_predef_macros_grammar.hpp | 2
   branches/proto/v3/boost/wave/grammars/cpp_value_error.hpp | 2
   branches/proto/v3/boost/wave/language_support.hpp | 2
   branches/proto/v3/boost/wave/preprocessing_hooks.hpp | 2
   branches/proto/v3/boost/wave/token_ids.hpp | 229 ++--
   branches/proto/v3/boost/wave/util/cpp_ifblock.hpp | 2
   branches/proto/v3/boost/wave/util/cpp_include_paths.hpp | 2
   branches/proto/v3/boost/wave/util/cpp_iterator.hpp | 2
   branches/proto/v3/boost/wave/util/cpp_macromap.hpp | 41
   branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp | 2
   branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp | 2
   branches/proto/v3/boost/wave/util/file_position.hpp | 2
   branches/proto/v3/boost/wave/util/flex_string.hpp | 2
   branches/proto/v3/boost/wave/util/functor_input.hpp | 2
   branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp | 178 ++++
   branches/proto/v3/boost/wave/util/interpret_pragma.hpp | 2
   branches/proto/v3/boost/wave/util/iteration_context.hpp | 2
   branches/proto/v3/boost/wave/util/macro_definition.hpp | 2
   branches/proto/v3/boost/wave/util/macro_helpers.hpp | 2
   branches/proto/v3/boost/wave/util/pattern_parser.hpp | 2
   branches/proto/v3/boost/wave/util/symbol_table.hpp | 2
   branches/proto/v3/boost/wave/util/time_conversion_helper.hpp | 2
   branches/proto/v3/boost/wave/util/transform_iterator.hpp | 2
   branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp | 2
   branches/proto/v3/boost/wave/wave_config.hpp | 19
   branches/proto/v3/boost/wave/wave_config_constant.hpp | 2
   branches/proto/v3/boost/wave/wave_version.hpp | 2
   branches/proto/v3/boost/wave/whitespace_handling.hpp | 2
   branches/proto/v3/boost/xpressive/basic_regex.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/access.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/action.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/adaptor.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/finder.hpp | 29
   branches/proto/v3/boost/xpressive/detail/core/flow_control.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/icase.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/linker.hpp | 28
   branches/proto/v3/boost/xpressive/detail/core/matcher/action_matcher.hpp | 16
   branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/any_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/assert_line_base.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp | 4
   branches/proto/v3/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/attr_matcher.hpp | 8
   branches/proto/v3/boost/xpressive/detail/core/matcher/charset_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/end_matcher.hpp | 21
   branches/proto/v3/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/keeper_matcher.hpp | 6
   branches/proto/v3/boost/xpressive/detail/core/matcher/literal_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp | 8
   branches/proto/v3/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp | 6
   branches/proto/v3/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/mark_matcher.hpp | 6
   branches/proto/v3/boost/xpressive/detail/core/matcher/optional_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/predicate_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/range_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/regex_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp | 3
   branches/proto/v3/boost/xpressive/detail/core/matcher/set_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp | 28
   branches/proto/v3/boost/xpressive/detail/core/matcher/string_matcher.hpp | 6
   branches/proto/v3/boost/xpressive/detail/core/matcher/true_matcher.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/matchers.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/optimize.hpp | 11
   branches/proto/v3/boost/xpressive/detail/core/peeker.hpp | 88 +
   branches/proto/v3/boost/xpressive/detail/core/quant_style.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/regex_impl.hpp | 3
   branches/proto/v3/boost/xpressive/detail/core/results_cache.hpp | 3
   branches/proto/v3/boost/xpressive/detail/core/state.hpp | 23
   branches/proto/v3/boost/xpressive/detail/core/sub_match_impl.hpp | 2
   branches/proto/v3/boost/xpressive/detail/core/sub_match_vector.hpp | 2
   branches/proto/v3/boost/xpressive/detail/detail_fwd.hpp | 10
   branches/proto/v3/boost/xpressive/detail/dynamic/dynamic.hpp | 2
   branches/proto/v3/boost/xpressive/detail/dynamic/matchable.hpp | 2
   branches/proto/v3/boost/xpressive/detail/dynamic/parse_charset.hpp | 2
   branches/proto/v3/boost/xpressive/detail/dynamic/parser.hpp | 28
   branches/proto/v3/boost/xpressive/detail/dynamic/parser_enum.hpp | 2
   branches/proto/v3/boost/xpressive/detail/dynamic/parser_traits.hpp | 2
   branches/proto/v3/boost/xpressive/detail/dynamic/sequence.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/compile.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/is_pure.hpp | 4
   branches/proto/v3/boost/xpressive/detail/static/modifier.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/placeholders.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/static.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/transmogrify.hpp | 6
   branches/proto/v3/boost/xpressive/detail/static/type_traits.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/visitor.hpp | 2
   branches/proto/v3/boost/xpressive/detail/static/width_of.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/algorithm.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/any.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/boyer_moore.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/chset/chset.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/cons.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/dont_care.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/hash_peek_bitset.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/ignore_unused.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/literals.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/never_true.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/save_restore.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/sequence_stack.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/symbols.hpp | 1
   branches/proto/v3/boost/xpressive/detail/utility/tracking_ptr.hpp | 3
   branches/proto/v3/boost/xpressive/detail/utility/traits_utils.hpp | 2
   branches/proto/v3/boost/xpressive/detail/utility/width.hpp | 2
   branches/proto/v3/boost/xpressive/match_results.hpp | 2
   branches/proto/v3/boost/xpressive/proto/args.hpp | 2
   branches/proto/v3/boost/xpressive/proto/context.hpp | 2
   branches/proto/v3/boost/xpressive/proto/literal.hpp | 43
   branches/proto/v3/boost/xpressive/proto/proto_fwd.hpp | 45 +
   branches/proto/v3/boost/xpressive/proto/proto_typeof.hpp | 2
   branches/proto/v3/boost/xpressive/regex_actions.hpp | 16
   branches/proto/v3/boost/xpressive/regex_algorithms.hpp | 11
   branches/proto/v3/boost/xpressive/regex_compiler.hpp | 8
   branches/proto/v3/boost/xpressive/regex_constants.hpp | 2
   branches/proto/v3/boost/xpressive/regex_error.hpp | 2
   branches/proto/v3/boost/xpressive/regex_iterator.hpp | 11
   branches/proto/v3/boost/xpressive/regex_primitives.hpp | 210 ++++
   branches/proto/v3/boost/xpressive/regex_token_iterator.hpp | 14
   branches/proto/v3/boost/xpressive/regex_traits.hpp | 2
   branches/proto/v3/boost/xpressive/sub_match.hpp | 2
   branches/proto/v3/boost/xpressive/traits/c_regex_traits.hpp | 2
   branches/proto/v3/boost/xpressive/traits/cpp_regex_traits.hpp | 5
   branches/proto/v3/boost/xpressive/traits/detail/c_ctype.hpp | 2
   branches/proto/v3/boost/xpressive/traits/null_regex_traits.hpp | 2
   branches/proto/v3/boost/xpressive/xpressive.hpp | 2
   branches/proto/v3/boost/xpressive/xpressive_dynamic.hpp | 2
   branches/proto/v3/boost/xpressive/xpressive_fwd.hpp | 2
   branches/proto/v3/boost/xpressive/xpressive_static.hpp | 2
   branches/proto/v3/boost/xpressive/xpressive_typeof.hpp | 9
   branches/proto/v3/doc/Jamfile.v2 | 2
   branches/proto/v3/doc/html/boostbook.css | 4
   branches/proto/v3/doc/src/boost.xml | 2
   branches/proto/v3/doc/src/boostbook.css | 4
   branches/proto/v3/libs/accumulators/doc/Jamfile.v2 | 53 +
   branches/proto/v3/libs/accumulators/doc/accumulators.qbk | 45
   branches/proto/v3/libs/accumulators/test/Jamfile.v2 | 7
   branches/proto/v3/libs/accumulators/test/covariance.cpp | 16
   branches/proto/v3/libs/accumulators/test/extended_p_square.cpp | 2
   branches/proto/v3/libs/accumulators/test/extended_p_square_quantile.cpp | 4
   branches/proto/v3/libs/accumulators/test/kurtosis.cpp | 14
   branches/proto/v3/libs/accumulators/test/mean.cpp | 2
   branches/proto/v3/libs/accumulators/test/median.cpp | 10
   branches/proto/v3/libs/accumulators/test/p_square_cumulative_distribution.cpp | 16
   branches/proto/v3/libs/accumulators/test/p_square_quantile.cpp | 10
   branches/proto/v3/libs/accumulators/test/pot_quantile.cpp | 18
   branches/proto/v3/libs/accumulators/test/reference.cpp | 14
   branches/proto/v3/libs/accumulators/test/skewness.cpp | 14
   branches/proto/v3/libs/accumulators/test/tail_mean.cpp | 10
   branches/proto/v3/libs/accumulators/test/tail_quantile.cpp | 16
   branches/proto/v3/libs/accumulators/test/tail_variate_means.cpp | 26
   branches/proto/v3/libs/accumulators/test/variance.cpp | 2
   branches/proto/v3/libs/accumulators/test/weighted_covariance.cpp | 18
   branches/proto/v3/libs/accumulators/test/weighted_extended_p_square.cpp | 16
   branches/proto/v3/libs/accumulators/test/weighted_kurtosis.cpp | 14
   branches/proto/v3/libs/accumulators/test/weighted_mean.cpp | 6
   branches/proto/v3/libs/accumulators/test/weighted_median.cpp | 14
   branches/proto/v3/libs/accumulators/test/weighted_moment.cpp | 6
   branches/proto/v3/libs/accumulators/test/weighted_p_square_cum_dist.cpp | 26
   branches/proto/v3/libs/accumulators/test/weighted_p_square_quantile.cpp | 10
   branches/proto/v3/libs/accumulators/test/weighted_pot_quantile.cpp | 22
   branches/proto/v3/libs/accumulators/test/weighted_skewness.cpp | 14
   branches/proto/v3/libs/accumulators/test/weighted_tail_mean.cpp | 12
   branches/proto/v3/libs/accumulators/test/weighted_tail_quantile.cpp | 14
   branches/proto/v3/libs/accumulators/test/weighted_tail_variate_means.cpp | 24
   branches/proto/v3/libs/accumulators/test/weighted_variance.cpp | 12
   branches/proto/v3/libs/algorithm/string/doc/concept.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/credits.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/design.xml | 4
   branches/proto/v3/libs/algorithm/string/doc/environment.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/intro.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/quickref.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/rationale.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/release_notes.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/string_algo.xml | 2
   branches/proto/v3/libs/algorithm/string/doc/usage.xml | 2
   branches/proto/v3/libs/asio/doc/Jamfile.v2 | 2
   branches/proto/v3/libs/asio/doc/asio.qbk | 4
   branches/proto/v3/libs/asio/doc/design.qbk | 2
   branches/proto/v3/libs/asio/doc/design/allocation.qbk | 2
   branches/proto/v3/libs/asio/doc/design/async.qbk | 2
   branches/proto/v3/libs/asio/doc/design/buffers.qbk | 2
   branches/proto/v3/libs/asio/doc/design/eof.qbk | 2
   branches/proto/v3/libs/asio/doc/design/implementation.qbk | 2
   branches/proto/v3/libs/asio/doc/design/line_based.qbk | 2
   branches/proto/v3/libs/asio/doc/design/rationale.qbk | 2
   branches/proto/v3/libs/asio/doc/design/strands.qbk | 2
   branches/proto/v3/libs/asio/doc/design/threads.qbk | 2
   branches/proto/v3/libs/asio/doc/examples.qbk | 2
   branches/proto/v3/libs/asio/doc/quickref.xml | 2
   branches/proto/v3/libs/asio/doc/reference.qbk | 151 +++
   branches/proto/v3/libs/asio/doc/reference.xsl | 4
   branches/proto/v3/libs/asio/doc/requirements.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/AcceptHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/AsyncReadStream.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/AsyncWriteStream.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/CompletionHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ConnectHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ConstBufferSequence.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/DatagramSocketService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/Endpoint.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/GettableSocketOption.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/Handler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/InternetProtocol.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/IoControlCommand.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/IoObjectService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/MutableBufferSequence.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/Protocol.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ReadHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ResolveHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/ResolverService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/Service.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/SettableSocketOption.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/SocketAcceptorService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/SocketService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/StreamSocketService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/SyncReadStream.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/SyncWriteStream.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/TimeTraits.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/TimerService.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/WaitHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/WriteHandler.qbk | 2
   branches/proto/v3/libs/asio/doc/requirements/asynchronous_operations.qbk | 2
   branches/proto/v3/libs/asio/doc/tutorial.qbk | 26
   branches/proto/v3/libs/asio/doc/tutorial.xsl | 4
   branches/proto/v3/libs/asio/doc/using.qbk | 33
   branches/proto/v3/libs/asio/example/allocation/Jamfile | 2
   branches/proto/v3/libs/asio/example/allocation/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/allocation/server.cpp | 2
   branches/proto/v3/libs/asio/example/buffers/Jamfile | 2
   branches/proto/v3/libs/asio/example/buffers/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/buffers/reference_counted.cpp | 4
   branches/proto/v3/libs/asio/example/chat/Jamfile | 2
   branches/proto/v3/libs/asio/example/chat/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/chat/chat_client.cpp | 2
   branches/proto/v3/libs/asio/example/chat/chat_message.hpp | 2
   branches/proto/v3/libs/asio/example/chat/chat_server.cpp | 2
   branches/proto/v3/libs/asio/example/echo/Jamfile | 2
   branches/proto/v3/libs/asio/example/echo/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/echo/async_tcp_echo_server.cpp | 2
   branches/proto/v3/libs/asio/example/echo/async_udp_echo_server.cpp | 2
   branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_client.cpp | 2
   branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_server.cpp | 2
   branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_client.cpp | 2
   branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_server.cpp | 2
   branches/proto/v3/libs/asio/example/http/client/Jamfile | 2
   branches/proto/v3/libs/asio/example/http/client/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/http/client/async_client.cpp | 6
   branches/proto/v3/libs/asio/example/http/client/sync_client.cpp | 2
   branches/proto/v3/libs/asio/example/http/doc_root/data_1K.html | 2
   branches/proto/v3/libs/asio/example/http/doc_root/data_2K.html | 2
   branches/proto/v3/libs/asio/example/http/doc_root/data_4K.html | 2
   branches/proto/v3/libs/asio/example/http/doc_root/data_8K.html | 2
   branches/proto/v3/libs/asio/example/http/server/Jamfile | 2
   branches/proto/v3/libs/asio/example/http/server/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/http/server/connection.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/connection.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/connection_manager.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/connection_manager.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/header.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/mime_types.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/mime_types.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/posix_main.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/reply.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/reply.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/request.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/request_handler.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/request_handler.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/request_parser.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/request_parser.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/server.cpp | 2
   branches/proto/v3/libs/asio/example/http/server/server.hpp | 2
   branches/proto/v3/libs/asio/example/http/server/win_main.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/Jamfile | 2
   branches/proto/v3/libs/asio/example/http/server2/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/http/server2/connection.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/connection.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/header.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/io_service_pool.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/io_service_pool.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/mime_types.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/mime_types.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/posix_main.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/reply.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/reply.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/request.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/request_handler.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/request_handler.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/request_parser.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/request_parser.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/server.cpp | 2
   branches/proto/v3/libs/asio/example/http/server2/server.hpp | 2
   branches/proto/v3/libs/asio/example/http/server2/win_main.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/Jamfile | 2
   branches/proto/v3/libs/asio/example/http/server3/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/http/server3/connection.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/connection.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/header.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/mime_types.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/mime_types.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/posix_main.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/reply.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/reply.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/request.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/request_handler.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/request_handler.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/request_parser.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/request_parser.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/server.cpp | 2
   branches/proto/v3/libs/asio/example/http/server3/server.hpp | 2
   branches/proto/v3/libs/asio/example/http/server3/win_main.cpp | 2
   branches/proto/v3/libs/asio/example/invocation/Jamfile | 2
   branches/proto/v3/libs/asio/example/invocation/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/invocation/prioritised_handlers.cpp | 2
   branches/proto/v3/libs/asio/example/iostreams/Jamfile | 2
   branches/proto/v3/libs/asio/example/iostreams/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/iostreams/daytime_client.cpp | 2
   branches/proto/v3/libs/asio/example/iostreams/daytime_server.cpp | 2
   branches/proto/v3/libs/asio/example/multicast/Jamfile | 2
   branches/proto/v3/libs/asio/example/multicast/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/multicast/receiver.cpp | 2
   branches/proto/v3/libs/asio/example/multicast/sender.cpp | 2
   branches/proto/v3/libs/asio/example/serialization/Jamfile | 2
   branches/proto/v3/libs/asio/example/serialization/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/serialization/client.cpp | 2
   branches/proto/v3/libs/asio/example/serialization/connection.hpp | 2
   branches/proto/v3/libs/asio/example/serialization/server.cpp | 2
   branches/proto/v3/libs/asio/example/serialization/stock.hpp | 2
   branches/proto/v3/libs/asio/example/services/Jamfile | 2
   branches/proto/v3/libs/asio/example/services/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/services/basic_logger.hpp | 2
   branches/proto/v3/libs/asio/example/services/daytime_client.cpp | 2
   branches/proto/v3/libs/asio/example/services/logger.hpp | 2
   branches/proto/v3/libs/asio/example/services/logger_service.cpp | 2
   branches/proto/v3/libs/asio/example/services/logger_service.hpp | 2
   branches/proto/v3/libs/asio/example/services/stream_socket_service.hpp | 2
   branches/proto/v3/libs/asio/example/socks4/Jamfile | 2
   branches/proto/v3/libs/asio/example/socks4/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/socks4/socks4.hpp | 2
   branches/proto/v3/libs/asio/example/socks4/sync_client.cpp | 2
   branches/proto/v3/libs/asio/example/ssl/Jamfile | 2
   branches/proto/v3/libs/asio/example/ssl/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/ssl/README | 2
   branches/proto/v3/libs/asio/example/ssl/client.cpp | 2
   branches/proto/v3/libs/asio/example/ssl/server.cpp | 2
   branches/proto/v3/libs/asio/example/timeouts/Jamfile | 2
   branches/proto/v3/libs/asio/example/timeouts/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/timeouts/accept_timeout.cpp | 2
   branches/proto/v3/libs/asio/example/timeouts/connect_timeout.cpp | 2
   branches/proto/v3/libs/asio/example/timeouts/datagram_receive_timeout.cpp | 2
   branches/proto/v3/libs/asio/example/timeouts/stream_receive_timeout.cpp | 2
   branches/proto/v3/libs/asio/example/timers/Jamfile | 2
   branches/proto/v3/libs/asio/example/timers/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/timers/tick_count_timer.cpp | 2
   branches/proto/v3/libs/asio/example/timers/time_t_timer.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/Jamfile | 2
   branches/proto/v3/libs/asio/example/tutorial/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/example/tutorial/daytime1/client.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime2/server.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime3/server.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime4/client.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime5/server.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime6/server.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime7/server.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/daytime_dox.txt | 2
   branches/proto/v3/libs/asio/example/tutorial/index_dox.txt | 2
   branches/proto/v3/libs/asio/example/tutorial/timer1/timer.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/timer2/timer.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/timer3/timer.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/timer4/timer.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/timer5/timer.cpp | 2
   branches/proto/v3/libs/asio/example/tutorial/timer_dox.txt | 2
   branches/proto/v3/libs/asio/test/Jamfile | 2
   branches/proto/v3/libs/asio/test/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/test/basic_datagram_socket.cpp | 2
   branches/proto/v3/libs/asio/test/basic_deadline_timer.cpp | 2
   branches/proto/v3/libs/asio/test/basic_socket_acceptor.cpp | 2
   branches/proto/v3/libs/asio/test/basic_stream_socket.cpp | 2
   branches/proto/v3/libs/asio/test/buffer.cpp | 2
   branches/proto/v3/libs/asio/test/buffered_read_stream.cpp | 2
   branches/proto/v3/libs/asio/test/buffered_stream.cpp | 2
   branches/proto/v3/libs/asio/test/buffered_write_stream.cpp | 2
   branches/proto/v3/libs/asio/test/completion_condition.cpp | 2
   branches/proto/v3/libs/asio/test/datagram_socket_service.cpp | 2
   branches/proto/v3/libs/asio/test/deadline_timer.cpp | 2
   branches/proto/v3/libs/asio/test/deadline_timer_service.cpp | 2
   branches/proto/v3/libs/asio/test/error.cpp | 2
   branches/proto/v3/libs/asio/test/io_service.cpp | 2
   branches/proto/v3/libs/asio/test/ip/address.cpp | 2
   branches/proto/v3/libs/asio/test/ip/address_v4.cpp | 2
   branches/proto/v3/libs/asio/test/ip/address_v6.cpp | 2
   branches/proto/v3/libs/asio/test/ip/basic_endpoint.cpp | 2
   branches/proto/v3/libs/asio/test/ip/basic_resolver.cpp | 2
   branches/proto/v3/libs/asio/test/ip/basic_resolver_entry.cpp | 2
   branches/proto/v3/libs/asio/test/ip/basic_resolver_iterator.cpp | 2
   branches/proto/v3/libs/asio/test/ip/basic_resolver_query.cpp | 2
   branches/proto/v3/libs/asio/test/ip/host_name.cpp | 2
   branches/proto/v3/libs/asio/test/ip/multicast.cpp | 2
   branches/proto/v3/libs/asio/test/ip/resolver_query_base.cpp | 2
   branches/proto/v3/libs/asio/test/ip/resolver_service.cpp | 2
   branches/proto/v3/libs/asio/test/ip/tcp.cpp | 2
   branches/proto/v3/libs/asio/test/ip/udp.cpp | 2
   branches/proto/v3/libs/asio/test/ip/unicast.cpp | 2
   branches/proto/v3/libs/asio/test/ip/v6_only.cpp | 2
   branches/proto/v3/libs/asio/test/is_read_buffered.cpp | 2
   branches/proto/v3/libs/asio/test/is_write_buffered.cpp | 2
   branches/proto/v3/libs/asio/test/placeholders.cpp | 2
   branches/proto/v3/libs/asio/test/read.cpp | 2
   branches/proto/v3/libs/asio/test/read_until.cpp | 2
   branches/proto/v3/libs/asio/test/socket_acceptor_service.cpp | 2
   branches/proto/v3/libs/asio/test/socket_base.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/Jamfile | 2
   branches/proto/v3/libs/asio/test/ssl/Jamfile.v2 | 3
   branches/proto/v3/libs/asio/test/ssl/basic_context.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/context.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/context_base.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/context_service.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/stream.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/stream_base.cpp | 2
   branches/proto/v3/libs/asio/test/ssl/stream_service.cpp | 2
   branches/proto/v3/libs/asio/test/strand.cpp | 2
   branches/proto/v3/libs/asio/test/stream_socket_service.cpp | 2
   branches/proto/v3/libs/asio/test/time_traits.cpp | 2
   branches/proto/v3/libs/asio/test/unit_test.hpp | 2
   branches/proto/v3/libs/asio/test/write.cpp | 2
   branches/proto/v3/libs/assign/test/list_of.cpp | 40
   branches/proto/v3/libs/bimap/doc/acknowledgements.qbk | 11
   branches/proto/v3/libs/bimap/doc/bimap.qbk | 1
   branches/proto/v3/libs/bimap/doc/directdoxygen.jam | 9
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/acknowledgements.html | 20
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/dependencies.html | 10
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/compiler_specifics.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples.html | 10
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/mighty_bimap.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___bidirectional_map.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/simple_bimap.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/future_work.html | 6
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/history.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/history/multiindex_and_bimap.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/introduction.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/one_minute_tutorial.html | 26
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/performance.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/additional_features.html | 10
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/code.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/the_student_and_the_mentor.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/bimap_reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/list_of_reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unconstrained_set_of_reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/vector_of_reference.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/release_notes.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/test_suite.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html | 8
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/complete_instantiation_scheme.html | 14
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/controlling_collection_types.html | 10
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/differences_with_standard_maps.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/discovering_the_bimap_framework.html | 6
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/the_collection_of_relations_type.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/unconstrained_sets.html | 4
   branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/useful_functions.html | 4
   branches/proto/v3/libs/bimap/doc/html/index.html | 12
   branches/proto/v3/libs/bimap/doc/tutorial.qbk | 8
   branches/proto/v3/libs/bimap/example/user_defined_names.cpp | 2
   branches/proto/v3/libs/bimap/index.html | 5
   branches/proto/v3/libs/bind/bind.html | 99 +
   branches/proto/v3/libs/bind/test/Jamfile.v2 | 1
   branches/proto/v3/libs/circular_buffer/doc/circular_buffer.html | 52 +
   branches/proto/v3/libs/circular_buffer/doc/space_optimized.html | 22
   branches/proto/v3/libs/circular_buffer/test/base_test.cpp | 1
   branches/proto/v3/libs/circular_buffer/test/common.ipp | 4
   branches/proto/v3/libs/concept_check/bibliography.htm | 2
   branches/proto/v3/libs/concept_check/concept_check.htm | 12
   branches/proto/v3/libs/concept_check/concept_covering.htm | 2
   branches/proto/v3/libs/concept_check/creating_concepts.htm | 4
   branches/proto/v3/libs/concept_check/implementation.htm | 2
   branches/proto/v3/libs/concept_check/prog_with_concepts.htm | 2
   branches/proto/v3/libs/concept_check/reference.htm | 2
   branches/proto/v3/libs/concept_check/using_concept_check.htm | 2
   branches/proto/v3/libs/config/doc/Jamfile.v2 | 20
   branches/proto/v3/libs/config/doc/config.qbk | 2
   branches/proto/v3/libs/config/doc/html/boost_config/acknowledgements.html | 9
   branches/proto/v3/libs/config/doc/html/boost_config/boost_macro_reference.html | 45
   branches/proto/v3/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html | 15
   branches/proto/v3/libs/config/doc/html/boost_config/rationale.html | 9
   branches/proto/v3/libs/config/doc/html/index.html | 21
   branches/proto/v3/libs/conversion/cast.htm | 4
   branches/proto/v3/libs/crc/index.html | 4
   branches/proto/v3/libs/date_time/build/Jamfile.v2 | 2
   branches/proto/v3/libs/date_time/example/Jamfile | 4
   branches/proto/v3/libs/date_time/example/gregorian/Jamfile.v2 | 2
   branches/proto/v3/libs/date_time/example/gregorian/date_serialization_demo.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/dates_as_strings.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/days_alive.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/days_between_new_years.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/days_since_year_start.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/days_till_new_year.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/end_of_month_day.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/find_last_day_of_months.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/localization.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/month_add.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/period_calc.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/print_holidays.cpp | 2
   branches/proto/v3/libs/date_time/example/gregorian/print_month.cpp | 2
   branches/proto/v3/libs/date_time/example/local_time/calc_rules.cpp | 2
   branches/proto/v3/libs/date_time/example/local_time/flight.cpp | 2
   branches/proto/v3/libs/date_time/example/local_time/local_date_time.cpp | 2
   branches/proto/v3/libs/date_time/example/local_time/seconds_since_epoch.cpp | 2
   branches/proto/v3/libs/date_time/example/local_time/simple_time_zone.cpp | 2
   branches/proto/v3/libs/date_time/example/posix_time/Jamfile.v2 | 2
   branches/proto/v3/libs/date_time/example/posix_time/local_utc_conversion.cpp | 2
   branches/proto/v3/libs/date_time/example/posix_time/print_hours.cpp | 2
   branches/proto/v3/libs/date_time/example/posix_time/time_math.cpp | 2
   branches/proto/v3/libs/date_time/example/posix_time/time_periods.cpp | 2
   branches/proto/v3/libs/date_time/example/tutorial/io_tutorial.cpp | 2
   branches/proto/v3/libs/date_time/src/gregorian/date_generators.cpp | 2
   branches/proto/v3/libs/date_time/src/gregorian/greg_month.cpp | 2
   branches/proto/v3/libs/date_time/src/gregorian/greg_names.hpp | 2
   branches/proto/v3/libs/date_time/src/gregorian/greg_weekday.cpp | 2
   branches/proto/v3/libs/date_time/src/gregorian/gregorian_types.cpp | 2
   branches/proto/v3/libs/date_time/src/posix_time/posix_time_types.cpp | 2
   branches/proto/v3/libs/date_time/test/Jamfile.v2 | 4
   branches/proto/v3/libs/date_time/test/gregorian/testcurrent_day.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testdate.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testdate_duration.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testdate_facet_new.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testdate_input_facet.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testdate_iterator.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testfacet.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testformat_date_parser.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testformatters.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgenerators.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_cal.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_day.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_durations.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_month.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_serialize.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_wstream.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testgreg_year.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testparse_date.cpp | 2
   branches/proto/v3/libs/date_time/test/gregorian/testperiod.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testclocks.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testcustom_time_zone.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testdst_transition_day_rule.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testlocal_time.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testlocal_time_facet.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testlocal_time_input_facet.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testlocal_time_iterator.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testlocal_time_period.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testposix_time_zone.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testtz_database.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testwcustom_time_zone.cpp | 2
   branches/proto/v3/libs/date_time/test/local_time/testwposix_time_zone.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testc_local_adjustor.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testclock.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testdst_rules.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testduration.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testfiletime_functions.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testformatters.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testgreg_duration_operators.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testiterator.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testlocal_adjustor.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testmicrosec_time_clock.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testparse_time.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testperiod.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/teststreams.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime_facet.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime_formatters.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime_input_facet.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime_period.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime_serialize.cpp | 2
   branches/proto/v3/libs/date_time/test/posix_time/testtime_wstream.cpp | 2
   branches/proto/v3/libs/date_time/test/testconstrained_value.cpp | 2
   branches/proto/v3/libs/date_time/test/testfrom_facet.cpp | 2
   branches/proto/v3/libs/date_time/test/testgeneric_period.cpp | 2
   branches/proto/v3/libs/date_time/test/testgregorian_calendar.cpp | 2
   branches/proto/v3/libs/date_time/test/testint64_range.cpp | 2
   branches/proto/v3/libs/date_time/test/testint_adapter.cpp | 2
   branches/proto/v3/libs/date_time/test/testtime_resolution_traits.cpp | 2
   branches/proto/v3/libs/date_time/test/testwrapping_int.cpp | 2
   branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2 | 2
   branches/proto/v3/libs/date_time/xmldoc/README | 2
   branches/proto/v3/libs/date_time/xmldoc/acknowledgements.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/buildinfo.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/calculations.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/changes.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/conceptual.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/custom_time_zone.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_algorithms.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_class.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_duration.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_facet.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_input_facet.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_iterators.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_period.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl | 2
   branches/proto/v3/libs/date_time/xmldoc/date_time_io.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/design_concepts.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/design_goals.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/details.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/domain_concepts.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/doxy.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_calc_rules.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_date_period_calc.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_dates_as_strings.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_days_alive.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_days_between_new_years.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_end_of_month_day.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_find_last_day_of_months.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_flight.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_local_utc_conversion.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_localization.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_meeting_planner.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_month_add.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_print_holidays.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_print_hours.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_print_month.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_seconds_since_epoch.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_simple_time_zone.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_time_math.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ex_time_periods.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/examples.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/exclusive_date_time.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/format_flags.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/gregorian.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/gregorian_calendar.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/io_objects.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/io_tutorial.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/license.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/local_date_time.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/local_time.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/local_time_period.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/motivation.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/posix_time.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/posix_time_zone.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ptime_class.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/ref_tag_fix.pl | 4
   branches/proto/v3/libs/date_time/xmldoc/references.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/serialization.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/snap_to_details.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/table_template.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/terminology.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/tests.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/time_duration.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/time_facet.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/time_input_facet.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/time_iterators.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/time_period.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/time_zone_base.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/tradeoffs.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/tz_database.xml | 2
   branches/proto/v3/libs/date_time/xmldoc/usage_examples.xml | 2
   branches/proto/v3/libs/disjoint_sets/bibliography.html | 2
   branches/proto/v3/libs/disjoint_sets/disjoint_sets.html | 2
   branches/proto/v3/libs/dynamic_bitset/dynamic_bitset.html | 4
   branches/proto/v3/libs/filesystem/doc/design.htm | 2
   branches/proto/v3/libs/filesystem/doc/index.htm | 2
   branches/proto/v3/libs/foreach/doc/foreach.qbk | 13
   branches/proto/v3/libs/foreach/test/Jamfile.v2 | 11
   branches/proto/v3/libs/foreach/test/utility.hpp | 64 +
   branches/proto/v3/libs/format/index.html | 4
   branches/proto/v3/libs/function_types/build/Jamfile | 2
   branches/proto/v3/libs/function_types/build/preprocess_arity_loops.cpp | 2
   branches/proto/v3/libs/function_types/build/preprocess_cc_names.cpp | 2
   branches/proto/v3/libs/function_types/build/preprocess_encoding.cpp | 2
   branches/proto/v3/libs/function_types/build/timestamps/cc_names | 1
   branches/proto/v3/libs/function_types/doc/Jamfile | 2
   branches/proto/v3/libs/function_types/example/fast_mem_fn_example.cpp | 4
   branches/proto/v3/libs/function_types/example/interface_example.cpp | 1
   branches/proto/v3/libs/function_types/example/interpreter.hpp | 2
   branches/proto/v3/libs/functional/binders.html | 4
   branches/proto/v3/libs/functional/function_traits.html | 4
   branches/proto/v3/libs/functional/hash/doc/intro.qbk | 8
   branches/proto/v3/libs/functional/hash/test/hash_number_test.cpp | 4
   branches/proto/v3/libs/functional/index.html | 12
   branches/proto/v3/libs/functional/mem_fun.html | 4
   branches/proto/v3/libs/functional/negators.html | 4
   branches/proto/v3/libs/functional/ptr_fun.html | 4
   branches/proto/v3/libs/gil/test/image.cpp | 1
   branches/proto/v3/libs/graph/doc/AdjacencyGraph.html | 2
   branches/proto/v3/libs/graph/doc/AdjacencyMatrix.html | 2
   branches/proto/v3/libs/graph/doc/BFSVisitor.html | 4
   branches/proto/v3/libs/graph/doc/BasicMatrix.html | 2
   branches/proto/v3/libs/graph/doc/BellmanFordVisitor.html | 4
   branches/proto/v3/libs/graph/doc/BidirectionalGraph.html | 2
   branches/proto/v3/libs/graph/doc/Buffer.html | 2
   branches/proto/v3/libs/graph/doc/ColorValue.html | 4
   branches/proto/v3/libs/graph/doc/DFSVisitor.html | 4
   branches/proto/v3/libs/graph/doc/DijkstraVisitor.html | 4
   branches/proto/v3/libs/graph/doc/EdgeListGraph.html | 2
   branches/proto/v3/libs/graph/doc/EdgeMutableGraph.html | 2
   branches/proto/v3/libs/graph/doc/EventVisitor.html | 4
   branches/proto/v3/libs/graph/doc/EventVisitorList.html | 4
   branches/proto/v3/libs/graph/doc/Graph.html | 2
   branches/proto/v3/libs/graph/doc/IncidenceGraph.html | 4
   branches/proto/v3/libs/graph/doc/IteratorConstructibleGraph.html | 4
   branches/proto/v3/libs/graph/doc/Monoid.html | 4
   branches/proto/v3/libs/graph/doc/MutableGraph.html | 2
   branches/proto/v3/libs/graph/doc/MutablePropertyGraph.html | 2
   branches/proto/v3/libs/graph/doc/PropertyGraph.html | 2
   branches/proto/v3/libs/graph/doc/PropertyTag.html | 2
   branches/proto/v3/libs/graph/doc/VertexAndEdgeListGraph.html | 2
   branches/proto/v3/libs/graph/doc/VertexListGraph.html | 2
   branches/proto/v3/libs/graph/doc/VertexMutableGraph.html | 4
   branches/proto/v3/libs/graph/doc/acknowledgements.html | 4
   branches/proto/v3/libs/graph/doc/adjacency_list.html | 4
   branches/proto/v3/libs/graph/doc/adjacency_list_traits.html | 4
   branches/proto/v3/libs/graph/doc/bandwidth.html | 2
   branches/proto/v3/libs/graph/doc/bc_clustering.html | 2
   branches/proto/v3/libs/graph/doc/bellman_ford_shortest.html | 2
   branches/proto/v3/libs/graph/doc/bellman_visitor.html | 4
   branches/proto/v3/libs/graph/doc/betweenness_centrality.html | 2
   branches/proto/v3/libs/graph/doc/bfs_visitor.html | 4
   branches/proto/v3/libs/graph/doc/bgl_named_params.html | 4
   branches/proto/v3/libs/graph/doc/bibliography.html | 2
   branches/proto/v3/libs/graph/doc/biconnected_components.html | 4
   branches/proto/v3/libs/graph/doc/breadth_first_search.html | 2
   branches/proto/v3/libs/graph/doc/breadth_first_visit.html | 2
   branches/proto/v3/libs/graph/doc/bundles.html | 2
   branches/proto/v3/libs/graph/doc/challenge.html | 2
   branches/proto/v3/libs/graph/doc/circle_layout.html | 4
   branches/proto/v3/libs/graph/doc/compressed_sparse_row.html | 2
   branches/proto/v3/libs/graph/doc/connected_components.html | 2
   branches/proto/v3/libs/graph/doc/constructing_algorithms.html | 4
   branches/proto/v3/libs/graph/doc/copy_graph.html | 2
   branches/proto/v3/libs/graph/doc/cuthill_mckee_ordering.html | 2
   branches/proto/v3/libs/graph/doc/dag_shortest_paths.html | 2
   branches/proto/v3/libs/graph/doc/depth_first_search.html | 4
   branches/proto/v3/libs/graph/doc/depth_first_visit.html | 2
   branches/proto/v3/libs/graph/doc/dfs_visitor.html | 4
   branches/proto/v3/libs/graph/doc/dijkstra_shortest_paths.html | 2
   branches/proto/v3/libs/graph/doc/dijkstra_visitor.html | 4
   branches/proto/v3/libs/graph/doc/distance_recorder.html | 4
   branches/proto/v3/libs/graph/doc/edge_list.html | 4
   branches/proto/v3/libs/graph/doc/erdos_renyi_generator.html | 2
   branches/proto/v3/libs/graph/doc/file_dependency_example.html | 2
   branches/proto/v3/libs/graph/doc/filtered_graph.html | 4
   branches/proto/v3/libs/graph/doc/fruchterman_reingold.html | 2
   branches/proto/v3/libs/graph/doc/graph_coloring.html | 4
   branches/proto/v3/libs/graph/doc/graph_concepts.html | 2
   branches/proto/v3/libs/graph/doc/graph_theory_review.html | 2
   branches/proto/v3/libs/graph/doc/graph_traits.html | 4
   branches/proto/v3/libs/graph/doc/gursoy_atun_layout.html | 2
   branches/proto/v3/libs/graph/doc/history.html | 4
   branches/proto/v3/libs/graph/doc/incident.html | 4
   branches/proto/v3/libs/graph/doc/incremental_components.html | 4
   branches/proto/v3/libs/graph/doc/index.html | 4
   branches/proto/v3/libs/graph/doc/isomorphism.html | 2
   branches/proto/v3/libs/graph/doc/johnson_all_pairs_shortest.html | 2
   branches/proto/v3/libs/graph/doc/kamada_kawai_spring_layout.html | 6
   branches/proto/v3/libs/graph/doc/kevin_bacon.html | 2
   branches/proto/v3/libs/graph/doc/king_ordering.html | 2
   branches/proto/v3/libs/graph/doc/known_problems.html | 4
   branches/proto/v3/libs/graph/doc/kolmogorov_max_flow.html | 2
   branches/proto/v3/libs/graph/doc/kruskal_min_spanning_tree.html | 2
   branches/proto/v3/libs/graph/doc/layout_tolerance.html | 2
   branches/proto/v3/libs/graph/doc/leda_conversion.html | 4
   branches/proto/v3/libs/graph/doc/minimum_degree_ordering.html | 4
   branches/proto/v3/libs/graph/doc/null_visitor.html | 4
   branches/proto/v3/libs/graph/doc/opposite.html | 4
   branches/proto/v3/libs/graph/doc/plod_generator.html | 2
   branches/proto/v3/libs/graph/doc/predecessor_recorder.html | 4
   branches/proto/v3/libs/graph/doc/prim_minimum_spanning_tree.html | 2
   branches/proto/v3/libs/graph/doc/property_map.html | 4
   branches/proto/v3/libs/graph/doc/property_writer.html | 4
   branches/proto/v3/libs/graph/doc/publications.html | 4
   branches/proto/v3/libs/graph/doc/push_relabel_max_flow.html | 4
   branches/proto/v3/libs/graph/doc/python.html | 2
   branches/proto/v3/libs/graph/doc/quick_tour.html | 2
   branches/proto/v3/libs/graph/doc/random_layout.html | 2
   branches/proto/v3/libs/graph/doc/reverse_graph.html | 4
   branches/proto/v3/libs/graph/doc/sequential_vertex_coloring.html | 2
   branches/proto/v3/libs/graph/doc/small_world_generator.html | 2
   branches/proto/v3/libs/graph/doc/sorted_erdos_renyi_gen.html | 2
   branches/proto/v3/libs/graph/doc/sparse_matrix_ordering.html | 2
   branches/proto/v3/libs/graph/doc/stanford_graph.html | 4
   branches/proto/v3/libs/graph/doc/strong_components.html | 2
   branches/proto/v3/libs/graph/doc/table_of_contents.html | 4
   branches/proto/v3/libs/graph/doc/time_stamper.html | 4
   branches/proto/v3/libs/graph/doc/topological_sort.html | 2
   branches/proto/v3/libs/graph/doc/transitive_closure.html | 2
   branches/proto/v3/libs/graph/doc/transpose_graph.html | 2
   branches/proto/v3/libs/graph/doc/trouble_shooting.html | 4
   branches/proto/v3/libs/graph/doc/undirected_dfs.html | 4
   branches/proto/v3/libs/graph/doc/using_adjacency_list.html | 2
   branches/proto/v3/libs/graph/doc/using_property_maps.html | 2
   branches/proto/v3/libs/graph/doc/visitor_concepts.html | 4
   branches/proto/v3/libs/graph/doc/write-graphviz.html | 4
   branches/proto/v3/libs/graph/example/edge-connectivity.cpp | 4
   branches/proto/v3/libs/graph/example/regression.cfg | 2
   branches/proto/v3/libs/graph/test/csr_graph_test.cpp | 11
   branches/proto/v3/libs/graph/test/max_flow_test.cpp | 6
   branches/proto/v3/libs/integer/doc/integer_mask.html | 2
   branches/proto/v3/libs/integer/doc/static_log2.html | 2
   branches/proto/v3/libs/integer/doc/static_min_max.html | 2
   branches/proto/v3/libs/integer/index.html | 4
   branches/proto/v3/libs/integer/integer.htm | 10
   branches/proto/v3/libs/interprocess/doc/Jamfile.v2 | 2
   branches/proto/v3/libs/interprocess/doc/interprocess.qbk | 2
   branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj | 6
   branches/proto/v3/libs/interprocess/test/adaptive_node_pool_test.cpp | 2
   branches/proto/v3/libs/interprocess/test/adaptive_pool_test.cpp | 24
   branches/proto/v3/libs/interprocess/test/cached_adaptive_pool_test.cpp | 24
   branches/proto/v3/libs/interprocess/test/cached_node_allocator_test.cpp | 23
   branches/proto/v3/libs/interprocess/test/file_mapping_test.cpp | 10
   branches/proto/v3/libs/interprocess/test/get_process_id_name.hpp | 5
   branches/proto/v3/libs/interprocess/test/list_test.hpp | 30
   branches/proto/v3/libs/interprocess/test/map_test.hpp | 2
   branches/proto/v3/libs/interprocess/test/memory_algorithm_test.cpp | 98 +
   branches/proto/v3/libs/interprocess/test/memory_algorithm_test_template.hpp | 110 ++
   branches/proto/v3/libs/interprocess/test/node_allocator_test.cpp | 19
   branches/proto/v3/libs/interprocess/test/node_pool_test.hpp | 8
   branches/proto/v3/libs/interprocess/test/private_adaptive_pool_test.cpp | 19
   branches/proto/v3/libs/interprocess/test/private_node_allocator_test.cpp | 21
   branches/proto/v3/libs/interprocess/test/set_test.hpp | 2
   branches/proto/v3/libs/interprocess/test/vector_test.cpp | 235 -----
   branches/proto/v3/libs/intrusive/example/doc_list_algorithms.cpp | 2
   branches/proto/v3/libs/intrusive/example/doc_slist_algorithms.cpp | 2
   branches/proto/v3/libs/intrusive/index.html | 2
   branches/proto/v3/libs/intrusive/proj/vc7ide/_intrusivelib/_intrusivelib.vcproj | 6
   branches/proto/v3/libs/intrusive/test/itestvalue.hpp | 12
   branches/proto/v3/libs/intrusive/test/list_test.cpp | 125 ++
   branches/proto/v3/libs/intrusive/test/slist_test.cpp | 354 +++++++-
   branches/proto/v3/libs/io/doc/index.html | 4
   branches/proto/v3/libs/io/doc/ios_state.html | 2
   branches/proto/v3/libs/iostreams/build/Jamfile.v2 | 6
   branches/proto/v3/libs/iostreams/doc/acknowledgments.html | 20
   branches/proto/v3/libs/iostreams/doc/bibliography.html | 16
   branches/proto/v3/libs/iostreams/doc/classes/aggregate.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/array.html | 10
   branches/proto/v3/libs/iostreams/doc/classes/back_inserter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/bzip2.html | 10
   branches/proto/v3/libs/iostreams/doc/classes/chain.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/char_traits.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/classes.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/code_converter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/counter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/device.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/file.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/file_descriptor.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/filter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/filtering_stream.html | 9
   branches/proto/v3/libs/iostreams/doc/classes/filtering_streambuf.html | 9
   branches/proto/v3/libs/iostreams/doc/classes/gzip.html | 10
   branches/proto/v3/libs/iostreams/doc/classes/line_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/mapped_file.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/mode.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/newline_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/null.html | 12
   branches/proto/v3/libs/iostreams/doc/classes/regex_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/stdio_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/symmetric_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/classes/zlib.html | 10
   branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_device.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/blocking.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/closable.html | 47
   branches/proto/v3/libs/iostreams/doc/concepts/concepts.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/device.html | 10
   branches/proto/v3/libs/iostreams/doc/concepts/direct.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/dual_use_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/filter.html | 10
   branches/proto/v3/libs/iostreams/doc/concepts/flushable.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/input_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/localizable.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/multi-character.html | 6
   branches/proto/v3/libs/iostreams/doc/concepts/multi_character.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/optimally_buffered.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/output_filter.html | 10
   branches/proto/v3/libs/iostreams/doc/concepts/peekable.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/pipable.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/seekable_device.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/seekable_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/sink.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/source.html | 8
   branches/proto/v3/libs/iostreams/doc/concepts/symmetric_filter.html | 8
   branches/proto/v3/libs/iostreams/doc/faq.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/close.html | 103 ++
   branches/proto/v3/libs/iostreams/doc/functions/combine.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/compose.html | 10
   branches/proto/v3/libs/iostreams/doc/functions/copy.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/filter_test.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/flush.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/functions.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/get.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/imbue.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/invert.html | 10
   branches/proto/v3/libs/iostreams/doc/functions/optimal_buffer_size.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/positioning.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/put.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/putback.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/read.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/restrict.html | 16
   branches/proto/v3/libs/iostreams/doc/functions/seek.html | 8
   branches/proto/v3/libs/iostreams/doc/functions/tee.html | 10
   branches/proto/v3/libs/iostreams/doc/functions/write.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/asynchronous.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/buffering.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/code_conversion.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/concepts.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/exceptions.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/filtering_streams.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/generic_streams.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/guide.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/lifetimes.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/modes.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/pipelines.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/text_processing.html | 8
   branches/proto/v3/libs/iostreams/doc/guide/traits.html | 4
   branches/proto/v3/libs/iostreams/doc/guide/views.html | 10
   branches/proto/v3/libs/iostreams/doc/home.html | 10
   branches/proto/v3/libs/iostreams/doc/index.html | 2
   branches/proto/v3/libs/iostreams/doc/installation.html | 10
   branches/proto/v3/libs/iostreams/doc/macros/buffer_sizes.html | 8
   branches/proto/v3/libs/iostreams/doc/macros/macros.html | 8
   branches/proto/v3/libs/iostreams/doc/macros/workarounds.html | 8
   branches/proto/v3/libs/iostreams/doc/menu.html | 94 +-
   branches/proto/v3/libs/iostreams/doc/portability.html | 150 ---
   branches/proto/v3/libs/iostreams/doc/quick_reference.html | 14
   branches/proto/v3/libs/iostreams/doc/rationale.html | 8
   branches/proto/v3/libs/iostreams/doc/reference.html | 8
   branches/proto/v3/libs/iostreams/doc/theme/iostreams.css | 7
   branches/proto/v3/libs/iostreams/doc/tree/tree.css | 3
   branches/proto/v3/libs/iostreams/doc/tree/tree.js | 7
   branches/proto/v3/libs/iostreams/doc/tutorial/container_device.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/container_sink.html | 14
   branches/proto/v3/libs/iostreams/doc/tutorial/container_source.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/dictionary_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/dual_use_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/filter_usage.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/finite_state_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/line_wrapping_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/multichar_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/shell_comments_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/tab_expanding_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/tutorial.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/unix2dos_filters.html | 8
   branches/proto/v3/libs/iostreams/doc/tutorial/writing_devices.html | 12
   branches/proto/v3/libs/iostreams/doc/tutorial/writing_filters.html | 8
   branches/proto/v3/libs/iostreams/example/boost_back_inserter_example.cpp | 3
   branches/proto/v3/libs/iostreams/example/container_device.hpp | 6
   branches/proto/v3/libs/iostreams/example/container_device_example.cpp | 3
   branches/proto/v3/libs/iostreams/example/container_sink_example.cpp | 3
   branches/proto/v3/libs/iostreams/example/container_source_example.cpp | 3
   branches/proto/v3/libs/iostreams/example/dictionary_filter.hpp | 3
   branches/proto/v3/libs/iostreams/example/finite_state_filter.hpp | 3
   branches/proto/v3/libs/iostreams/example/iterator_range_example.cpp | 3
   branches/proto/v3/libs/iostreams/example/line_wrapping_filter.hpp | 3
   branches/proto/v3/libs/iostreams/example/shell_comments_filter.hpp | 3
   branches/proto/v3/libs/iostreams/example/std_back_inserter_example.cpp | 3
   branches/proto/v3/libs/iostreams/example/tab_expanding_filter.hpp | 3
   branches/proto/v3/libs/iostreams/example/unix2dos_filter.hpp | 3
   branches/proto/v3/libs/iostreams/src/bzip2.cpp | 3
   branches/proto/v3/libs/iostreams/src/file_descriptor.cpp | 145 ++-
   branches/proto/v3/libs/iostreams/src/mapped_file.cpp | 52 +
   branches/proto/v3/libs/iostreams/src/zlib.cpp | 3
   branches/proto/v3/libs/iostreams/test/Jamfile.v2 | 30
   branches/proto/v3/libs/iostreams/test/array_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/auto_close_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/buffer_size_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/bzip2_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/close_test.cpp | 1138 ++++-----------------------
   branches/proto/v3/libs/iostreams/test/code_converter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/component_access_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/compose_test.cpp | 400 +++++++++
   branches/proto/v3/libs/iostreams/test/copy_test.cpp | 31
   branches/proto/v3/libs/iostreams/test/counter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/detail/closable.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/constants.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/filters.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/null_padded_codecvt.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/operation_sequence.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/sequence.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/temp_file.hpp | 3
   branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.cpp | 3
   branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.hpp | 1
   branches/proto/v3/libs/iostreams/test/detail/verification.hpp | 3
   branches/proto/v3/libs/iostreams/test/direct_adapter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/example_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/execute_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/file_descriptor_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/file_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/filter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/filtering_stream_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/finite_state_filter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/flush_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/gzip_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/invert_test.cpp | 35
   branches/proto/v3/libs/iostreams/test/large_file_test.cpp | 42
   branches/proto/v3/libs/iostreams/test/line_filter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/mapped_file_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/newline_test.cpp | 13
   branches/proto/v3/libs/iostreams/test/null_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/operation_sequence_test.cpp | 8
   branches/proto/v3/libs/iostreams/test/pipeline_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/putback_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_bidir_filter_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_bidir_streambuf_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_bidir_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_input_filter_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_input_istream_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_input_seq_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_input_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_seekable_seq_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/read_seekable_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/regex_filter_test.cpp | 23
   branches/proto/v3/libs/iostreams/test/restrict_test.cpp | 238 ++++-
   branches/proto/v3/libs/iostreams/test/seek_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/seekable_file_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/seekable_filter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/sequence_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/stdio_filter_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/symmetric_filter_test.cpp | 46 +
   branches/proto/v3/libs/iostreams/test/tee_test.cpp | 231 +++++
   branches/proto/v3/libs/iostreams/test/wide_stream_test.cpp | 3
   branches/proto/v3/libs/iostreams/test/write_bidir_filter_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_bidir_streambuf_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_bidir_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_output_filter_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_output_iterator_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_output_ostream_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_output_seq_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_output_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_seekable_seq_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/write_seekable_test.hpp | 3
   branches/proto/v3/libs/iostreams/test/zlib_test.cpp | 3
   branches/proto/v3/libs/iterator/doc/index.html | 4
   branches/proto/v3/libs/iterator/doc/index.rst | 4
   branches/proto/v3/libs/iterator/doc/iterator_facade.html | 2
   branches/proto/v3/libs/iterator/doc/iterator_facade_tutorial.rst | 2
   branches/proto/v3/libs/iterator/doc/quickbook/facade_tutorial.qbk | 2
   branches/proto/v3/libs/iterator/doc/quickbook/iterator.qbk | 4
   branches/proto/v3/libs/lambda/doc/lambda.xml | 4
   branches/proto/v3/libs/libraries.htm | 62
   branches/proto/v3/libs/logic/test/tribool_io_test.cpp | 1
   branches/proto/v3/libs/maintainers.txt | 2
   branches/proto/v3/libs/math/doc/complex/complex-tr1.qbk | 4
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex.html | 23
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acos.html | 51
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acosh.html | 51
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asin.html | 51
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asinh.html | 51
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atan.html | 51
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atanh.html | 48
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/history.html | 20
   branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/implementation.html | 29
   branches/proto/v3/libs/math/doc/complex/html/index.html | 17
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm.html | 20
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/compile_time.html | 42
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/credits.html | 17
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/demo.html | 21
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/gcd_function_object.html | 31
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/header.html | 24
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/history.html | 17
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/introduction.html | 20
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/lcm_function_object.html | 34
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/rationale.html | 19
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/run_time.html | 34
   branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/synopsis.html | 23
   branches/proto/v3/libs/math/doc/gcd/html/index.html | 17
   branches/proto/v3/libs/math/doc/gcd/math-gcd.qbk | 4
   branches/proto/v3/libs/math/doc/html/index.html | 279 ++++--
   branches/proto/v3/libs/math/doc/math.qbk | 96 +
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions.html | 9
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/acknowledgements.html | 9
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/header_file.html | 9
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/history.html | 9
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/non_mem.html | 60
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/oct_create.html | 12
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_functions.html | 66
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_typedefs.html | 21
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_specializations.html | 18
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_value_operations.html | 39
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonions_transcendentals.html | 49
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/overview.html | 11
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/synopsis.html | 12
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/template_class_octonion.html | 12
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/test_program.html | 9
   branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/to_do.html | 9
   branches/proto/v3/libs/math/doc/octonion/html/index.html | 12
   branches/proto/v3/libs/math/doc/octonion/math-octonion.qbk | 6
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions.html | 14
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/acknowledgements.html | 17
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/create.html | 84 +-
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/exp.html | 20
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/header_file.html | 14
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/history.html | 14
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_fun.html | 156 +--
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_typedef.html | 39
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/non_mem.html | 157 +--
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/overview.html | 54
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/quat.html | 24
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/spec.html | 39
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/synopsis.html | 23
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/test_program.html | 21
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/to_do.html | 14
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/trans.html | 101 +-
   branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/value_op.html | 85 -
   branches/proto/v3/libs/math/doc/quaternion/html/index.html | 14
   branches/proto/v3/libs/math/doc/quaternion/math-quaternion.qbk | 4
   branches/proto/v3/libs/math/doc/sf_and_dist/credits.qbk | 4
   branches/proto/v3/libs/math/doc/sf_and_dist/ellint_legendre.qbk | 2
   branches/proto/v3/libs/math/doc/sf_and_dist/html/index.html | 14
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html | 51
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html | 26
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html | 16
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html | 8
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html | 22
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html | 27
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html | 28
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html | 59
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html | 77 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html | 31
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html | 33
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html | 28
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html | 29
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html | 31
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html | 35
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html | 29
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html | 84 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html | 29
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html | 33
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html | 26
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html | 30
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html | 31
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html | 34
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html | 31
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html | 33
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html | 123 +-
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html | 26
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html | 45
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html | 15
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html | 48
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html | 97 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html | 26
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html | 68 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html | 21
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html | 35
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html | 84 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html | 35
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html | 21
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html | 90 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html | 89 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html | 21
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html | 15
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html | 10
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html | 59
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html | 8
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html | 9
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html | 8
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html | 36
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html | 8
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html | 10
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html | 15
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html | 39
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html | 32
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html | 14
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html | 9
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html | 51
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html | 40
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html | 33
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html | 48
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html | 9
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html | 35
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html | 69 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html | 9
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html | 23
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html | 23
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html | 19
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html | 30
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html | 36
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html | 30
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html | 54
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html | 31
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html | 31
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html | 16
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html | 16
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html | 11
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html | 19
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html | 16
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html | 16
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html | 20
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html | 42
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html | 40
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html | 47
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html | 46
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html | 34
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html | 20
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html | 30
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html | 50
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html | 34
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html | 37
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html | 28
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html | 33
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html | 44
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html | 49
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html | 33
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html | 15
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html | 15
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/compilers.html | 13
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html | 10
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html | 20
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html | 32
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html | 18
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html | 30
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html | 36
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html | 66 -
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html | 30
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html | 12
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html | 16
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html | 63
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html | 24
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html | 10
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html | 6
   branches/proto/v3/libs/math/doc/sf_and_dist/math.qbk | 4
   branches/proto/v3/libs/math/doc/sf_and_dist/references.qbk | 2
   branches/proto/v3/libs/math/example/policy_eg_8.cpp | 2
   branches/proto/v3/libs/math/test/common_factor_test.cpp | 9
   branches/proto/v3/libs/mpi/build/Jamfile.v2 | 1
   branches/proto/v3/libs/mpi/build/__init__.py | 4
   branches/proto/v3/libs/mpi/doc/mpi.qbk | 3
   branches/proto/v3/libs/mpi/example/python/hello_world.py | 2
   branches/proto/v3/libs/mpi/src/python/documentation.cpp | 150 +++
   branches/proto/v3/libs/mpi/src/python/module.cpp | 4
   branches/proto/v3/libs/mpi/src/python/py_communicator.cpp | 13
   branches/proto/v3/libs/mpi/src/python/py_exception.cpp | 9
   branches/proto/v3/libs/mpi/src/python/py_request.cpp | 90 +
   branches/proto/v3/libs/mpi/src/python/py_timer.cpp | 2
   branches/proto/v3/libs/mpi/src/python/skeleton_and_content.cpp | 21
   branches/proto/v3/libs/mpi/src/python/status.cpp | 2
   branches/proto/v3/libs/mpi/test/python/all_gather_test.py | 2
   branches/proto/v3/libs/mpi/test/python/all_reduce_test.py | 2
   branches/proto/v3/libs/mpi/test/python/all_to_all_test.py | 2
   branches/proto/v3/libs/mpi/test/python/broadcast_test.py | 2
   branches/proto/v3/libs/mpi/test/python/gather_test.py | 2
   branches/proto/v3/libs/mpi/test/python/generators.py | 2
   branches/proto/v3/libs/mpi/test/python/reduce_test.py | 2
   branches/proto/v3/libs/mpi/test/python/ring_test.py | 2
   branches/proto/v3/libs/mpi/test/python/scan_test.py | 2
   branches/proto/v3/libs/mpi/test/python/scatter_test.py | 2
   branches/proto/v3/libs/mpi/test/python/skeleton_content_test.py | 2
   branches/proto/v3/libs/mpl/doc/refmanual/vector.html | 2
   branches/proto/v3/libs/mpl/doc/tutorial/broken-integral-constant.html | 2
   branches/proto/v3/libs/multi_array/doc/index.html | 6
   branches/proto/v3/libs/multi_array/doc/test_cases.html | 4
   branches/proto/v3/libs/multi_array/doc/user.html | 2
   branches/proto/v3/libs/multi_index/doc/compiler_specifics.html | 26
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html | 28
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html | 44
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html | 28
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html | 157 +--
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html | 26
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html | 80 -
   branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html | 30
   branches/proto/v3/libs/numeric/conversion/doc/html/index.html | 26
   branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html | 26
   branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html | 30
   branches/proto/v3/libs/numeric/conversion/index.html | 6
   branches/proto/v3/libs/numeric/ublas/doc/overview.htm | 2
   branches/proto/v3/libs/optional/doc/Jamfile.v2 | 6
   branches/proto/v3/libs/optional/doc/html/boost_optional/a_note_about_optional_bool_.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/acknowledgments.html | 30
   branches/proto/v3/libs/optional/doc/html/boost_optional/dependencies_and_portability.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/detailed_semantics.html | 74 +
   branches/proto/v3/libs/optional/doc/html/boost_optional/development.html | 45
   branches/proto/v3/libs/optional/doc/html/boost_optional/examples.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/exception_safety_guarantees.html | 28
   branches/proto/v3/libs/optional/doc/html/boost_optional/implementation_notes.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/in_place_factories.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/optional_references.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html | 28
   branches/proto/v3/libs/optional/doc/html/boost_optional/synopsis.html | 26
   branches/proto/v3/libs/optional/doc/html/boost_optional/type_requirements.html | 26
   branches/proto/v3/libs/optional/doc/html/index.html | 41
   branches/proto/v3/libs/optional/doc/optional.qbk | 5
   branches/proto/v3/libs/optional/doc/reference.qbk | 1
   branches/proto/v3/libs/optional/index.html | 6
   branches/proto/v3/libs/parameter/doc/index.rst | 2
   branches/proto/v3/libs/parameter/doc/reference.rst | 2
   branches/proto/v3/libs/pool/doc/implementation/ct_gcd_lcm.html | 2
   branches/proto/v3/libs/preprocessor/doc/ref/seq_tail.html | 2
   branches/proto/v3/libs/program_options/src/cmdline.cpp | 4
   branches/proto/v3/libs/property_map/LvaluePropertyMap.html | 2
   branches/proto/v3/libs/property_map/ReadWritePropertyMap.html | 2
   branches/proto/v3/libs/property_map/ReadablePropertyMap.html | 2
   branches/proto/v3/libs/property_map/WritablePropertyMap.html | 2
   branches/proto/v3/libs/property_map/associative_property_map.html | 2
   branches/proto/v3/libs/property_map/const_assoc_property_map.html | 2
   branches/proto/v3/libs/property_map/identity_property_map.html | 2
   branches/proto/v3/libs/property_map/iterator_property_map.html | 2
   branches/proto/v3/libs/property_map/property_map.html | 2
   branches/proto/v3/libs/property_map/vector_property_map.html | 2
   branches/proto/v3/libs/ptr_container/doc/default.css | 2
   branches/proto/v3/libs/ptr_container/doc/intro.xml | 12
   branches/proto/v3/libs/ptr_container/doc/ptr_container.xml | 12
   branches/proto/v3/libs/ptr_container/test/Jamfile.v2 | 12
   branches/proto/v3/libs/python/doc/building.html | 4
   branches/proto/v3/libs/python/doc/building.rst | 4
   branches/proto/v3/libs/python/doc/index.html | 2
   branches/proto/v3/libs/python/doc/news.html | 2
   branches/proto/v3/libs/python/doc/projects.html | 2
   branches/proto/v3/libs/python/doc/support.html | 2
   branches/proto/v3/libs/python/doc/v2/Apr2002.html | 2
   branches/proto/v3/libs/python/doc/v2/CallPolicies.html | 2
   branches/proto/v3/libs/python/doc/v2/Dereferenceable.html | 2
   branches/proto/v3/libs/python/doc/v2/Extractor.html | 2
   branches/proto/v3/libs/python/doc/v2/HolderGenerator.html | 2
   branches/proto/v3/libs/python/doc/v2/Jun2002.html | 2
   branches/proto/v3/libs/python/doc/v2/Mar2002.html | 2
   branches/proto/v3/libs/python/doc/v2/May2002.html | 2
   branches/proto/v3/libs/python/doc/v2/ObjectWrapper.html | 2
   branches/proto/v3/libs/python/doc/v2/ResultConverter.html | 2
   branches/proto/v3/libs/python/doc/v2/acknowledgments.html | 12
   branches/proto/v3/libs/python/doc/v2/args.html | 2
   branches/proto/v3/libs/python/doc/v2/call.html | 2
   branches/proto/v3/libs/python/doc/v2/call_method.html | 2
   branches/proto/v3/libs/python/doc/v2/callbacks.html | 2
   branches/proto/v3/libs/python/doc/v2/class.html | 2
   branches/proto/v3/libs/python/doc/v2/configuration.html | 2
   branches/proto/v3/libs/python/doc/v2/copy_const_reference.html | 2
   branches/proto/v3/libs/python/doc/v2/copy_non_const_reference.html | 2
   branches/proto/v3/libs/python/doc/v2/data_members.html | 2
   branches/proto/v3/libs/python/doc/v2/def.html | 2
   branches/proto/v3/libs/python/doc/v2/default_call_policies.html | 2
   branches/proto/v3/libs/python/doc/v2/definitions.html | 2
   branches/proto/v3/libs/python/doc/v2/dict.html | 2
   branches/proto/v3/libs/python/doc/v2/docstring_options.html | 2
   branches/proto/v3/libs/python/doc/v2/enum.html | 2
   branches/proto/v3/libs/python/doc/v2/errors.html | 2
   branches/proto/v3/libs/python/doc/v2/exception_translator.html | 2
   branches/proto/v3/libs/python/doc/v2/extract.html | 2
   branches/proto/v3/libs/python/doc/v2/faq.html | 2
   branches/proto/v3/libs/python/doc/v2/feb2002.html | 2
   branches/proto/v3/libs/python/doc/v2/handle.html | 2
   branches/proto/v3/libs/python/doc/v2/has_back_reference.html | 2
   branches/proto/v3/libs/python/doc/v2/implicit.html | 2
   branches/proto/v3/libs/python/doc/v2/init.html | 2
   branches/proto/v3/libs/python/doc/v2/instance_holder.html | 2
   branches/proto/v3/libs/python/doc/v2/iterator.html | 2
   branches/proto/v3/libs/python/doc/v2/list.html | 2
   branches/proto/v3/libs/python/doc/v2/long.html | 2
   branches/proto/v3/libs/python/doc/v2/lvalue_from_pytype.html | 2
   branches/proto/v3/libs/python/doc/v2/make_function.html | 2
   branches/proto/v3/libs/python/doc/v2/manage_new_object.html | 2
   branches/proto/v3/libs/python/doc/v2/module.html | 2
   branches/proto/v3/libs/python/doc/v2/numeric.html | 2
   branches/proto/v3/libs/python/doc/v2/object.html | 2
   branches/proto/v3/libs/python/doc/v2/operators.html | 2
   branches/proto/v3/libs/python/doc/v2/overloads.html | 2
   branches/proto/v3/libs/python/doc/v2/platforms.html | 2
   branches/proto/v3/libs/python/doc/v2/pointee.html | 2
   branches/proto/v3/libs/python/doc/v2/progress_reports.html | 2
   branches/proto/v3/libs/python/doc/v2/ptr.html | 2
   branches/proto/v3/libs/python/doc/v2/python.html | 2
   branches/proto/v3/libs/python/doc/v2/raw_function.html | 2
   branches/proto/v3/libs/python/doc/v2/reference.html | 2
   branches/proto/v3/libs/python/doc/v2/reference_existing_object.html | 2
   branches/proto/v3/libs/python/doc/v2/register_ptr_to_python.html | 2
   branches/proto/v3/libs/python/doc/v2/return_arg.html | 2
   branches/proto/v3/libs/python/doc/v2/return_by_value.html | 2
   branches/proto/v3/libs/python/doc/v2/return_internal_reference.html | 2
   branches/proto/v3/libs/python/doc/v2/return_value_policy.html | 2
   branches/proto/v3/libs/python/doc/v2/scope.html | 2
   branches/proto/v3/libs/python/doc/v2/ssize_t.html | 2
   branches/proto/v3/libs/python/doc/v2/str.html | 2
   branches/proto/v3/libs/python/doc/v2/to_python_converter.html | 2
   branches/proto/v3/libs/python/doc/v2/to_python_indirect.html | 2
   branches/proto/v3/libs/python/doc/v2/to_python_value.html | 2
   branches/proto/v3/libs/python/doc/v2/tuple.html | 2
   branches/proto/v3/libs/python/doc/v2/type_id.html | 2
   branches/proto/v3/libs/python/doc/v2/with_custodian_and_ward.html | 2
   branches/proto/v3/libs/python/doc/v2/wrapper.html | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/ClassExporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/CodeExporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/CppParser.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/EnumExporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/Exporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/FunctionExporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/GCCXMLParser.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/HeaderExporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/MultipleCodeUnit.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/SingleCodeUnit.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/SmartFile.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/VarExporter.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/__init__.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/declarations.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/exporters.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/exporterutils.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/infos.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/policies.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/pyste.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/settings.py | 2
   branches/proto/v3/libs/python/pyste/src/Pyste/utils.py | 2
   branches/proto/v3/libs/python/pyste/tests/GCCXMLParserUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/SmartFileUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/abstract_test.h | 2
   branches/proto/v3/libs/python/pyste/tests/abstract_testUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/add_test.h | 2
   branches/proto/v3/libs/python/pyste/tests/add_testUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/basic.cpp | 2
   branches/proto/v3/libs/python/pyste/tests/basic.h | 2
   branches/proto/v3/libs/python/pyste/tests/basicUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/code_test.h | 2
   branches/proto/v3/libs/python/pyste/tests/code_testUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/enums.h | 2
   branches/proto/v3/libs/python/pyste/tests/enumsUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/header_test.h | 2
   branches/proto/v3/libs/python/pyste/tests/header_testUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/infosUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/inherit.cpp | 2
   branches/proto/v3/libs/python/pyste/tests/inherit.h | 2
   branches/proto/v3/libs/python/pyste/tests/inherit2.h | 2
   branches/proto/v3/libs/python/pyste/tests/inherit2UT.py | 2
   branches/proto/v3/libs/python/pyste/tests/inherit3.h | 2
   branches/proto/v3/libs/python/pyste/tests/inherit3UT.py | 2
   branches/proto/v3/libs/python/pyste/tests/inherit4.h | 2
   branches/proto/v3/libs/python/pyste/tests/inherit4UT.py | 2
   branches/proto/v3/libs/python/pyste/tests/inheritUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/nested.cpp | 2
   branches/proto/v3/libs/python/pyste/tests/nested.h | 2
   branches/proto/v3/libs/python/pyste/tests/nestedUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/opaque.h | 2
   branches/proto/v3/libs/python/pyste/tests/opaqueUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/operators.cpp | 2
   branches/proto/v3/libs/python/pyste/tests/operators.h | 2
   branches/proto/v3/libs/python/pyste/tests/operatorsUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/policiesUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/runtests.py | 2
   branches/proto/v3/libs/python/pyste/tests/smart_ptr.h | 2
   branches/proto/v3/libs/python/pyste/tests/smart_ptrUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/templates.h | 2
   branches/proto/v3/libs/python/pyste/tests/templatesUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/test_all.py | 2
   branches/proto/v3/libs/python/pyste/tests/vars.cpp | 2
   branches/proto/v3/libs/python/pyste/tests/vars.h | 2
   branches/proto/v3/libs/python/pyste/tests/varsUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/virtual.cpp | 2
   branches/proto/v3/libs/python/pyste/tests/virtual.h | 2
   branches/proto/v3/libs/python/pyste/tests/virtual2.h | 2
   branches/proto/v3/libs/python/pyste/tests/virtual2UT.py | 2
   branches/proto/v3/libs/python/pyste/tests/virtualUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/wrappertest.h | 2
   branches/proto/v3/libs/python/pyste/tests/wrappertestUT.py | 2
   branches/proto/v3/libs/python/pyste/tests/wrappertest_wrappers.h | 2
   branches/proto/v3/libs/python/src/object/stl_iterator.cpp | 6
   branches/proto/v3/libs/python/test/stl_iterator.py | 10
   branches/proto/v3/libs/random/index.html | 8
   branches/proto/v3/libs/random/nondet_random.html | 2
   branches/proto/v3/libs/random/random-concepts.html | 2
   branches/proto/v3/libs/random/random-distributions.html | 2
   branches/proto/v3/libs/random/random-generators.html | 2
   branches/proto/v3/libs/random/random-misc.html | 2
   branches/proto/v3/libs/random/random-performance.html | 2
   branches/proto/v3/libs/random/random-variate.html | 2
   branches/proto/v3/libs/random/wg21-proposal.html | 2
   branches/proto/v3/libs/range/doc/boost_range.html | 10
   branches/proto/v3/libs/range/doc/example.cpp | 10
   branches/proto/v3/libs/range/doc/examples.html | 9
   branches/proto/v3/libs/range/doc/faq.html | 11
   branches/proto/v3/libs/range/doc/headers.html | 9
   branches/proto/v3/libs/range/doc/history_ack.html | 17
   branches/proto/v3/libs/range/doc/intro.html | 12
   branches/proto/v3/libs/range/doc/portability.html | 13
   branches/proto/v3/libs/range/doc/range.html | 38
   branches/proto/v3/libs/range/doc/style.css | 11
   branches/proto/v3/libs/range/doc/style.html | 8
   branches/proto/v3/libs/range/doc/utility_class.html | 24
   branches/proto/v3/libs/range/test/partial_workaround.cpp | 8
   branches/proto/v3/libs/rational/index.html | 6
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/examples.html | 10
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/faq.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/futher.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/headers.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/history.html | 14
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/locale.html | 12
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/performance.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/redist.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/standards.html | 14
   branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/thread_safety.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/captures.html | 10
   branches/proto/v3/libs/regex/doc/html/boost_regex/configuration.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/algorithm.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/compiler.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/linkage.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/locale.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/tuning.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/format.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html | 12
   branches/proto/v3/libs/regex/doc/html/boost_regex/format/perl_format.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/format/sed_format.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/install.html | 20
   branches/proto/v3/libs/regex/doc/html/boost_regex/introduction_and_overview.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/partial_matches.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/bad_expression.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/basic_regex.html | 22
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html | 6
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/error_type.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_flag_type.html | 10
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_results.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html | 10
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html | 14
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/posix.html | 12
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_iterator.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_match.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_replace.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_search.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html | 8
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_traits.html | 6
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/sub_match.html | 12
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_extended.html | 70
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html | 48
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html | 4
   branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html | 88 +-
   branches/proto/v3/libs/regex/doc/html/boost_regex/unicode.html | 8
   branches/proto/v3/libs/regex/doc/html/index.html | 12
   branches/proto/v3/libs/regex/doc/match_flag_type.qbk | 4
   branches/proto/v3/libs/regex/doc/regex.qbk | 4
   branches/proto/v3/libs/regex/performance/input.html | 3
   branches/proto/v3/libs/regex/test/regress/test_perl_ex.cpp | 11
   branches/proto/v3/libs/serialization/doc/acknowledgments.html | 10
   branches/proto/v3/libs/signals/doc/faq.xml | 30
   branches/proto/v3/libs/smart_ptr/shared_ptr.htm | 10
   branches/proto/v3/libs/smart_ptr/smart_ptr.htm | 2
   branches/proto/v3/libs/smart_ptr/smarttests.htm | 6
   branches/proto/v3/libs/smart_ptr/test/Jamfile.v2 | 2
   branches/proto/v3/libs/smart_ptr/test/shared_ptr_test.cpp | 12
   branches/proto/v3/libs/statechart/doc/acknowledgments.html | 16
   branches/proto/v3/libs/statechart/doc/configuration.html | 27
   branches/proto/v3/libs/statechart/doc/contact.html | 4
   branches/proto/v3/libs/statechart/doc/faq.html | 7
   branches/proto/v3/libs/statechart/doc/future_and_history.html | 13
   branches/proto/v3/libs/statechart/doc/reference.html | 562 +++++++------
   branches/proto/v3/libs/statechart/example/Performance/Performance.cpp | 1
   branches/proto/v3/libs/statechart/test/InStateReactionTest.cpp | 39
   branches/proto/v3/libs/static_assert/doc/static_assert.qbk | 15
   branches/proto/v3/libs/system/doc/index.html | 16
   branches/proto/v3/libs/system/test/Jamfile.v2 | 17
   branches/proto/v3/libs/test/doc/components/prg_exec_monitor/compilation.html | 2
   branches/proto/v3/libs/test/doc/components/utf/compilation.html | 2
   branches/proto/v3/libs/thread/doc/acknowledgements.xml | 2
   branches/proto/v3/libs/thread/doc/barrier-ref.xml | 2
   branches/proto/v3/libs/thread/doc/bibliography.xml | 2
   branches/proto/v3/libs/thread/doc/build.xml | 2
   branches/proto/v3/libs/thread/doc/concepts.xml | 2
   branches/proto/v3/libs/thread/doc/condition-ref.xml | 2
   branches/proto/v3/libs/thread/doc/configuration.xml | 2
   branches/proto/v3/libs/thread/doc/design.xml | 2
   branches/proto/v3/libs/thread/doc/entities.xml | 2
   branches/proto/v3/libs/thread/doc/exceptions-ref.xml | 2
   branches/proto/v3/libs/thread/doc/faq.xml | 2
   branches/proto/v3/libs/thread/doc/glossary.xml | 2
   branches/proto/v3/libs/thread/doc/implementation_notes.xml | 2
   branches/proto/v3/libs/thread/doc/index.html | 2
   branches/proto/v3/libs/thread/doc/mutex-ref.xml | 2
   branches/proto/v3/libs/thread/doc/once-ref.xml | 2
   branches/proto/v3/libs/thread/doc/overview.xml | 2
   branches/proto/v3/libs/thread/doc/rationale.xml | 2
   branches/proto/v3/libs/thread/doc/read_write_mutex-ref.xml | 2
   branches/proto/v3/libs/thread/doc/recursive_mutex-ref.xml | 2
   branches/proto/v3/libs/thread/doc/reference.xml | 2
   branches/proto/v3/libs/thread/doc/release_notes.xml | 2
   branches/proto/v3/libs/thread/doc/thread-ref.xml | 2
   branches/proto/v3/libs/thread/doc/thread.xml | 4
   branches/proto/v3/libs/thread/doc/tss-ref.xml | 2
   branches/proto/v3/libs/thread/doc/xtime-ref.xml | 2
   branches/proto/v3/libs/thread/index.html | 2
   branches/proto/v3/libs/thread/src/tss_null.cpp | 2
   branches/proto/v3/libs/thread/test/Jamfile.v2 | 1
   branches/proto/v3/libs/thread/test/test_mutex.cpp | 11
   branches/proto/v3/libs/thread/test/test_tss.cpp | 42 +
   branches/proto/v3/libs/timer/index.html | 6
   branches/proto/v3/libs/tokenizer/tokenizer.htm | 26
   branches/proto/v3/libs/tr1/doc/tr1.qbk | 8
   branches/proto/v3/libs/tr1/test/test_random.cpp | 1
   branches/proto/v3/libs/tuple/doc/tuple_users_guide.html | 2
   branches/proto/v3/libs/type_traits/cxx_type_traits.htm | 3
   branches/proto/v3/libs/type_traits/doc/Jamfile.v2 | 3
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/background.html | 55
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/alignment.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/function.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 20
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html | 15
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/credits.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/copy.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/fill.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/iter.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intrinsics.html | 11
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intro.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/mpl.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/extent.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 16
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html | 9
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html | 15
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html | 15
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html | 15
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/rank.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html | 14
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html | 12
   branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/user_defined.html | 12
   branches/proto/v3/libs/type_traits/doc/html/index.html | 14
   branches/proto/v3/libs/type_traits/doc/type_traits.qbk | 3
   branches/proto/v3/libs/type_traits/test/is_convertible_test.cpp | 6
   branches/proto/v3/libs/type_traits/test/make_signed_test.cpp | 16
   branches/proto/v3/libs/type_traits/test/make_unsigned_test.cpp | 16
   branches/proto/v3/libs/typeof/tools/preprocess.pl | 2
   branches/proto/v3/libs/utility/base_from_member.html | 6
   branches/proto/v3/libs/utility/generator_iterator.htm | 2
   branches/proto/v3/libs/utility/operators.htm | 10
   branches/proto/v3/libs/utility/utility.htm | 4
   branches/proto/v3/libs/utility/value_init.htm | 213 ++++
   branches/proto/v3/libs/utility/value_init_test.cpp | 41
   branches/proto/v3/libs/variant/doc/tutorial/advanced.xml | 2
   branches/proto/v3/libs/wave/ChangeLog | 15
   branches/proto/v3/libs/wave/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/doc/acknowledgements.html | 2
   branches/proto/v3/libs/wave/doc/class_ref_ctxpolicy_depr.html | 2
   branches/proto/v3/libs/wave/doc/class_reference_context.html | 2
   branches/proto/v3/libs/wave/doc/class_reference_ctxpolicy.html | 2
   branches/proto/v3/libs/wave/doc/class_reference_filepos.html | 2
   branches/proto/v3/libs/wave/doc/class_reference_inptpolcy.html | 2
   branches/proto/v3/libs/wave/doc/class_reference_lexer.html | 2
   branches/proto/v3/libs/wave/doc/class_reference_tokentype.html | 2
   branches/proto/v3/libs/wave/doc/compiletime_config.html | 19
   branches/proto/v3/libs/wave/doc/introduction.html | 2
   branches/proto/v3/libs/wave/doc/macro_expansion_process.html | 2
   branches/proto/v3/libs/wave/doc/predefined_macros.html | 2
   branches/proto/v3/libs/wave/doc/preface.html | 2
   branches/proto/v3/libs/wave/doc/quickstart.html | 2
   branches/proto/v3/libs/wave/doc/references.html | 2
   branches/proto/v3/libs/wave/doc/samples.html | 2
   branches/proto/v3/libs/wave/doc/supported_pragmas.html | 2
   branches/proto/v3/libs/wave/doc/token_ids.html | 9
   branches/proto/v3/libs/wave/doc/tracing_facility.html | 2
   branches/proto/v3/libs/wave/doc/wave_driver.html | 2
   branches/proto/v3/libs/wave/index.html | 2
   branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.cpp | 2
   branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.hpp | 2
   branches/proto/v3/libs/wave/samples/advanced_hooks/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.cpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.hpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens_config.hpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_exprgrammar.cpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_literalgrs.cpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_defined_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_slex_lexer.cpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp | 3
   branches/proto/v3/libs/wave/samples/cpp_tokens/slex/lexer.hpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/slex_interface.hpp | 2
   branches/proto/v3/libs/wave/samples/cpp_tokens/slex_iterator.hpp | 4
   branches/proto/v3/libs/wave/samples/cpp_tokens/slex_token.hpp | 11
   branches/proto/v3/libs/wave/samples/hannibal/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/hannibal/hannibal.cpp | 2
   branches/proto/v3/libs/wave/samples/hannibal/translation_unit_parser.h | 2
   branches/proto/v3/libs/wave/samples/hannibal/translation_unit_skipper.h | 2
   branches/proto/v3/libs/wave/samples/lexed_tokens/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/lexed_tokens/lexed_tokens.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_exprgrammar.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_literalgrs.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/instantiate_defined_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/instantiate_lexertl_lexer.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_config.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_tables.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/lexertl_interface.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/lexertl_iterator.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/list_includes.cpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/list_includes.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/list_includes_config.hpp | 2
   branches/proto/v3/libs/wave/samples/list_includes/list_includes_version.hpp | 2
   branches/proto/v3/libs/wave/samples/quick_start/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/quick_start/quick_start.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/real_positions/correct_token_positions.hpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_exprgrammar.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_literalgrs.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/instantiate_defined_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer_str.cpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/real_position_token.hpp | 2
   branches/proto/v3/libs/wave/samples/real_positions/real_positions.cpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/token_statistics/collect_token_statistics.hpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/instantiate_cpp_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/instantiate_defined_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/instantiate_xlex_lexer.cpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.cpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.hpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/token_statistics_version.hpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/xlex/xpressive_lexer.hpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/xlex_interface.hpp | 2
   branches/proto/v3/libs/wave/samples/token_statistics/xlex_iterator.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/samples/waveidl/idl.cpp | 4
   branches/proto/v3/libs/wave/samples/waveidl/idl.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idl_config.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idl_version.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl.re | 2
   branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_interface.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_iterator.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.cpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/instantiate_cpp_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/instantiate_defined_grammar.cpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/instantiate_predef_macros.cpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer.cpp | 2
   branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer_str.cpp | 2
   branches/proto/v3/libs/wave/src/cpplexer/re2clex/aq.cpp | 2
   branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp.re | 2
   branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.cpp | 2
   branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.inc | 2
   branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp.re | 2
   branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc | 2
   branches/proto/v3/libs/wave/src/instantiate_cpp_exprgrammar.cpp | 2
   branches/proto/v3/libs/wave/src/instantiate_cpp_grammar.cpp | 2
   branches/proto/v3/libs/wave/src/instantiate_cpp_literalgrs.cpp | 2
   branches/proto/v3/libs/wave/src/instantiate_defined_grammar.cpp | 2
   branches/proto/v3/libs/wave/src/instantiate_predef_macros.cpp | 2
   branches/proto/v3/libs/wave/src/instantiate_re2c_lexer.cpp | 2
   branches/proto/v3/libs/wave/src/instantiate_re2c_lexer_str.cpp | 2
   branches/proto/v3/libs/wave/src/token_ids.cpp | 414 +++++-----
   branches/proto/v3/libs/wave/src/wave_config_constant.cpp | 2
   branches/proto/v3/libs/wave/test/build/Jamfile.v2 | 2
   branches/proto/v3/libs/wave/test/testlexers/cpp_tokens.hpp | 2
   branches/proto/v3/libs/wave/test/testlexers/test_lexertl_lexer.cpp | 2
   branches/proto/v3/libs/wave/test/testlexers/test_re2c_lexer.cpp | 2
   branches/proto/v3/libs/wave/test/testlexers/test_slex_lexer.cpp | 2
   branches/proto/v3/libs/wave/test/testlexers/test_xlex_lexer.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/cmd_line_utils.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_001.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_003.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_005.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_006.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_007.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_008.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_009.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_010.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_011.cpp | 4
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_012.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_013.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_014.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_015.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_016.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_017.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_018.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_019.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_020.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_021.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_022.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_023.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_024.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_025.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_026.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_027.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_028.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_029.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_030.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_031.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_032.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_033.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_034.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_035.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_036.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_037.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_001.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_003.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_005.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_006.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_007.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_008.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_009.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_010.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_011.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_012.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_013.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_014.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_015.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_016.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_017.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_001.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_003.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_001.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_003.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_001.cpp | 4
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_003.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_005.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_006.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_008.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_009.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_010.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_011.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_012.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_013.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_014.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_015.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_016.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_017.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_018.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_019.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_020.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_021.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_022.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_023.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_024.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_025.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_026.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_027.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_028.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_029.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_030.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_032.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_033.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_034.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_01.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_02.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_03.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_04.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_05.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_06.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_07.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_08.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_09.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_10.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_11.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_12.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_13.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_14.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_15.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_001.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_003.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_005.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_006.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_007.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_008.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_009.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_010.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_011.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_012.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_013.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_014.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_015.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_016.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_017.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_018.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_019.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_020.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_021.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_022.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_023.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_024.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_025.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_026.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_027.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_028.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_031.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_032.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_033.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_034.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_035.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_036.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_037.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_038.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_039.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_040.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_041.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_042.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_043.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_044.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_045.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_046.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_047.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_048.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_049.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_050.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_051.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_052.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_053.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_054.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_055.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_056.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_057.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_058.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_059.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_060.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_061.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_062.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_064.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_065.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_068.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_069.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_001.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_002.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_003.cpp | 4
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_004.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_005.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_006.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_007.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_008.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_009.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_010.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_011.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_012.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_013.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_014.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_015.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_017.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_018.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testfiles/test.cfg | 1
   branches/proto/v3/libs/wave/test/testwave/testwave.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testwave_app.cpp | 4
   branches/proto/v3/libs/wave/test/testwave/testwave_app.hpp | 2
   branches/proto/v3/libs/wave/test/testwave/testwave_app_dll.cpp | 2
   branches/proto/v3/libs/wave/test/testwave/testwave_dll.cpp | 2
   branches/proto/v3/libs/xpressive/doc/acknowledgements.qbk | 5
   branches/proto/v3/libs/xpressive/doc/actions.qbk | 2
   branches/proto/v3/libs/xpressive/doc/concepts.qbk | 2
   branches/proto/v3/libs/xpressive/doc/dynamic_regexes.qbk | 2
   branches/proto/v3/libs/xpressive/doc/examples.qbk | 2
   branches/proto/v3/libs/xpressive/doc/grammars.qbk | 2
   branches/proto/v3/libs/xpressive/doc/history.qbk | 2
   branches/proto/v3/libs/xpressive/doc/installation.qbk | 2
   branches/proto/v3/libs/xpressive/doc/introduction.qbk | 2
   branches/proto/v3/libs/xpressive/doc/matching.qbk | 2
   branches/proto/v3/libs/xpressive/doc/nyi.qbk | 2
   branches/proto/v3/libs/xpressive/doc/perf.qbk | 2
   branches/proto/v3/libs/xpressive/doc/preface.qbk | 2
   branches/proto/v3/libs/xpressive/doc/quick_start.qbk | 2
   branches/proto/v3/libs/xpressive/doc/regexpp_diffs.qbk | 2
   branches/proto/v3/libs/xpressive/doc/results.qbk | 2
   branches/proto/v3/libs/xpressive/doc/static_regexes.qbk | 2
   branches/proto/v3/libs/xpressive/doc/substitutions.qbk | 2
   branches/proto/v3/libs/xpressive/doc/tips_n_tricks.qbk | 2
   branches/proto/v3/libs/xpressive/doc/tokenization.qbk | 2
   branches/proto/v3/libs/xpressive/doc/traits.qbk | 2
   branches/proto/v3/libs/xpressive/doc/xpressive.qbk | 2
   branches/proto/v3/libs/xpressive/example/numbers.cpp | 118 +-
   branches/proto/v3/libs/xpressive/proto/doc/Jamfile.v2 | 105 +-
   branches/proto/v3/libs/xpressive/proto/doc/acknowledgements.qbk | 2
   branches/proto/v3/libs/xpressive/proto/doc/calculator.qbk | 6
   branches/proto/v3/libs/xpressive/proto/doc/construction.qbk | 691 +++++++++++++++++
   branches/proto/v3/libs/xpressive/proto/doc/evaluation.qbk | 525 +++++++++++++
   branches/proto/v3/libs/xpressive/proto/doc/examples.qbk | 122 ++
   branches/proto/v3/libs/xpressive/proto/doc/extensibility.qbk | 2
   branches/proto/v3/libs/xpressive/proto/doc/grammars.qbk | 30
   branches/proto/v3/libs/xpressive/proto/doc/history.qbk | 7
   branches/proto/v3/libs/xpressive/proto/doc/implementation.qbk | 162 ++++
   branches/proto/v3/libs/xpressive/proto/doc/installation.qbk | 21
   branches/proto/v3/libs/xpressive/proto/doc/preface.qbk | 16
   branches/proto/v3/libs/xpressive/proto/doc/proto.qbk | 76 +
   branches/proto/v3/libs/xpressive/proto/doc/protodoc.xml | 1403 +++++++++++++++++++---------------
   branches/proto/v3/libs/xpressive/proto/doc/quick_start.qbk | 2
   branches/proto/v3/libs/xpressive/proto/doc/rationale.qbk | 76 +
   branches/proto/v3/libs/xpressive/proto/doc/transforms.qbk | 1595 ++++++++++++++++++++++++++-------------
   branches/proto/v3/libs/xpressive/proto/example/Jamfile.v2 | 12
   branches/proto/v3/libs/xpressive/proto/example/calc1.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/calc2.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/futures.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/lazy_vector.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/map_assign.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/rgb.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/tarray.cpp | 2
   branches/proto/v3/libs/xpressive/proto/example/vector.cpp | 2
   branches/proto/v3/libs/xpressive/proto/test/calculator.cpp | 2
   branches/proto/v3/libs/xpressive/proto/test/lambda.cpp | 2
   branches/proto/v3/libs/xpressive/proto/test/proto_fusion.cpp | 2
   branches/proto/v3/libs/xpressive/test/Jamfile.v2 | 2
   branches/proto/v3/libs/xpressive/test/misc1.cpp | 2
   branches/proto/v3/libs/xpressive/test/misc2.cpp | 24
   branches/proto/v3/libs/xpressive/test/multiple_defs1.cpp | 2
   branches/proto/v3/libs/xpressive/test/multiple_defs2.cpp | 2
   branches/proto/v3/libs/xpressive/test/test.hpp | 2
   branches/proto/v3/libs/xpressive/test/test1.cpp | 2
   branches/proto/v3/libs/xpressive/test/test1.hpp | 9
   branches/proto/v3/libs/xpressive/test/test10.cpp | 2
   branches/proto/v3/libs/xpressive/test/test10.hpp | 2
   branches/proto/v3/libs/xpressive/test/test10u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test11.cpp | 2
   branches/proto/v3/libs/xpressive/test/test11.hpp | 2
   branches/proto/v3/libs/xpressive/test/test11u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test1u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test2.cpp | 2
   branches/proto/v3/libs/xpressive/test/test2.hpp | 2
   branches/proto/v3/libs/xpressive/test/test2u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test3.cpp | 2
   branches/proto/v3/libs/xpressive/test/test3.hpp | 2
   branches/proto/v3/libs/xpressive/test/test3u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test4.cpp | 2
   branches/proto/v3/libs/xpressive/test/test4.hpp | 2
   branches/proto/v3/libs/xpressive/test/test4u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test5.cpp | 2
   branches/proto/v3/libs/xpressive/test/test5.hpp | 2
   branches/proto/v3/libs/xpressive/test/test5u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test6.cpp | 2
   branches/proto/v3/libs/xpressive/test/test6.hpp | 2
   branches/proto/v3/libs/xpressive/test/test6u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test7.cpp | 2
   branches/proto/v3/libs/xpressive/test/test7.hpp | 2
   branches/proto/v3/libs/xpressive/test/test7u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test8.cpp | 2
   branches/proto/v3/libs/xpressive/test/test8.hpp | 2
   branches/proto/v3/libs/xpressive/test/test8u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test9.cpp | 2
   branches/proto/v3/libs/xpressive/test/test9.hpp | 2
   branches/proto/v3/libs/xpressive/test/test9u.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_actions.cpp | 6
   branches/proto/v3/libs/xpressive/test/test_assert.cpp | 4
   branches/proto/v3/libs/xpressive/test/test_basic_regex.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_cycles.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_dynamic.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_dynamic_grammar.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_match_results.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_non_char.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_partial_match.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_algorithms.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_compiler.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_constants.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_error.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_iterator.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_primitives.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_token_iterator.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_regex_traits.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_static.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_sub_match.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_symbols.cpp | 56
   branches/proto/v3/libs/xpressive/test/test_typeof.cpp | 2
   branches/proto/v3/libs/xpressive/test/test_typeof2.cpp | 28
   branches/proto/v3/more/getting_started/detail/conclusion.rst | 4
   branches/proto/v3/more/getting_started/unix-variants.html | 13
   branches/proto/v3/more/getting_started/unix-variants.rst | 2
   branches/proto/v3/more/getting_started/windows.html | 8
   branches/proto/v3/status/Jamfile.v2 | 2
   branches/proto/v3/status/explicit-failures-markup.xml | 268 ++++-
   branches/proto/v3/tools/bcp/add_path.cpp | 7
   branches/proto/v3/tools/bcp/index.html | 2
   branches/proto/v3/tools/bcp/scan_cvs_path.cpp | 6
   branches/proto/v3/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl | 28
   branches/proto/v3/tools/boostbook/xsl/navbar.xsl | 7
   branches/proto/v3/tools/build/v2/build-system.jam | 1251 +++++++++++++++++-------------
   branches/proto/v3/tools/build/v2/build/alias.jam | 52
   branches/proto/v3/tools/build/v2/build/build-request.jam | 185 ++--
   branches/proto/v3/tools/build/v2/build/feature.jam | 869 ++++++++++-----------
   branches/proto/v3/tools/build/v2/build/generators.jam | 902 +++++++++++-----------
   branches/proto/v3/tools/build/v2/build/modifiers.jam | 16
   branches/proto/v3/tools/build/v2/build/project.jam | 799 +++++++++----------
   branches/proto/v3/tools/build/v2/build/property-set.jam | 296 +++---
   branches/proto/v3/tools/build/v2/build/property.jam | 424 +++++-----
   branches/proto/v3/tools/build/v2/build/targets.jam | 1262 +++++++++++++++----------------
   branches/proto/v3/tools/build/v2/build/toolset.jam | 374 ++++----
   branches/proto/v3/tools/build/v2/build/type.jam | 299 +++---
   branches/proto/v3/tools/build/v2/build/version.jam | 8
   branches/proto/v3/tools/build/v2/build/virtual-target.jam | 879 ++++++++++-----------
   branches/proto/v3/tools/build/v2/doc/src/architecture.xml | 2
   branches/proto/v3/tools/build/v2/doc/src/extending.xml | 106 +-
   branches/proto/v3/tools/build/v2/doc/src/faq.xml | 10
   branches/proto/v3/tools/build/v2/doc/src/reference.xml | 8
   branches/proto/v3/tools/build/v2/doc/src/tutorial.xml | 11
   branches/proto/v3/tools/build/v2/hacking.txt | 80 +-
   branches/proto/v3/tools/build/v2/kernel/bootstrap.jam | 3
   branches/proto/v3/tools/build/v2/kernel/errors.jam | 134 +-
   branches/proto/v3/tools/build/v2/kernel/modules.jam | 265 +++---
   branches/proto/v3/tools/build/v2/notes/build_dir_option.txt | 49
   branches/proto/v3/tools/build/v2/options/help.jam | 11
   branches/proto/v3/tools/build/v2/roll.sh | 5
   branches/proto/v3/tools/build/v2/test/BoostBuild.py | 443 +++++-----
   branches/proto/v3/tools/build/v2/test/abs_workdir.py | 29
   branches/proto/v3/tools/build/v2/test/alias.py | 122 +-
   branches/proto/v3/tools/build/v2/test/conditionals.py | 58
   branches/proto/v3/tools/build/v2/test/conditionals2.py | 33
   branches/proto/v3/tools/build/v2/test/conditionals3.py | 21
   branches/proto/v3/tools/build/v2/test/double_loading.py | 39
   branches/proto/v3/tools/build/v2/test/library_property.py | 2
   branches/proto/v3/tools/build/v2/test/module-actions/bootstrap.jam | 46
   branches/proto/v3/tools/build/v2/test/module_actions.py | 35
   branches/proto/v3/tools/build/v2/test/project_test3.py | 2
   branches/proto/v3/tools/build/v2/test/tag.py | 148 ++-
   branches/proto/v3/tools/build/v2/test/test_all.py | 9
   branches/proto/v3/tools/build/v2/test/timedata.py | 31
   branches/proto/v3/tools/build/v2/tools/builtin.jam | 941 +++++++++++-----------
   branches/proto/v3/tools/build/v2/tools/cast.jam | 54
   branches/proto/v3/tools/build/v2/tools/common.jam | 454 +++++-----
   branches/proto/v3/tools/build/v2/tools/darwin.jam | 12
   branches/proto/v3/tools/build/v2/tools/docutils.jam | 7
   branches/proto/v3/tools/build/v2/tools/doxygen.jam | 2
   branches/proto/v3/tools/build/v2/tools/gcc.jam | 398 ++++-----
   branches/proto/v3/tools/build/v2/tools/generate.jam | 74
   branches/proto/v3/tools/build/v2/tools/gettext.jam | 96 +-
   branches/proto/v3/tools/build/v2/tools/intel-darwin.jam | 11
   branches/proto/v3/tools/build/v2/tools/intel-win.jam | 4
   branches/proto/v3/tools/build/v2/tools/intel.jam | 1
   branches/proto/v3/tools/build/v2/tools/mpi.jam | 6
   branches/proto/v3/tools/build/v2/tools/msvc.jam | 463 +++++-----
   branches/proto/v3/tools/build/v2/tools/notfile.jam | 46
   branches/proto/v3/tools/build/v2/tools/package.jam | 2
   branches/proto/v3/tools/build/v2/tools/pch.jam | 56
   branches/proto/v3/tools/build/v2/tools/pgi.jam | 2
   branches/proto/v3/tools/build/v2/tools/python.jam | 63
   branches/proto/v3/tools/build/v2/tools/qt4.jam | 48
   branches/proto/v3/tools/build/v2/tools/quickbook.jam | 3
   branches/proto/v3/tools/build/v2/tools/stage.jam | 365 ++++----
   branches/proto/v3/tools/build/v2/tools/testing.jam | 419 +++++-----
   branches/proto/v3/tools/build/v2/util/doc.jam | 96 +-
   branches/proto/v3/tools/build/v2/util/indirect.jam | 65
   branches/proto/v3/tools/build/v2/util/order.jam | 130 +-
   branches/proto/v3/tools/build/v2/util/os.jam | 78 +
   branches/proto/v3/tools/build/v2/util/path.jam | 231 +++--
   branches/proto/v3/tools/index.html | 70 +
   branches/proto/v3/tools/inspect/index.html | 6
   branches/proto/v3/tools/jam/doc/bjam.qbk | 2
   branches/proto/v3/tools/jam/src/build.bat | 2
   branches/proto/v3/tools/jam/src/builtins.c | 23
   branches/proto/v3/tools/jam/src/execunix.c | 20
   branches/proto/v3/tools/jam/src/filesys.c | 1
   branches/proto/v3/tools/jam/src/make1.c | 2
   branches/proto/v3/tools/jam/src/modules/property-set.c | 33
   branches/proto/v3/tools/jam/src/native.c | 10
   branches/proto/v3/tools/quickbook/detail/actions.cpp | 30
   branches/proto/v3/tools/quickbook/detail/actions.hpp | 12
   branches/proto/v3/tools/quickbook/detail/actions_class.cpp | 3
   branches/proto/v3/tools/quickbook/detail/actions_class.hpp | 4
   branches/proto/v3/tools/quickbook/doc_info.hpp | 9
   branches/proto/v3/tools/regression/src/regression.py | 2
   branches/proto/v3/tools/wave/build/Jamfile.v2 | 3
   branches/proto/v3/tools/wave/cpp.cpp | 4
   branches/proto/v3/tools/wave/cpp.hpp | 2
   branches/proto/v3/tools/wave/cpp_config.hpp | 2
   branches/proto/v3/tools/wave/cpp_version.hpp | 2
   branches/proto/v3/tools/wave/stop_watch.hpp | 2
   branches/proto/v3/tools/wave/trace_macro_expansion.hpp | 2
   3007 files changed, 30365 insertions(+), 23825 deletions(-)

Modified: branches/proto/v3/Jamroot
==============================================================================
--- branches/proto/v3/Jamroot (original)
+++ branches/proto/v3/Jamroot 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -53,7 +53,7 @@
 # complete - Attempts to build all possible
 # variations.
 #
-# --builddir=DIR Build in this location instead of building
+# --build-dir=DIR Build in this location instead of building
 # within the distribution tree. Recommended!
 #
 # --toolset=toolset Indicates the toolset to build with.

Deleted: branches/proto/v3/README
==============================================================================
--- branches/proto/v3/README 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,18 +0,0 @@
-Copyright 2000-2003 Beman Dawes
-Distributed under the Boost Software License, Version 1.0. (See accompany-
-ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-Unless otherwise specified, all Boost software and documentation is subject
-to the Boost Software License Version 1.0. See the accompanying file LICENSE_1_0.txt.
-A copy of the license is also available at http://www.boost.org/LICENSE_1_0.txt.
-
-For the most current version of Boost libraries and documentation, see:
-
- http://www.boost.org
-
-Boost documentation is in HTML format.
-
-The top-level directory (which contains this README file) should contain
-a file named index.htm with links to all documentation, including
-documentation on building boost libraries for your particular compiler
-and operating system.

Modified: branches/proto/v3/boost/accumulators/framework/accumulator_set.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/framework/accumulator_set.hpp (original)
+++ branches/proto/v3/boost/accumulators/framework/accumulator_set.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -54,6 +54,7 @@
         }
 
     private:
+ accumulator_visitor &operator =(accumulator_visitor const &);
         Args const &args;
     };
 
@@ -317,9 +318,9 @@
     {
         // You can only drop the features that you have specified explicitly
         typedef typename apply<Feature>::type the_accumulator;
- BOOST_MPL_ASSERT((detail::contains_feature_of<Features, the_accumulator>));
+ BOOST_MPL_ASSERT((detail::contains_feature_of<Features, the_accumulator>));
 
- typedef
+ typedef
             typename feature_of<typename as_feature<Feature>::type>::type
         the_feature;
 

Modified: branches/proto/v3/boost/accumulators/framework/accumulators/droppable_accumulator.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/framework/accumulators/droppable_accumulator.hpp (original)
+++ branches/proto/v3/boost/accumulators/framework/accumulators/droppable_accumulator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,6 +13,7 @@
 #include <boost/mpl/apply.hpp>
 #include <boost/aligned_storage.hpp>
 #include <boost/accumulators/framework/depends_on.hpp> // for feature_of
+#include <boost/accumulators/framework/parameters/accumulator.hpp> // for accumulator
 
 namespace boost { namespace accumulators
 {
@@ -41,13 +42,14 @@
                 acc.add_ref(this->args_);
 
                 // Also add_ref accumulators that this feature depends on
- this->args_[accumulator].template
+ this->args_[accumulator].template
                     visit_if<detail::contains_feature_of_<dependencies> >(
                         *this
                 );
             }
 
         private:
+ add_ref_visitor &operator =(add_ref_visitor const &);
             Args const &args_;
         };
 
@@ -77,7 +79,7 @@
 
                     acc.drop(this->args_);
                     // Also drop accumulators that this feature depends on
- this->args_[accumulator].template
+ this->args_[accumulator].template
                         visit_if<detail::contains_feature_of_<dependencies> >(
                             *this
                     );
@@ -85,6 +87,7 @@
             }
 
         private:
+ drop_visitor &operator =(drop_visitor const &);
             Args const &args_;
         };
 
@@ -101,6 +104,7 @@
     struct droppable_accumulator_base
       : Accumulator
     {
+ typedef droppable_accumulator_base base;
         typedef mpl::true_ is_droppable;
         typedef typename Accumulator::result_type result_type;
 
@@ -121,7 +125,7 @@
         }
 
         template<typename Args>
- void add_ref(Args const &args)
+ void add_ref(Args const &)
         {
             ++this->ref_count_;
         }
@@ -155,7 +159,7 @@
     {
         template<typename Args>
         droppable_accumulator(Args const &args)
- : droppable_accumulator_base<Accumulator>(args)
+ : droppable_accumulator::base(args)
         {
         }
     };
@@ -257,7 +261,7 @@
             typedef typename as_feature<Feature>::type feature_type;
             typedef typename feature_type::dependencies tmp_dependencies_;
 
- typedef
+ typedef
                 typename mpl::transform<
                     typename feature_type::dependencies
                   , as_droppable<mpl::_1>

Modified: branches/proto/v3/boost/accumulators/framework/accumulators/reference_accumulator.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/framework/accumulators/reference_accumulator.hpp (original)
+++ branches/proto/v3/boost/accumulators/framework/accumulators/reference_accumulator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -75,7 +75,7 @@
 using extract::reference;
 using extract::reference_tag;
 
-// Map all reference<V,T> features to reference_tag<T> so
+// Map all reference<V,T> features to reference_tag<T> so
 // that references can be extracted using reference_tag<T>
 // without specifying the referent type.
 template<typename ValueType, typename Tag>

Modified: branches/proto/v3/boost/accumulators/framework/accumulators/value_accumulator.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/framework/accumulators/value_accumulator.hpp (original)
+++ branches/proto/v3/boost/accumulators/framework/accumulators/value_accumulator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -75,7 +75,7 @@
 using extract::value;
 using extract::value_tag;
 
-// Map all value<V,T> features to value_tag<T> so
+// Map all value<V,T> features to value_tag<T> so
 // that values can be extracted using value_tag<T>
 // without specifying the value type.
 template<typename ValueType, typename Tag>

Modified: branches/proto/v3/boost/accumulators/framework/depends_on.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/framework/depends_on.hpp (original)
+++ branches/proto/v3/boost/accumulators/framework/depends_on.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -67,7 +67,7 @@
         typedef Feature type;
     };
 
- namespace detail
+ namespace detail
     {
         ///////////////////////////////////////////////////////////////////////////
         // feature_tag
@@ -165,7 +165,7 @@
         };
 
         // This is to work around a bug in early versions of Fusion which caused
- // a compile error if contains_feature_of<List, mpl::_> is used as a
+ // a compile error if contains_feature_of<List, mpl::_> is used as a
         // predicate to fusion::find_if
         template<typename Features>
         struct contains_feature_of_
@@ -187,7 +187,7 @@
         struct build_acc_list<First, Last, true>
         {
             typedef fusion::nil type;
-
+
             template<typename Args>
             static fusion::nil
             call(Args const &, First const&, Last const&)
@@ -205,7 +205,7 @@
 
             typedef fusion::cons<
                 typename fusion::result_of::value_of<First>::type
- , typename next_build_acc_list::type>
+ , typename next_build_acc_list::type>
             type;
 
             template<typename Args>

Modified: branches/proto/v3/boost/accumulators/framework/extractor.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/framework/extractor.hpp (original)
+++ branches/proto/v3/boost/accumulators/framework/extractor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -99,7 +99,7 @@
     typename detail::extractor_result<Arg1, Feature>::type
     operator ()(Arg1 const &arg1) const
     {
- // Arg1 could be an accumulator_set or an argument pack containing
+ // Arg1 could be an accumulator_set or an argument pack containing
         // an accumulator_set. Dispatch accordingly.
         return detail::do_extract<Feature>(arg1, detail::is_accumulator_set<Arg1>());
     }

Modified: branches/proto/v3/boost/accumulators/numeric/functional.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/numeric/functional.hpp (original)
+++ branches/proto/v3/boost/accumulators/numeric/functional.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -97,7 +97,10 @@
         }; \
         template<typename Arg, typename EnableIf> \
         struct Name ## _base \
- : std::unary_function<Arg, typename result_of_ ## Name<Arg>::type> \
+ : std::unary_function< \
+ typename remove_const<Arg>::type \
+ , typename result_of_ ## Name<Arg>::type \
+ > \
         { \
             typename result_of_ ## Name<Arg>::type operator ()(Arg &arg) const \
             { \
@@ -133,7 +136,11 @@
         }; \
         template<typename Left, typename Right, typename EnableIf> \
         struct Name ## _base \
- : std::binary_function<Left, Right, typename result_of_ ## Name<Left, Right>::type> \
+ : std::binary_function< \
+ typename remove_const<Left>::type \
+ , typename remove_const<Right>::type \
+ , typename result_of_ ## Name<Left, Right>::type \
+ > \
         { \
             typename result_of_ ## Name<Left, Right>::type \
             operator ()(Left &left, Right &right) const \
@@ -421,20 +428,20 @@
     }
 
     template<typename T>
- struct empty
+ struct default_
     {
- typedef empty type;
+ typedef default_ type;
         typedef T value_type;
         static T const value;
 
         operator T const & () const
         {
- return empty::value;
+ return default_::value;
         }
     };
 
     template<typename T>
- T const empty<T>::value = T();
+ T const default_<T>::value = T();
 
     template<typename T>
     struct one
@@ -469,13 +476,13 @@
     T const zero<T>::value = T();
 
     template<typename T>
- struct one_or_empty
- : mpl::if_<is_empty<T>, empty<T>, one<T> >::type
+ struct one_or_default
+ : mpl::if_<is_empty<T>, default_<T>, one<T> >::type
     {};
 
     template<typename T>
- struct zero_or_empty
- : mpl::if_<is_empty<T>, empty<T>, zero<T> >::type
+ struct zero_or_default
+ : mpl::if_<is_empty<T>, default_<T>, zero<T> >::type
     {};
 
 }} // namespace boost::numeric

Modified: branches/proto/v3/boost/accumulators/numeric/functional_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/numeric/functional_fwd.hpp (original)
+++ branches/proto/v3/boost/accumulators/numeric/functional_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -202,7 +202,7 @@
     promote(From const &from);
 
     template<typename T>
- struct empty;
+ struct default_;
 
     template<typename T>
     struct one;
@@ -211,10 +211,10 @@
     struct zero;
 
     template<typename T>
- struct one_or_empty;
+ struct one_or_default;
 
     template<typename T>
- struct zero_or_empty;
+ struct zero_or_default;
 
 }} // namespace boost::numeric
 

Modified: branches/proto/v3/boost/accumulators/statistics/covariance.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/covariance.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/covariance.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -18,7 +18,6 @@
 #include <boost/range.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/mpl/placeholders.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <boost/numeric/ublas/matrix.hpp>
 #include <boost/type_traits/is_scalar.hpp>
@@ -62,7 +61,7 @@
>
>
         {
- typedef
+ typedef
                 ublas::matrix<
                     typename functional::multiplies<
                         typename Left::value_type
@@ -78,7 +77,7 @@
                 std::size_t right_size = right.size();
                 result_type result(left_size, right_size);
                 for (std::size_t i = 0; i < left_size; ++i)
- for (std::size_t j = 0; j < right_size; ++j)
+ for (std::size_t j = 0; j < right_size; ++j)
                         result(i,j) = numeric::multiplies(left[i], right[j]);
                 return result;
             }
@@ -110,13 +109,13 @@
     /**
         @brief Covariance Estimator
 
- An iterative Monte Carlo estimator for the covariance \f$\mathrm{Cov}(X,X')\f$, where \f$X\f$ is a sample
+ An iterative Monte Carlo estimator for the covariance \f$\mathrm{Cov}(X,X')\f$, where \f$X\f$ is a sample
         and \f$X'\f$ is a variate, is given by:
 
         \f[
             \hat{c}_n = \frac{n-1}{n} \hat{c}_{n-1} + \frac{1}{n-1}(X_n - \hat{\mu}_n)(X_n' - \hat{\mu}_n'),\quad n\ge2,\quad\hat{c}_1 = 0,
         \f]
-
+
         \f$\hat{\mu}_n\f$ and \f$\hat{\mu}_n'\f$ being the means of the samples and variates.
     */
     template<typename Sample, typename VariateType, typename VariateTag>
@@ -127,7 +126,7 @@
         typedef typename numeric::functional::average<VariateType, std::size_t>::result_type variate_type;
         // for boost::result_of
         typedef typename numeric::functional::outer_product<sample_type, variate_type>::result_type result_type;
-
+
         template<typename Args>
         covariance_impl(Args const &args)
           : cov_(
@@ -138,16 +137,16 @@
             )
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             std::size_t cnt = count(args);
-
+
             if (cnt > 1)
             {
                 extractor<tag::mean_of_variates<VariateType, VariateTag> > const some_mean_of_variates = {};
-
+
                 this->cov_ = this->cov_*(cnt-1.)/cnt
                            + numeric::outer_product(
                                  some_mean_of_variates(args) - args[parameter::keyword<VariateTag>::get()]
@@ -164,7 +163,7 @@
     private:
         result_type cov_;
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -177,9 +176,9 @@
       : depends_on<count, mean, mean_of_variates<VariateType, VariateTag> >
     {
         typedef accumulators::impl::covariance_impl<mpl::_1, VariateType, VariateTag> impl;
- };
-
- struct abstract_covariance
+ };
+
+ struct abstract_covariance
       : depends_on<>
     {
     };

Modified: branches/proto/v3/boost/accumulators/statistics/density.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/density.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/density.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -35,23 +35,23 @@
 BOOST_PARAMETER_NESTED_KEYWORD(tag, density_num_bins, num_bins)
 
 namespace impl
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // density_impl
     // density histogram
     /**
         @brief Histogram density estimator
 
- The histogram density estimator returns a histogram of the sample distribution. The positions and sizes of the bins
- are determined using a specifiable number of cached samples (cache_size). The range between the minimum and the
- maximum of the cached samples is subdivided into a specifiable number of bins (num_bins) of same size. Additionally,
- an under- and an overflow bin is added to capture future under- and overflow samples. Once the bins are determined,
- the cached samples and all subsequent samples are added to the correct bins. At the end, a range of std::pair is
- return, where each pair contains the position of the bin (lower bound) and the samples count (normalized with the
+ The histogram density estimator returns a histogram of the sample distribution. The positions and sizes of the bins
+ are determined using a specifiable number of cached samples (cache_size). The range between the minimum and the
+ maximum of the cached samples is subdivided into a specifiable number of bins (num_bins) of same size. Additionally,
+ an under- and an overflow bin is added to capture future under- and overflow samples. Once the bins are determined,
+ the cached samples and all subsequent samples are added to the correct bins. At the end, a range of std::pair is
+ return, where each pair contains the position of the bin (lower bound) and the samples count (normalized with the
         total number of samples).
-
+
         @param density_cache_size Number of first samples used to determine min and max.
- @param density_num_bins Number of bins (two additional bins collect under- and overflow samples).
+ @param density_num_bins Number of bins (two additional bins collect under- and overflow samples).
     */
     template<typename Sample>
     struct density_impl
@@ -62,7 +62,7 @@
         typedef std::vector<float_type> array_type;
         // for boost::result_of
         typedef iterator_range<typename histogram_type::iterator> result_type;
-
+
         template<typename Args>
         density_impl(Args const &args)
             : cache_size(args[density_cache_size])
@@ -80,35 +80,35 @@
             , is_dirty(true)
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             this->is_dirty = true;
-
+
             std::size_t cnt = count(args);
-
+
             // Fill up cache with cache_size first samples
             if (cnt <= this->cache_size)
             {
                 this->cache[cnt - 1] = args[sample];
             }
-
- // Once cache_size samples have been accumulated, create num_bins bins of same size between
- // the minimum and maximum of the cached samples as well as an under- and and an overflow bin.
+
+ // Once cache_size samples have been accumulated, create num_bins bins of same size between
+ // the minimum and maximum of the cached samples as well as an under- and and an overflow bin.
             // Store their lower bounds (bin_positions) and fill the bins with the cached samples (samples_in_bin).
             if (cnt == this->cache_size)
             {
                 float_type minimum = numeric::average((min)(args), (std::size_t)1);
                 float_type maximum = numeric::average((max)(args), (std::size_t)1);
- float_type bin_size = numeric::average(maximum - minimum, this->num_bins );
-
+ float_type bin_size = numeric::average(maximum - minimum, this->num_bins );
+
                 // determine bin positions (their lower bounds)
- for (std::size_t i = 0; i < this->num_bins + 2; ++i)
+ for (std::size_t i = 0; i < this->num_bins + 2; ++i)
                 {
                     this->bin_positions[i] = minimum + (i - 1.) * bin_size;
                 }
-
+
                 for (typename array_type::const_iterator iter = this->cache.begin(); iter != this->cache.end(); ++iter)
                 {
                     if (*iter < this->bin_positions[1])
@@ -118,7 +118,7 @@
                     else if (*iter >= this->bin_positions[this->num_bins + 1])
                     {
                         ++(this->samples_in_bin[this->num_bins + 1]);
- }
+ }
                     else
                     {
                         typename array_type::iterator it = std::upper_bound(
@@ -126,7 +126,7 @@
                           , this->bin_positions.end()
                           , *iter
                         );
-
+
                         std::size_t d = std::distance(this->bin_positions.begin(), it);
                         ++(this->samples_in_bin[d - 1]);
                     }
@@ -150,11 +150,11 @@
                       , this->bin_positions.end()
                       , args[sample]
                     );
-
+
                     std::size_t d = std::distance(this->bin_positions.begin(), it);
                     ++(this->samples_in_bin[d - 1]);
                 }
- }
+ }
         }
 
         template<typename Args>
@@ -163,17 +163,17 @@
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 // creates a vector of std::pair where each pair i holds
                 // the values bin_positions[i] (x-axis of histogram) and
                 // samples_in_bin[i] / cnt (y-axis of histogram).
-
+
                 for (std::size_t i = 0; i < this->num_bins + 2; ++i)
                 {
                     this->histogram[i] = std::make_pair(this->bin_positions[i], numeric::average(this->samples_in_bin[i], count(args)));
                 }
             }
- // returns a range of pairs
+ // returns a range of pairs
             return make_iterator_range(this->histogram);
         }
 
@@ -202,7 +202,7 @@
         /// INTERNAL ONLY
         ///
         typedef accumulators::impl::density_impl<mpl::_1> impl;
-
+
         #ifdef BOOST_ACCUMULATORS_DOXYGEN_INVOKED
         /// tag::density::cache_size named parameter
         /// tag::density::num_bins named parameter
@@ -222,7 +222,7 @@
 
 using extract::density;
 
-// So that density can be automatically substituted
+// So that density can be automatically substituted
 // with weighted_density when the weight parameter is non-void.
 template<>
 struct as_weighted_feature<tag::density>

Modified: branches/proto/v3/boost/accumulators/statistics/extended_p_square.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/extended_p_square.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/extended_p_square.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -43,15 +43,15 @@
         @brief Multiple quantile estimation with the extended \f$P^2\f$ algorithm
 
         Extended \f$P^2\f$ algorithm for estimation of several quantiles without storing samples.
- Assume that \f$m\f$ quantiles \f$\xi_{p_1}, \ldots, \xi_{p_m}\f$ are to be estimated.
- Instead of storing the whole sample cumulative distribution, the algorithm maintains only
- \f$m+2\f$ principal markers and \f$m+1\f$ middle markers, whose positions are updated
- with each sample and whose heights are adjusted (if necessary) using a piecewise-parablic
- formula. The heights of these central markers are the current estimates of the quantiles
+ Assume that \f$m\f$ quantiles \f$\xi_{p_1}, \ldots, \xi_{p_m}\f$ are to be estimated.
+ Instead of storing the whole sample cumulative distribution, the algorithm maintains only
+ \f$m+2\f$ principal markers and \f$m+1\f$ middle markers, whose positions are updated
+ with each sample and whose heights are adjusted (if necessary) using a piecewise-parablic
+ formula. The heights of these central markers are the current estimates of the quantiles
         and returned as an iterator range.
 
         For further details, see
-
+
         K. E. E. Raatikainen, Simultaneous estimation of several quantiles, Simulation, Volume 49,
         Number 4 (October), 1986, p. 159-164.
 
@@ -78,7 +78,7 @@
>
>
> result_type;
-
+
         template<typename Args>
         extended_p_square_impl(Args const &args)
           : probabilities(
@@ -125,7 +125,7 @@
 
             // m+2 principal markers and m+1 middle markers
             std::size_t num_markers = 2 * this->probabilities.size() + 3;
-
+
             // first accumulate num_markers samples
             if(cnt <= num_markers)
             {
@@ -222,8 +222,7 @@
             }
         }
 
- template<typename Args>
- result_type result(Args const &args) const
+ result_type result(dont_care) const
         {
             // for i in [1,probabilities.size()], return heights[i * 2]
             detail::times2_iterator idx_begin = detail::make_times2_iterator(1);
@@ -273,7 +272,7 @@
 
 using extract::extended_p_square;
 
-// So that extended_p_square can be automatically substituted with
+// So that extended_p_square can be automatically substituted with
 // weighted_extended_p_square when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::extended_p_square>

Modified: branches/proto/v3/boost/accumulators/statistics/extended_p_square_quantile.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/extended_p_square_quantile.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/extended_p_square_quantile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,6 +31,11 @@
 #include <boost/accumulators/statistics/weighted_extended_p_square.hpp>
 #include <boost/accumulators/statistics/times2_iterator.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
@@ -42,7 +47,7 @@
     /**
         @brief Quantile estimation using the extended \f$P^2\f$ algorithm for weighted and unweighted samples
 
- Uses the quantile estimates calculated by the extended \f$P^2\f$ algorithm to compute
+ Uses the quantile estimates calculated by the extended \f$P^2\f$ algorithm to compute
         intermediate quantile estimates by means of quadratic interpolation.
 
         @param quantile_probability The probability of the quantile to be estimated.
@@ -63,7 +68,7 @@
> range_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         template<typename Args>
         extended_p_square_quantile_impl(Args const &args)
           : probabilities(
@@ -83,18 +88,18 @@
                   , tag::extended_p_square
>::type
             extended_p_square_tag;
-
+
             extractor<extended_p_square_tag> const some_extended_p_square = {};
-
+
             array_type heights(some_extended_p_square(args).size());
             std::copy(some_extended_p_square(args).begin(), some_extended_p_square(args).end(), heights.begin());
 
             this->probability = args[quantile_probability];
-
+
             typename array_type::const_iterator iter_probs = std::lower_bound(this->probabilities.begin(), this->probabilities.end(), this->probability);
             std::size_t dist = std::distance(this->probabilities.begin(), iter_probs);
             typename array_type::const_iterator iter_heights = heights.begin() + dist;
-
+
             // If this->probability is not in a valid range return NaN or throw exception
             if (this->probability < *this->probabilities.begin() || this->probability > *(this->probabilities.end() - 1))
             {
@@ -112,7 +117,7 @@
                 }
 
             }
-
+
             if (*iter_probs == this->probability)
             {
                 return heights[dist];
@@ -120,7 +125,7 @@
             else
             {
                 result_type result;
-
+
                 if (is_same<Impl2, linear>::value)
                 {
                     /////////////////////////////////////////////////////////////////////////////////
@@ -130,10 +135,10 @@
                     float_type p0 = *(iter_probs - 1);
                     float_type h1 = *iter_heights;
                     float_type h0 = *(iter_heights - 1);
-
+
                     float_type a = numeric::average(h1 - h0, p1 - p0);
                     float_type b = h1 - p1 * a;
-
+
                     result = a * this->probability + b;
                 }
                 else
@@ -143,7 +148,7 @@
                     //
                     float_type p0, p1, p2;
                     float_type h0, h1, h2;
-
+
                     if ( (dist == 1 || *iter_probs - this->probability <= this->probability - *(iter_probs - 1) ) && dist != this->probabilities.size() - 1 )
                     {
                         p0 = *(iter_probs - 1);
@@ -162,28 +167,28 @@
                         h1 = *(iter_heights - 1);
                         h2 = *iter_heights;
                     }
-
+
                     float_type hp21 = numeric::average(h2 - h1, p2 - p1);
                     float_type hp10 = numeric::average(h1 - h0, p1 - p0);
                     float_type p21 = numeric::average(p2 * p2 - p1 * p1, p2 - p1);
                     float_type p10 = numeric::average(p1 * p1 - p0 * p0, p1 - p0);
-
+
                     float_type a = numeric::average(hp21 - hp10, p21 - p10);
                     float_type b = hp21 - a * p21;
                     float_type c = h2 - a * p2 * p2 - b * p2;
-
+
                     result = a * this->probability * this-> probability + b * this->probability + c;
                 }
-
+
                 return result;
             }
-
+
         }
     private:
-
+
         array_type probabilities;
         mutable float_type probability;
-
+
     };
 
 } // namespace impl
@@ -261,7 +266,7 @@
 };
 
 // for the purposes of feature-based dependency resolution,
-// extended_p_square_quantile and weighted_extended_p_square_quantile
+// extended_p_square_quantile and weighted_extended_p_square_quantile
 // provide the same feature as quantile
 template<>
 struct feature_of<tag::extended_p_square_quantile>
@@ -273,7 +278,7 @@
   : feature_of<tag::quantile>
 {
 };
-// So that extended_p_square_quantile can be automatically substituted with
+// So that extended_p_square_quantile can be automatically substituted with
 // weighted_extended_p_square_quantile when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::extended_p_square_quantile>
@@ -287,7 +292,7 @@
 {
 };
 
-// So that extended_p_square_quantile_quadratic can be automatically substituted with
+// So that extended_p_square_quantile_quadratic can be automatically substituted with
 // weighted_extended_p_square_quantile_quadratic when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::extended_p_square_quantile_quadratic>
@@ -302,4 +307,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/kurtosis.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/kurtosis.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/kurtosis.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,18 +28,18 @@
     /**
         @brief Kurtosis estimation
 
- The kurtosis of a sample distribution is defined as the ratio of the 4th central moment and the square of the 2nd central
- moment (the variance) of the samples, minus 3. The term \f$ -3 \f$ is added in order to ensure that the normal distribution
+ The kurtosis of a sample distribution is defined as the ratio of the 4th central moment and the square of the 2nd central
+ moment (the variance) of the samples, minus 3. The term \f$ -3 \f$ is added in order to ensure that the normal distribution
         has zero kurtosis. The kurtosis can also be expressed by the simple moments:
-
+
         \f[
- \hat{g}_2 =
+ \hat{g}_2 =
                 \frac
                 {\widehat{m}_n^{(4)}-4\widehat{m}_n^{(3)}\hat{\mu}_n+6\widehat{m}_n^{(2)}\hat{\mu}_n^2-3\hat{\mu}_n^4}
                 {\left(\widehat{m}_n^{(2)} - \hat{\mu}_n^{2}\right)^2} - 3,
         \f]
-
- where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
+
+ where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
         \f$ n \f$ samples.
     */
     template<typename Sample>
@@ -57,10 +57,10 @@
             return numeric::average(
                         moment<4>(args)
                         - 4. * moment<3>(args) * mean(args)
- + 6. * moment<2>(args) * mean(args) * mean(args)
+ + 6. * moment<2>(args) * mean(args) * mean(args)
                         - 3. * mean(args) * mean(args) * mean(args) * mean(args)
- , ( moment<2>(args) - mean(args) * mean(args) )
- * ( moment<2>(args) - mean(args) * mean(args) )
+ , ( moment<2>(args) - mean(args) * mean(args) )
+ * ( moment<2>(args) - mean(args) * mean(args) )
                     ) - 3.;
         }
     };
@@ -91,7 +91,7 @@
 
 using extract::kurtosis;
 
-// So that kurtosis can be automatically substituted with
+// So that kurtosis can be automatically substituted with
 // weighted_kurtosis when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::kurtosis>

Modified: branches/proto/v3/boost/accumulators/statistics/mean.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/mean.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/mean.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -285,9 +285,7 @@
 //{
 // template<typename Args>
 // droppable_accumulator(Args const &args)
-// : droppable_accumulator_base<
-// with_cached_result<impl::mean_impl<Sample, SumFeature> >
-// >(args)
+// : droppable_accumulator::base(args)
 // {
 // }
 //};

Modified: branches/proto/v3/boost/accumulators/statistics/median.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/median.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/median.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,7 +31,7 @@
     //
     /**
         @brief Median estimation based on the \f$P^2\f$ quantile estimator
-
+
         The \f$P^2\f$ algorithm is invoked with a quantile probability of 0.5.
     */
     template<typename Sample>
@@ -40,9 +40,9 @@
     {
         // for boost::result_of
         typedef typename numeric::functional::average<Sample, std::size_t>::result_type result_type;
-
+
         median_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
@@ -54,9 +54,9 @@
     //
     /**
         @brief Median estimation based on the density estimator
-
- The algorithm determines the bin in which the \f$0.5*cnt\f$-th sample lies, \f$cnt\f$ being
- the total number of samples. It returns the approximate horizontal position of this sample,
+
+ The algorithm determines the bin in which the \f$0.5*cnt\f$-th sample lies, \f$cnt\f$ being
+ the total number of samples. It returns the approximate horizontal position of this sample,
         based on a linear interpolation inside the bin.
     */
     template<typename Sample>
@@ -68,7 +68,7 @@
         typedef iterator_range<typename histogram_type::iterator> range_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         template<typename Args>
         with_density_median_impl(Args const &args)
           : sum(numeric::average(args[sample | Sample()], (std::size_t)1))
@@ -81,14 +81,14 @@
             this->is_dirty = true;
         }
 
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 std::size_t cnt = count(args);
                 range_type histogram = density(args);
                 typename range_type::iterator it = histogram.begin();
@@ -101,7 +101,7 @@
                 float_type over = numeric::average(this->sum - 0.5 * cnt, it->second * cnt);
                 this->median = it->first * over + (it + 1)->first * (1. - over);
             }
-
+
             return this->median;
         }
 
@@ -116,9 +116,9 @@
     //
     /**
         @brief Median estimation based on the \f$P^2\f$ cumulative distribution estimator
-
- The algorithm determines the first (leftmost) bin with a height exceeding 0.5. It
- returns the approximate horizontal position of where the cumulative distribution
+
+ The algorithm determines the first (leftmost) bin with a height exceeding 0.5. It
+ returns the approximate horizontal position of where the cumulative distribution
         equals 0.5, based on a linear interpolation inside the bin.
     */
     template<typename Sample>
@@ -130,7 +130,7 @@
         typedef iterator_range<typename histogram_type::iterator> range_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         with_p_square_cumulative_distribution_median_impl(dont_care)
           : is_dirty(true)
         {
@@ -140,14 +140,14 @@
         {
             this->is_dirty = true;
         }
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 range_type histogram = p_square_cumulative_distribution(args);
                 typename range_type::iterator it = histogram.begin();
                 while (it->second < 0.5)
@@ -157,15 +157,15 @@
                 float_type over = numeric::average(it->second - 0.5, it->second - (it - 1)->second);
                 this->median = it->first * over + (it + 1)->first * ( 1. - over );
             }
-
+
             return this->median;
         }
     private:
-
+
         mutable bool is_dirty;
         mutable float_type median;
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -235,8 +235,8 @@
     typedef tag::with_p_square_cumulative_distribution_median type;
 };
 
-// for the purposes of feature-based dependency resolution,
-// with_density_median and with_p_square_cumulative_distribution_median
+// for the purposes of feature-based dependency resolution,
+// with_density_median and with_p_square_cumulative_distribution_median
 // provide the same feature as median
 template<>
 struct feature_of<tag::with_density_median>

Modified: branches/proto/v3/boost/accumulators/statistics/moment.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/moment.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/moment.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -105,7 +105,7 @@
 
 using extract::moment;
 
-// So that moment<N> can be automatically substituted with
+// So that moment<N> can be automatically substituted with
 // weighted_moment<N> when the weight parameter is non-void
 template<int N>
 struct as_weighted_feature<tag::moment<N> >

Modified: branches/proto/v3/boost/accumulators/statistics/p_square_cumulative_distribution.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/p_square_cumulative_distribution.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/p_square_cumulative_distribution.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -35,17 +35,17 @@
     /**
         @brief Histogram calculation of the cumulative distribution with the \f$P^2\f$ algorithm
 
- A histogram of the sample cumulative distribution is computed dynamically without storing samples
- based on the \f$ P^2 \f$ algorithm. The returned histogram has a specifiable amount (num_cells)
+ A histogram of the sample cumulative distribution is computed dynamically without storing samples
+ based on the \f$ P^2 \f$ algorithm. The returned histogram has a specifiable amount (num_cells)
         equiprobable (and not equal-sized) cells.
 
         For further details, see
-
- R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and
- histograms without storing observations, Communications of the ACM,
+
+ R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and
+ histograms without storing observations, Communications of the ACM,
         Volume 28 (October), Number 10, 1985, p. 1076-1085.
 
- @param p_square_cumulative_distribution_num_cells.
+ @param p_square_cumulative_distribution_num_cells.
     */
     template<typename Sample>
     struct p_square_cumulative_distribution_impl
@@ -56,7 +56,7 @@
         typedef std::vector<std::pair<float_type, float_type> > histogram_type;
         // for boost::result_of
         typedef iterator_range<typename histogram_type::iterator> result_type;
-
+
         template<typename Args>
         p_square_cumulative_distribution_impl(Args const &args)
           : num_cells(args[p_square_cumulative_distribution_num_cells])
@@ -68,20 +68,20 @@
           , is_dirty(true)
         {
             std::size_t b = this->num_cells;
-
+
             for (std::size_t i = 0; i < b + 1; ++i)
             {
                 this->actual_positions[i] = i + 1.;
                 this->desired_positions[i] = i + 1.;
                 this->positions_increments[i] = numeric::average(i, b);
- }
+ }
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             this->is_dirty = true;
-
+
             std::size_t cnt = count(args);
             std::size_t sample_cell = 1; // k
             std::size_t b = this->num_cells;
@@ -90,13 +90,13 @@
             if (cnt <= b + 1)
             {
                 this->heights[cnt - 1] = args[sample];
-
+
                 // complete the initialization of heights by sorting
                 if (cnt == b + 1)
                 {
                     std::sort(this->heights.begin(), this->heights.end());
                 }
- }
+ }
             else
             {
                 // find cell k such that heights[k-1] <= args[sample] < heights[k] and adjust extreme values
@@ -118,46 +118,46 @@
                       , this->heights.end()
                       , args[sample]
                     );
-
+
                     sample_cell = std::distance(this->heights.begin(), it);
                 }
-
+
                 // increment positions of markers above sample_cell
                 for (std::size_t i = sample_cell; i < b + 1; ++i)
                 {
                     ++this->actual_positions[i];
                 }
-
+
                 // update desired position of markers 2 to num_cells + 1
                 // (desired position of first marker is always 1)
                 for (std::size_t i = 1; i < b + 1; ++i)
                 {
                     this->desired_positions[i] += this->positions_increments[i];
                 }
-
+
                 // adjust heights of markers 2 to num_cells if necessary
                 for (std::size_t i = 1; i < b; ++i)
                 {
                     // offset to desire position
                     float_type d = this->desired_positions[i] - this->actual_positions[i];
-
+
                     // offset to next position
                     float_type dp = this->actual_positions[i + 1] - this->actual_positions[i];
-
+
                     // offset to previous position
                     float_type dm = this->actual_positions[i - 1] - this->actual_positions[i];
-
+
                     // height ds
                     float_type hp = (this->heights[i + 1] - this->heights[i]) / dp;
                     float_type hm = (this->heights[i - 1] - this->heights[i]) / dm;
-
+
                     if ( ( d >= 1. && dp > 1. ) || ( d <= -1. && dm < -1. ) )
                     {
                         short sign_d = static_cast<short>(d / std::abs(d));
-
+
                         // try adjusting heights[i] using p-squared formula
                         float_type h = this->heights[i] + sign_d / (dp - dm) * ( (sign_d - dm) * hp + (dp - sign_d) * hm );
-
+
                         if ( this->heights[i - 1] < h && h < this->heights[i + 1] )
                         {
                             this->heights[i] = h;
@@ -182,17 +182,17 @@
 
         template<typename Args>
         result_type result(Args const &args) const
- {
+ {
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 // creates a vector of std::pair where each pair i holds
                 // the values heights[i] (x-axis of histogram) and
                 // actual_positions[i] / cnt (y-axis of histogram)
-
+
                 std::size_t cnt = count(args);
-
+
                 for (std::size_t i = 0; i < this->histogram.size(); ++i)
                 {
                     this->histogram[i] = std::make_pair(this->heights[i], numeric::average(this->actual_positions[i], cnt));
@@ -239,7 +239,7 @@
 
 using extract::p_square_cumulative_distribution;
 
-// So that p_square_cumulative_distribution can be automatically substituted with
+// So that p_square_cumulative_distribution can be automatically substituted with
 // weighted_p_square_cumulative_distribution when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::p_square_cumulative_distribution>

Modified: branches/proto/v3/boost/accumulators/statistics/p_square_quantile.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/p_square_quantile.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/p_square_quantile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,10 +34,10 @@
         @brief Single quantile estimation with the \f$P^2\f$ algorithm
 
         The \f$P^2\f$ algorithm estimates a quantile dynamically without storing samples. Instead of
- storing the whole sample cumulative distribution, only five points (markers) are stored. The heights
- of these markers are the minimum and the maximum of the samples and the current estimates of the
- \f$(p/2)\f$-, \f$p\f$- and \f$(1+p)/2\f$-quantiles. Their positions are equal to the number
- of samples that are smaller or equal to the markers. Each time a new samples is recorded, the
+ storing the whole sample cumulative distribution, only five points (markers) are stored. The heights
+ of these markers are the minimum and the maximum of the samples and the current estimates of the
+ \f$(p/2)\f$-, \f$p\f$- and \f$(1+p)/2\f$-quantiles. Their positions are equal to the number
+ of samples that are smaller or equal to the markers. Each time a new samples is recorded, the
         positions of the markers are updated and if necessary their heights are adjusted using a piecewise-
         parabolic formula.
 
@@ -76,7 +76,7 @@
             this->desired_positions[2] = 1. + 4. * this->p;
             this->desired_positions[3] = 3. + 2. * this->p;
             this->desired_positions[4] = 5.;
-
+
             this->positions_increments[0] = 0.;
             this->positions_increments[1] = this->p / 2.;
             this->positions_increments[2] = this->p;
@@ -103,7 +103,7 @@
             else
             {
                 std::size_t sample_cell = 1; // k
-
+
                 // find cell k such that heights[k-1] <= args[sample] < heights[k] and ajust extreme values
                 if (args[sample] < this->heights[0])
                 {
@@ -185,8 +185,7 @@
             }
         }
 
- template<typename Args>
- result_type result(Args const &args) const
+ result_type result(dont_care) const
         {
             return this->heights[2];
         }
@@ -225,7 +224,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // extract::p_square_quantile
 // extract::p_square_quantile_for_median
-//
+//
 namespace extract
 {
     extractor<tag::p_square_quantile> const p_square_quantile = {};
@@ -235,7 +234,7 @@
 using extract::p_square_quantile;
 using extract::p_square_quantile_for_median;
 
-// So that p_square_quantile can be automatically substituted with
+// So that p_square_quantile can be automatically substituted with
 // weighted_p_square_quantile when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::p_square_quantile>

Modified: branches/proto/v3/boost/accumulators/statistics/peaks_over_threshold.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/peaks_over_threshold.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/peaks_over_threshold.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,13 +12,16 @@
 #include <limits>
 #include <numeric>
 #include <functional>
+#include <cmath> // pow
+#include <sstream> // stringstream
+#include <stdexcept> // runtime_error
+#include <boost/throw_exception.hpp>
 #include <boost/range.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/int.hpp>
 #include <boost/mpl/placeholders.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/tuple/tuple.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/accumulators/framework/accumulator_base.hpp>
 #include <boost/accumulators/framework/extractor.hpp>
 #include <boost/accumulators/numeric/functional.hpp>
@@ -29,6 +32,11 @@
 #include <boost/accumulators/statistics/count.hpp>
 #include <boost/accumulators/statistics/tail.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
@@ -39,26 +47,26 @@
 BOOST_PARAMETER_NESTED_KEYWORD(tag, pot_threshold_probability, threshold_probability)
 
 namespace impl
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // peaks_over_threshold_impl
     // works with an explicit threshold value and does not depend on order statistics
     /**
         @brief Peaks over Threshold Method for Quantile and Tail Mean Estimation
-
- According to the theorem of Pickands-Balkema-de Haan, the distribution function \f$F_u(x)\f$ of
- the excesses \f$x\f$ over some sufficiently high threshold \f$u\f$ of a distribution function \f$F(x)\f$
+
+ According to the theorem of Pickands-Balkema-de Haan, the distribution function \f$F_u(x)\f$ of
+ the excesses \f$x\f$ over some sufficiently high threshold \f$u\f$ of a distribution function \f$F(x)\f$
         may be approximated by a generalized Pareto distribution
         \f[
             G_{\xi,\beta}(x) =
             \left\{
             \begin{array}{ll}
                 \beta^{-1}\left(1+\frac{\xi x}{\beta}\right)^{-1/\xi-1} & \textrm{if }\xi\neq0\\
- \beta^{-1}\exp\left(-\frac{x}{\beta}\right) & \textrm{if }\xi=0,
- \end{array}
+ \beta^{-1}\exp\left(-\frac{x}{\beta}\right) & \textrm{if }\xi=0,
+ \end{array}
             \right.
         \f]
- with suitable parameters \f$\xi\f$ and \f$\beta\f$ that can be estimated, e.g., with the method of moments, cf.
+ with suitable parameters \f$\xi\f$ and \f$\beta\f$ that can be estimated, e.g., with the method of moments, cf.
         Hosking and Wallis (1987),
         \f[
             \begin{array}{lll}
@@ -66,22 +74,22 @@
             \hat{\beta} & = & \frac{\hat{\mu}-u}{2}\left[\frac{(\hat{\mu}-u)^2}{\hat{\sigma}^2}+1\right],
             \end{array}
         \f]
- \f$\hat{\mu}\f$ and \f$\hat{\sigma}^2\f$ being the empirical mean and variance of the samples over
- the threshold \f$u\f$. Equivalently, the distribution function
- \f$F_u(x-u)\f$ of the exceedances \f$x-u\f$ can be approximated by
- \f$G_{\xi,\beta}(x-u)=G_{\xi,\beta,u}(x)\f$. Since for \f$x\geq u\f$ the distribution function \f$F(x)\f$
+ \f$\hat{\mu}\f$ and \f$\hat{\sigma}^2\f$ being the empirical mean and variance of the samples over
+ the threshold \f$u\f$. Equivalently, the distribution function
+ \f$F_u(x-u)\f$ of the exceedances \f$x-u\f$ can be approximated by
+ \f$G_{\xi,\beta}(x-u)=G_{\xi,\beta,u}(x)\f$. Since for \f$x\geq u\f$ the distribution function \f$F(x)\f$
         can be written as
         \f[
             F(x) = [1 - \P(X \leq u)]F_u(x - u) + \P(X \leq u)
         \f]
- and the probability \f$\P(X \leq u)\f$ can be approximated by the empirical distribution function
- \f$F_n(u)\f$ evaluated at \f$u\f$, an estimator of \f$F(x)\f$ is given by
+ and the probability \f$\P(X \leq u)\f$ can be approximated by the empirical distribution function
+ \f$F_n(u)\f$ evaluated at \f$u\f$, an estimator of \f$F(x)\f$ is given by
         \f[
             \widehat{F}(x) = [1 - F_n(u)]G_{\xi,\beta,u}(x) + F_n(u).
         \f]
- It can be shown that \f$\widehat{F}(x)\f$ is a generalized
- Pareto distribution \f$G_{\xi,\bar{\beta},\bar{u}}(x)\f$ with \f$\bar{\beta}=\beta[1-F_n(u)]^{\xi}\f$
- and \f$\bar{u}=u-\bar{\beta}\left\{[1-F_n(u)]^{-\xi}-1\right\}/\xi\f$. By inverting \f$\widehat{F}(x)\f$,
+ It can be shown that \f$\widehat{F}(x)\f$ is a generalized
+ Pareto distribution \f$G_{\xi,\bar{\beta},\bar{u}}(x)\f$ with \f$\bar{\beta}=\beta[1-F_n(u)]^{\xi}\f$
+ and \f$\bar{u}=u-\bar{\beta}\left\{[1-F_n(u)]^{-\xi}-1\right\}/\xi\f$. By inverting \f$\widehat{F}(x)\f$,
         one obtains an estimator for the \f$\alpha\f$-quantile,
         \f[
             \hat{q}_{\alpha} = \bar{u} + \frac{\bar{\beta}}{\xi}\left[(1-\alpha)^{-\xi}-1\right],
@@ -91,19 +99,19 @@
             \widehat{CTM}_{\alpha} = \hat{q}_{\alpha} - \frac{\bar{\beta}}{\xi-1}(1-\alpha)^{-\xi},
         \f]
         cf. McNeil and Frey (2000).
-
+
         Note that in case extreme values of the left tail are fitted, the distribution is mirrored with respect to the
- \f$y\f$ axis such that the left tail can be treated as a right tail. The computed fit parameters thus define
- the Pareto distribution that fits the mirrored left tail. When quantities like a quantile or a tail mean are
- computed using the fit parameters obtained from the mirrored data, the result is mirrored back, yielding the
+ \f$y\f$ axis such that the left tail can be treated as a right tail. The computed fit parameters thus define
+ the Pareto distribution that fits the mirrored left tail. When quantities like a quantile or a tail mean are
+ computed using the fit parameters obtained from the mirrored data, the result is mirrored back, yielding the
         correct result.
-
+
         For further details, see
-
- J. R. M. Hosking and J. R. Wallis, Parameter and quantile estimation for the generalized Pareto distribution,
+
+ J. R. M. Hosking and J. R. Wallis, Parameter and quantile estimation for the generalized Pareto distribution,
         Technometrics, Volume 29, 1987, p. 339-349
-
- A. J. McNeil and R. Frey, Estimation of Tail-Related Risk Measures for Heteroscedastic Financial Time Series:
+
+ A. J. McNeil and R. Frey, Estimation of Tail-Related Risk Measures for Heteroscedastic Financial Time Series:
         an Extreme Value Approach, Journal of Empirical Finance, Volume 7, 2000, p. 271-300
 
         @param quantile_probability
@@ -118,7 +126,7 @@
         typedef boost::tuple<float_type, float_type, float_type> result_type;
         // for left tail fitting, mirror the extreme values
         typedef mpl::int_<is_same<LeftRight, left>::value ? -1 : 1> sign;
-
+
         template<typename Args>
         peaks_over_threshold_impl(Args const &args)
           : Nu_(0)
@@ -129,12 +137,12 @@
           , is_dirty_(true)
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             this->is_dirty_ = true;
-
+
             if (sign::value * args[sample] > this->threshold_)
             {
                 this->mu_ += args[sample];
@@ -149,15 +157,15 @@
             if (this->is_dirty_)
             {
                 this->is_dirty_ = false;
-
+
                 std::size_t cnt = count(args);
-
+
                 this->mu_ = sign::value * numeric::average(this->mu_, this->Nu_);
                 this->sigma2_ = numeric::average(this->sigma2_, this->Nu_);
                 this->sigma2_ -= this->mu_ * this->mu_;
-
+
                 float_type threshold_probability = numeric::average(cnt - this->Nu_, cnt);
-
+
                 float_type tmp = numeric::average(( this->mu_ - this->threshold_ )*( this->mu_ - this->threshold_ ), this->sigma2_);
                 float_type xi_hat = 0.5 * ( 1. - tmp );
                 float_type beta_hat = 0.5 * ( this->mu_ - this->threshold_ ) * ( 1. + tmp );
@@ -165,7 +173,7 @@
                 float_type u_bar = this->threshold_ - beta_bar * ( std::pow(1. - threshold_probability, -xi_hat) - 1.)/xi_hat;
                 this->fit_parameters_ = boost::make_tuple(u_bar, beta_bar, xi_hat);
             }
-
+
             return this->fit_parameters_;
         }
 
@@ -185,7 +193,7 @@
         @brief Peaks over Threshold Method for Quantile and Tail Mean Estimation
 
         @sa peaks_over_threshold_impl
-
+
         @param quantile_probability
         @param pot_threshold_probability
     */
@@ -198,7 +206,7 @@
         typedef boost::tuple<float_type, float_type, float_type> result_type;
         // for left tail fitting, mirror the extreme values
         typedef mpl::int_<is_same<LeftRight, left>::value ? -1 : 1> sign;
-
+
         template<typename Args>
         peaks_over_threshold_prob_impl(Args const &args)
           : mu_(sign::value * numeric::average(args[sample | Sample()], (std::size_t)1))
@@ -208,30 +216,30 @@
           , is_dirty_(true)
         {
         }
-
+
         void operator ()(dont_care)
         {
             this->is_dirty_ = true;
         }
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             if (this->is_dirty_)
- {
+ {
                 this->is_dirty_ = false;
-
+
                 std::size_t cnt = count(args);
-
+
                 // the n'th cached sample provides an approximate threshold value u
                 std::size_t n = static_cast<std::size_t>(
                     std::ceil(
                         cnt * ( ( is_same<LeftRight, left>::value ) ? this->threshold_probability_ : 1. - this->threshold_probability_ )
                     )
                 );
-
+
                 // If n is in a valid range, return result, otherwise return NaN or throw exception
- if ( n >= tail(args).size())
+ if ( n >= static_cast<std::size_t>(tail(args).size()))
                 {
                     if (std::numeric_limits<float_type>::has_quiet_NaN)
                     {
@@ -252,21 +260,21 @@
                 else
                 {
                     float_type u = *(tail(args).begin() + n - 1) * sign::value;
-
+
                     // compute mean and variance of samples above/under threshold value u
                     for (std::size_t i = 0; i < n; ++i)
                     {
                         mu_ += *(tail(args).begin() + i);
                         sigma2_ += *(tail(args).begin() + i) * (*(tail(args).begin() + i));
                     }
-
+
                     this->mu_ = sign::value * numeric::average(this->mu_, n);
                     this->sigma2_ = numeric::average(this->sigma2_, n);
                     this->sigma2_ -= this->mu_ * this->mu_;
-
+
                     if (is_same<LeftRight, left>::value)
                         this->threshold_probability_ = 1. - this->threshold_probability_;
-
+
                     float_type tmp = numeric::average(( this->mu_ - u )*( this->mu_ - u ), this->sigma2_);
                     float_type xi_hat = 0.5 * ( 1. - tmp );
                     float_type beta_hat = 0.5 * ( this->mu_ - u ) * ( 1. + tmp );
@@ -275,7 +283,7 @@
                     this->fit_parameters_ = boost::make_tuple(u_bar, beta_bar, xi_hat);
                 }
             }
-
+
             return this->fit_parameters_;
         }
 
@@ -283,10 +291,10 @@
         mutable float_type mu_; // mean of samples above threshold u
         mutable float_type sigma2_; // variance of samples above threshold u
         mutable float_type threshold_probability_;
- mutable result_type fit_parameters_; // boost::tuple that stores fit parameters
+ mutable result_type fit_parameters_; // boost::tuple that stores fit parameters
         mutable bool is_dirty_;
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -303,7 +311,7 @@
         ///
         typedef accumulators::impl::peaks_over_threshold_impl<mpl::_1, LeftRight> impl;
     };
-
+
     template<typename LeftRight>
     struct peaks_over_threshold_prob
       : depends_on<count, tail<LeftRight> >
@@ -313,7 +321,7 @@
         ///
         typedef accumulators::impl::peaks_over_threshold_prob_impl<mpl::_1, LeftRight> impl;
     };
-
+
     struct abstract_peaks_over_threshold
       : depends_on<>
     {
@@ -356,7 +364,7 @@
 {
 };
 
-// So that peaks_over_threshold can be automatically substituted
+// So that peaks_over_threshold can be automatically substituted
 // with weighted_peaks_over_threshold when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::peaks_over_threshold<LeftRight> >
@@ -369,7 +377,7 @@
   : feature_of<tag::peaks_over_threshold<LeftRight> >
 {};
 
-// So that peaks_over_threshold_prob can be automatically substituted
+// So that peaks_over_threshold_prob can be automatically substituted
 // with weighted_peaks_over_threshold_prob when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::peaks_over_threshold_prob<LeftRight> >
@@ -384,4 +392,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/pot_quantile.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/pot_quantile.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/pot_quantile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,7 +17,6 @@
 #include <boost/mpl/if.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/mpl/placeholders.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/accumulators/framework/accumulator_base.hpp>
 #include <boost/accumulators/framework/extractor.hpp>
 #include <boost/accumulators/numeric/functional.hpp>
@@ -34,16 +33,16 @@
 {
     ///////////////////////////////////////////////////////////////////////////////
     // pot_quantile_impl
- //
+ //
     /**
         @brief Quantile Estimation based on Peaks over Threshold Method (for both left and right tails)
-
+
         Computes an estimate
         \f[
             \hat{q}_{\alpha} = \bar{u} + \frac{\bar{\beta}}{\xi}\left[(1-\alpha)^{-\xi}-1\right]
         \f]
- for a right or left extreme quantile, \f$\bar[u]\f$, \f$\bar{\beta}\f$ and \f$\xi\f$ being the parameters of the
- generalized Pareto distribution that approximates the right tail of the distribution (or the mirrored left tail,
+ for a right or left extreme quantile, \f$\bar[u]\f$, \f$\bar{\beta}\f$ and \f$\xi\f$ being the parameters of the
+ generalized Pareto distribution that approximates the right tail of the distribution (or the mirrored left tail,
         in case the left tail is used). In the latter case, the result is mirrored back, yielding the correct result.
     */
     template<typename Sample, typename Impl, typename LeftRight>
@@ -53,9 +52,9 @@
         typedef typename numeric::functional::average<Sample, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         pot_quantile_impl(dont_care)
- : sign_((is_same<LeftRight, left>::value) ? -1 : 1)
+ : sign_((is_same<LeftRight, left>::value) ? -1 : 1)
         {
         }
 
@@ -71,21 +70,21 @@
             peaks_over_threshold_tag;
 
             extractor<peaks_over_threshold_tag> const some_peaks_over_threshold = {};
-
+
             float_type u_bar = some_peaks_over_threshold(args).template get<0>();
             float_type beta_bar = some_peaks_over_threshold(args).template get<1>();
             float_type xi_hat = some_peaks_over_threshold(args).template get<2>();
-
- return this->sign_*(u_bar + beta_bar/xi_hat * ( std::pow(
- is_same<LeftRight, left>::value ? args[quantile_probability] : 1. - args[quantile_probability]
- , -xi_hat
- ) - 1.));
+
+ return this->sign_ * (u_bar + beta_bar/xi_hat * ( std::pow(
+ is_same<LeftRight, left>::value ? args[quantile_probability] : 1. - args[quantile_probability]
+ , -xi_hat
+ ) - 1.));
         }
 
     private:
         short sign_; // if the fit parameters from the mirrored left tail extreme values are used, mirror back the result
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -159,7 +158,7 @@
 };
 
 // for the purposes of feature-based dependency resolution,
-// pot_quantile<LeftRight> and pot_quantile_prob<LeftRight> provide
+// pot_quantile<LeftRight> and pot_quantile_prob<LeftRight> provide
 // the same feature as quantile
 template<typename LeftRight>
 struct feature_of<tag::pot_quantile<LeftRight> >
@@ -173,7 +172,7 @@
 {
 };
 
-// So that pot_quantile can be automatically substituted
+// So that pot_quantile can be automatically substituted
 // with weighted_pot_quantile when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::pot_quantile<LeftRight> >
@@ -187,7 +186,7 @@
 {
 };
 
-// So that pot_quantile_prob can be automatically substituted
+// So that pot_quantile_prob can be automatically substituted
 // with weighted_pot_quantile_prob when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::pot_quantile_prob<LeftRight> >

Modified: branches/proto/v3/boost/accumulators/statistics/pot_tail_mean.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/pot_tail_mean.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/pot_tail_mean.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -18,7 +18,6 @@
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/placeholders.hpp>
 #include <boost/type_traits/is_same.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/accumulators/framework/accumulator_base.hpp>
 #include <boost/accumulators/framework/extractor.hpp>
 #include <boost/accumulators/numeric/functional.hpp>
@@ -36,17 +35,17 @@
 {
     ///////////////////////////////////////////////////////////////////////////////
     // pot_tail_mean_impl
- //
+ //
     /**
         @brief Estimation of the (coherent) tail mean based on the peaks over threshold method (for both left and right tails)
-
+
         Computes an estimate for the (coherent) tail mean
         \f[
             \widehat{CTM}_{\alpha} = \hat{q}_{\alpha} - \frac{\bar{\beta}}{\xi-1}(1-\alpha)^{-\xi},
         \f]
- where \f$\bar[u]\f$, \f$\bar{\beta}\f$ and \f$\xi\f$ are the parameters of the
- generalized Pareto distribution that approximates the right tail of the distribution (or the
- mirrored left tail, in case the left tail is used). In the latter case, the result is mirrored
+ where \f$\bar[u]\f$, \f$\bar{\beta}\f$ and \f$\xi\f$ are the parameters of the
+ generalized Pareto distribution that approximates the right tail of the distribution (or the
+ mirrored left tail, in case the left tail is used). In the latter case, the result is mirrored
         back, yielding the correct result.
     */
     template<typename Sample, typename Impl, typename LeftRight>
@@ -56,12 +55,12 @@
         typedef typename numeric::functional::average<Sample, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         pot_tail_mean_impl(dont_care)
           : sign_((is_same<LeftRight, left>::value) ? -1 : 1)
         {
         }
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
@@ -83,10 +82,10 @@
 
             extractor<peaks_over_threshold_tag> const some_peaks_over_threshold = {};
             extractor<pot_quantile_tag> const some_pot_quantile = {};
-
- float_type beta_bar = some_peaks_over_threshold(args).get<1>();
- float_type xi_hat = some_peaks_over_threshold(args).get<2>();
-
+
+ float_type beta_bar = some_peaks_over_threshold(args).template get<1>();
+ float_type xi_hat = some_peaks_over_threshold(args).template get<2>();
+
             return some_pot_quantile(args) - this->sign_ * beta_bar/( xi_hat - 1. ) * std::pow(
                 is_same<LeftRight, left>::value ? args[quantile_probability] : 1. - args[quantile_probability]
               , -xi_hat);
@@ -165,7 +164,7 @@
 };
 
 // for the purposes of feature-based dependency resolution,
-// pot_tail_mean<LeftRight> and pot_tail_mean_prob<LeftRight> provide
+// pot_tail_mean<LeftRight> and pot_tail_mean_prob<LeftRight> provide
 // the same feature as tail_mean
 template<typename LeftRight>
 struct feature_of<tag::pot_tail_mean<LeftRight> >
@@ -179,7 +178,7 @@
 {
 };
 
-// So that pot_tail_mean can be automatically substituted
+// So that pot_tail_mean can be automatically substituted
 // with weighted_pot_tail_mean when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::pot_tail_mean<LeftRight> >
@@ -193,7 +192,7 @@
 {
 };
 
-// So that pot_tail_mean_prob can be automatically substituted
+// So that pot_tail_mean_prob can be automatically substituted
 // with weighted_pot_tail_mean_prob when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::pot_tail_mean_prob<LeftRight> >

Modified: branches/proto/v3/boost/accumulators/statistics/skewness.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/skewness.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/skewness.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -29,18 +29,18 @@
     // skewness_impl
     /**
         @brief Skewness estimation
-
- The skewness of a sample distribution is defined as the ratio of the 3rd central moment and the \f$ 3/2 \f$-th power
+
+ The skewness of a sample distribution is defined as the ratio of the 3rd central moment and the \f$ 3/2 \f$-th power
         of the 2nd central moment (the variance) of the sampless 3. The skewness can also be expressed by the simple moments:
-
+
         \f[
             \hat{g}_1 =
                 \frac
                 {\widehat{m}_n^{(3)}-3\widehat{m}_n^{(2)}\hat{\mu}_n+2\hat{\mu}_n^3}
                 {\left(\widehat{m}_n^{(2)} - \hat{\mu}_n^{2}\right)^{3/2}}
         \f]
-
- where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
+
+ where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
         \f$ n \f$ samples.
     */
     template<typename Sample>
@@ -58,10 +58,10 @@
         result_type result(Args const &args) const
         {
             return numeric::average(
- moment<3>(args)
+ moment<3>(args)
                         - 3. * moment<2>(args) * mean(args)
                         + 2. * mean(args) * mean(args) * mean(args)
- , ( moment<2>(args) - mean(args) * mean(args) )
+ , ( moment<2>(args) - mean(args) * mean(args) )
                         * std::sqrt( moment<2>(args) - mean(args) * mean(args) )
                    );
         }
@@ -93,7 +93,7 @@
 
 using extract::skewness;
 
-// So that skewness can be automatically substituted with
+// So that skewness can be automatically substituted with
 // weighted_skewness when the weight parameter is non-void
 template<>
 struct as_weighted_feature<tag::skewness>

Modified: branches/proto/v3/boost/accumulators/statistics/sum.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/sum.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/sum.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,7 +81,7 @@
         ///
         typedef accumulators::impl::sum_impl<mpl::_2, tag::weight> impl;
     };
-
+
     template<typename VariateType, typename VariateTag>
     struct sum_of_variates
       : depends_on<>
@@ -90,7 +90,7 @@
         ///
         typedef mpl::always<accumulators::impl::sum_impl<VariateType, VariateTag> > impl;
     };
-
+
     struct abstract_sum_of_variates
       : depends_on<>
     {

Modified: branches/proto/v3/boost/accumulators/statistics/tail.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/tail.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/tail.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -83,6 +83,7 @@
         }
 
     private:
+ stat_assign_visitor &operator =(stat_assign_visitor const &);
         Args const &args;
         std::size_t index;
     };
@@ -122,7 +123,7 @@
       : mpl::true_
     {
     };
-
+
 } // namespace detail
 
 namespace impl
@@ -171,7 +172,7 @@
 
         // This just stores the heap and the samples.
         // In operator()() below, if we are adding a new sample
- // to the sample cache, we force all the
+ // to the sample cache, we force all the
         // tail_variates to update also. (It's not
         // good enough to wait for the accumulator_set to do it
         // for us because then information about whether a sample
@@ -239,7 +240,7 @@
         }
 
         ///////////////////////////////////////////////////////////////////////////////
- //
+ //
         struct indirect_cmp
           : std::binary_function<std::size_t, std::size_t, bool>
         {
@@ -254,6 +255,7 @@
             }
 
         private:
+ indirect_cmp &operator =(indirect_cmp const &);
             std::vector<Sample> const &samples;
         };
 
@@ -300,7 +302,7 @@
         static boost::parameter::keyword<tail_cache_size_named_arg<LeftRight> > const cache_size;
         #endif
     };
-
+
     struct abstract_tail
       : depends_on<>
     {

Modified: branches/proto/v3/boost/accumulators/statistics/tail_mean.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/tail_mean.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/tail_mean.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,28 +28,33 @@
 #include <boost/accumulators/statistics/tail_quantile.hpp>
 #include <boost/accumulators/statistics/parameters/quantile_probability.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
 namespace impl
 {
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // coherent_tail_mean_impl
     //
     /**
         @brief Estimation of the coherent tail mean based on order statistics (for both left and right tails)
 
- The coherent tail mean \f$\widehat{CTM}_{n,\alpha}(X)\f$ is equal to the non-coherent tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$
+ The coherent tail mean \f$\widehat{CTM}_{n,\alpha}(X)\f$ is equal to the non-coherent tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$
         plus a correction term that ensures coherence in case of non-continuous distributions.
-
+
         \f[
- \widehat{CTM}_{n,\alpha}^{\mathrm{right}}(X) = \widehat{NCTM}_{n,\alpha}^{\mathrm{right}}(X) +
+ \widehat{CTM}_{n,\alpha}^{\mathrm{right}}(X) = \widehat{NCTM}_{n,\alpha}^{\mathrm{right}}(X) +
             \frac{1}{\lceil n(1-\alpha)\rceil}\hat{q}_{n,\alpha}(X)\left(1 - \alpha - \frac{1}{n}\lceil n(1-\alpha)\rceil \right)
         \f]
-
+
         \f[
- \widehat{CTM}_{n,\alpha}^{\mathrm{left}}(X) = \widehat{NCTM}_{n,\alpha}^{\mathrm{left}}(X) +
+ \widehat{CTM}_{n,\alpha}^{\mathrm{left}}(X) = \widehat{NCTM}_{n,\alpha}^{\mathrm{left}}(X) +
             \frac{1}{\lceil n\alpha\rceil}\hat{q}_{n,\alpha}(X)\left(\alpha - \frac{1}{n}\lceil n\alpha\rceil \right)
         \f]
     */
@@ -60,22 +65,22 @@
         typedef typename numeric::functional::average<Sample, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         coherent_tail_mean_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             std::size_t cnt = count(args);
-
+
             std::size_t n = static_cast<std::size_t>(
                 std::ceil(
                     cnt * ( ( is_same<LeftRight, left>::value ) ? args[quantile_probability] : 1. - args[quantile_probability] )
                 )
             );
-
+
             extractor<tag::non_coherent_tail_mean<LeftRight> > const some_non_coherent_tail_mean = {};
-
+
             return some_non_coherent_tail_mean(args)
                  + numeric::average(quantile(args), n)
                  * (
@@ -84,28 +89,28 @@
                    );
         }
     };
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // non_coherent_tail_mean_impl
- //
+ //
     /**
         @brief Estimation of the (non-coherent) tail mean based on order statistics (for both left and right tails)
 
- An estimation of the non-coherent tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$ is given by the mean of the
- \f$\lceil n\alpha\rceil\f$ smallest samples (left tail) or the mean of the \f$\lceil n(1-\alpha)\rceil\f$
+ An estimation of the non-coherent tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$ is given by the mean of the
+ \f$\lceil n\alpha\rceil\f$ smallest samples (left tail) or the mean of the \f$\lceil n(1-\alpha)\rceil\f$
         largest samples (right tail), \f$n\f$ being the total number of samples and \f$\alpha\f$ the quantile level:
-
+
         \f[
             \widehat{NCTM}_{n,\alpha}^{\mathrm{right}}(X) = \frac{1}{\lceil n(1-\alpha)\rceil} \sum_{i=\lceil \alpha n \rceil}^n X_{i:n}
         \f]
-
+
         \f[
             \widehat{NCTM}_{n,\alpha}^{\mathrm{left}}(X) = \frac{1}{\lceil n\alpha\rceil} \sum_{i=1}^{\lceil \alpha n \rceil} X_{i:n}
         \f]
-
- It thus requires the caching of at least the \f$\lceil n\alpha\rceil\f$ smallest or the \f$\lceil n(1-\alpha)\rceil\f$
+
+ It thus requires the caching of at least the \f$\lceil n\alpha\rceil\f$ smallest or the \f$\lceil n(1-\alpha)\rceil\f$
         largest samples.
-
+
         @param quantile_probability
     */
     template<typename Sample, typename LeftRight>
@@ -115,22 +120,22 @@
         typedef typename numeric::functional::average<Sample, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         non_coherent_tail_mean_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             std::size_t cnt = count(args);
-
+
             std::size_t n = static_cast<std::size_t>(
                 std::ceil(
                     cnt * ( ( is_same<LeftRight, left>::value ) ? args[quantile_probability] : 1. - args[quantile_probability] )
                 )
             );
-
+
             // If n is in a valid range, return result, otherwise return NaN or throw exception
- if (n <= tail(args).size())
+ if (n <= static_cast<std::size_t>(tail(args).size()))
                 return numeric::average(
                     std::accumulate(
                         tail(args).begin()
@@ -152,7 +157,7 @@
                     boost::throw_exception(std::runtime_error(msg.str()));
                     return Sample(0);
                 }
- }
+ }
         }
     };
 
@@ -171,14 +176,14 @@
     {
         typedef accumulators::impl::coherent_tail_mean_impl<mpl::_1, LeftRight> impl;
     };
-
+
     template<typename LeftRight>
     struct non_coherent_tail_mean
       : depends_on<count, tail<LeftRight> >
     {
         typedef accumulators::impl::non_coherent_tail_mean_impl<mpl::_1, LeftRight> impl;
     };
-
+
     struct abstract_non_coherent_tail_mean
       : depends_on<>
     {
@@ -212,7 +217,7 @@
 {
 };
 
-// So that non_coherent_tail_mean can be automatically substituted
+// So that non_coherent_tail_mean can be automatically substituted
 // with weighted_non_coherent_tail_mean when the weight parameter is non-void.
 template<typename LeftRight>
 struct as_weighted_feature<tag::non_coherent_tail_mean<LeftRight> >
@@ -231,4 +236,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/tail_quantile.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/tail_quantile.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/tail_quantile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,6 +13,7 @@
 #include <functional>
 #include <sstream>
 #include <stdexcept>
+#include <cmath> // For ceil
 #include <boost/throw_exception.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/mpl/placeholders.hpp>
@@ -28,26 +29,31 @@
 #include <boost/accumulators/statistics/count.hpp>
 #include <boost/accumulators/statistics/parameters/quantile_probability.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
 namespace impl
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // tail_quantile_impl
     // Tail quantile estimation based on order statistics
     /**
         @brief Tail quantile estimation based on order statistics (for both left and right tails)
 
- The estimation of a tail quantile \f$\hat{q}\f$ with level \f$\alpha\f$ based on order statistics requires the
- chaching of at least the \f$\lceil n\alpha\rceil\f$ smallest or the \f$\lceil n(1-\alpha)\rceil\f$ largest samples,
- \f$n\f$ being the total number of samples. The largest of the \f$\lceil n\alpha\rceil\f$ smallest samples or the
+ The estimation of a tail quantile \f$\hat{q}\f$ with level \f$\alpha\f$ based on order statistics requires the
+ chaching of at least the \f$\lceil n\alpha\rceil\f$ smallest or the \f$\lceil n(1-\alpha)\rceil\f$ largest samples,
+ \f$n\f$ being the total number of samples. The largest of the \f$\lceil n\alpha\rceil\f$ smallest samples or the
         smallest of the \f$\lceil n(1-\alpha)\rceil\f$ largest samples provides an estimate for the quantile:
-
+
         \f[
             \hat{q}_{n,\alpha} = X_{\lceil \alpha n \rceil:n}
         \f]
-
+
         @param quantile_probability
     */
     template<typename Sample, typename LeftRight>
@@ -56,24 +62,24 @@
     {
         // for boost::result_of
         typedef Sample result_type;
-
+
         tail_quantile_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             std::size_t cnt = count(args);
-
+
             std::size_t n = static_cast<std::size_t>(
                 std::ceil(
                     cnt * ( ( is_same<LeftRight, left>::value ) ? args[quantile_probability] : 1. - args[quantile_probability] )
                 )
             );
-
+
             // If n is in a valid range, return result, otherwise return NaN or throw exception
- if ( n < tail(args).size())
+ if ( n < static_cast<std::size_t>(tail(args).size()))
             {
- // Note that the cached samples of the left are sorted in ascending order,
+ // Note that the cached samples of the left are sorted in ascending order,
                // whereas the samples of the right tail are sorted in descending order
                return *(boost::begin(tail(args)) + n - 1);
             }
@@ -143,4 +149,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/tail_variate.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/tail_variate.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/tail_variate.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -87,7 +87,7 @@
         ///
         typedef mpl::always<accumulators::impl::tail_variate_impl<VariateType, VariateTag, LeftRight> > impl;
     };
-
+
     struct abstract_tail_variate
       : depends_on<>
     {
@@ -101,7 +101,7 @@
         ///
         typedef accumulators::impl::tail_variate_impl<mpl::_2, tag::weight, LeftRight> impl;
     };
-
+
     struct abstract_tail_weights
       : depends_on<>
     {

Modified: branches/proto/v3/boost/accumulators/statistics/tail_variate_means.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/tail_variate_means.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/tail_variate_means.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,7 +15,6 @@
 #include <sstream>
 #include <stdexcept>
 #include <boost/throw_exception.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/mpl/placeholders.hpp>
 #include <boost/type_traits/is_same.hpp>
@@ -29,45 +28,50 @@
 #include <boost/accumulators/statistics/tail_mean.hpp>
 #include <boost/accumulators/statistics/parameters/quantile_probability.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
 namespace impl
-{
+{
     /**
         @brief Estimation of the absolute and relative tail variate means (for both left and right tails)
 
- For all \f$j\f$-th variates associated to the \f$\lceil n(1-\alpha)\rceil\f$ largest samples (or the
- \f$\lceil n(1-\alpha)\rceil\f$ smallest samples in case of the left tail), the absolute tail means
- \f$\widehat{ATM}_{n,\alpha}(X, j)\f$ are computed and returned as an iterator range. Alternatively,
- the relative tail means \f$\widehat{RTM}_{n,\alpha}(X, j)\f$ are returned, which are the absolute
+ For all \f$j\f$-th variates associated to the \f$\lceil n(1-\alpha)\rceil\f$ largest samples (or the
+ \f$\lceil n(1-\alpha)\rceil\f$ smallest samples in case of the left tail), the absolute tail means
+ \f$\widehat{ATM}_{n,\alpha}(X, j)\f$ are computed and returned as an iterator range. Alternatively,
+ the relative tail means \f$\widehat{RTM}_{n,\alpha}(X, j)\f$ are returned, which are the absolute
         tail means normalized with the (non-coherent) sample tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$.
-
+
         \f[
- \widehat{ATM}_{n,\alpha}^{\mathrm{right}}(X, j) =
+ \widehat{ATM}_{n,\alpha}^{\mathrm{right}}(X, j) =
                 \frac{1}{\lceil n(1-\alpha) \rceil}
                 \sum_{i=\lceil \alpha n \rceil}^n \xi_{j,i}
         \f]
-
+
         \f[
- \widehat{ATM}_{n,\alpha}^{\mathrm{left}}(X, j) =
+ \widehat{ATM}_{n,\alpha}^{\mathrm{left}}(X, j) =
                 \frac{1}{\lceil n\alpha \rceil}
                 \sum_{i=1}^{\lceil n\alpha \rceil} \xi_{j,i}
         \f]
-
+
         \f[
- \widehat{RTM}_{n,\alpha}^{\mathrm{right}}(X, j) =
+ \widehat{RTM}_{n,\alpha}^{\mathrm{right}}(X, j) =
                 \frac{\sum_{i=\lceil n\alpha \rceil}^n \xi_{j,i}}
             {\lceil n(1-\alpha)\rceil\widehat{NCTM}_{n,\alpha}^{\mathrm{right}}(X)}
         \f]
-
+
         \f[
- \widehat{RTM}_{n,\alpha}^{\mathrm{left}}(X, j) =
+ \widehat{RTM}_{n,\alpha}^{\mathrm{left}}(X, j) =
                 \frac{\sum_{i=1}^{\lceil n\alpha \rceil} \xi_{j,i}}
             {\lceil n\alpha\rceil\widehat{NCTM}_{n,\alpha}^{\mathrm{left}}(X)}
         \f]
     */
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // tail_variate_means_impl
     // by default: absolute tail_variate_means
@@ -79,46 +83,44 @@
         typedef std::vector<float_type> array_type;
         // for boost::result_of
         typedef iterator_range<typename array_type::iterator> result_type;
-
+
         tail_variate_means_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             std::size_t cnt = count(args);
-
+
             std::size_t n = static_cast<std::size_t>(
                 std::ceil(
                     cnt * ( ( is_same<LeftRight, left>::value ) ? args[quantile_probability] : 1. - args[quantile_probability] )
                 )
             );
-
+
             std::size_t num_variates = tail_variate(args).begin()->size();
-
+
             this->tail_means_.clear();
             this->tail_means_.resize(num_variates, Sample(0));
 
             // If n is in a valid range, return result, otherwise return NaN or throw exception
- if (n < tail(args).size())
- {
+ if (n < static_cast<std::size_t>(tail(args).size()))
+ {
                 this->tail_means_ = std::accumulate(
                     tail_variate(args).begin()
                   , tail_variate(args).begin() + n
                   , this->tail_means_
                   , numeric::plus
                 );
-
+
                 float_type factor = n * ( (is_same<Impl, relative>::value) ? non_coherent_tail_mean(args) : 1. );
-
- using boost::lambda::_1;
 
                 std::transform(
                     this->tail_means_.begin()
                   , this->tail_means_.end()
                   , this->tail_means_.begin()
- , _1 / factor
- );
- }
+ , std::bind2nd(std::divides<float_type>(), factor)
+ );
+ }
             else
             {
                 if (std::numeric_limits<float_type>::has_quiet_NaN)
@@ -135,16 +137,16 @@
                     msg << "index n = " << n << " is not in valid range [0, " << tail(args).size() << ")";
                     boost::throw_exception(std::runtime_error(msg.str()));
                 }
- }
+ }
             return make_iterator_range(this->tail_means_);
         }
 
     private:
-
+
         mutable array_type tail_means_;
-
+
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -159,7 +161,7 @@
     {
         typedef accumulators::impl::tail_variate_means_impl<mpl::_1, absolute, LeftRight, VariateTag> impl;
     };
- template<typename LeftRight, typename VariateType, typename VariateTag>
+ template<typename LeftRight, typename VariateType, typename VariateTag>
     struct relative_tail_variate_means
       : depends_on<count, non_coherent_tail_mean<LeftRight>, tail_variate<VariateType, VariateTag, LeftRight> >
     {
@@ -216,7 +218,7 @@
 {
 };
 
-// So that absolute_tail_means can be automatically substituted
+// So that absolute_tail_means can be automatically substituted
 // with absolute_weighted_tail_means when the weight parameter is non-void.
 template<typename LeftRight, typename VariateType, typename VariateTag>
 struct as_weighted_feature<tag::absolute_tail_variate_means<LeftRight, VariateType, VariateTag> >
@@ -230,7 +232,7 @@
 {
 };
 
-// So that relative_tail_means can be automatically substituted
+// So that relative_tail_means can be automatically substituted
 // with relative_weighted_tail_means when the weight parameter is non-void.
 template<typename LeftRight, typename VariateType, typename VariateTag>
 struct as_weighted_feature<tag::relative_tail_variate_means<LeftRight, VariateType, VariateTag> >
@@ -246,4 +248,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/times2_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/times2_iterator.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/times2_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,7 +34,7 @@
         );
     }
 
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // lvalue_index_iterator
     template<typename Base>

Modified: branches/proto/v3/boost/accumulators/statistics/variance.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/variance.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/variance.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,12 +30,12 @@
         Default sample variance implementation based on the second moment \f$ M_n^{(2)} \f$ moment<2>, mean and count.
         \f[
             \sigma_n^2 = M_n^{(2)} - \mu_n^2.
- \f]
- where
+ \f]
+ where
         \f[
             \mu_n = \frac{1}{n} \sum_{i = 1}^n x_i.
- \f]
- is the estimate of the sample mean and \f$n\f$ is the number of samples.
+ \f]
+ is the estimate of the sample mean and \f$n\f$ is the number of samples.
     */
     template<typename Sample, typename MeanFeature>
     struct variance_impl
@@ -60,24 +60,24 @@
         Iterative calculation of sample variance \f$\sigma_n^2\f$ according to the formula
         \f[
             \sigma_n^2 = \frac{1}{n} \sum_{i = 1}^n (x_i - \mu_n)^2 = \frac{n-1}{n} \sigma_{n-1}^2 + \frac{1}{n-1}(x_n - \mu_n)^2.
- \f]
- where
+ \f]
+ where
         \f[
             \mu_n = \frac{1}{n} \sum_{i = 1}^n x_i.
- \f]
- is the estimate of the sample mean and \f$n\f$ is the number of samples.
-
+ \f]
+ is the estimate of the sample mean and \f$n\f$ is the number of samples.
+
         Note that the sample variance is not defined for \f$n <= 1\f$.
-
- A simplification can be obtained by the approximate recursion
+
+ A simplification can be obtained by the approximate recursion
         \f[
             \sigma_n^2 \approx \frac{n-1}{n} \sigma_{n-1}^2 + \frac{1}{n}(x_n - \mu_n)^2.
- \f]
- because the difference
+ \f]
+ because the difference
         \f[
             \left(\frac{1}{n-1} - \frac{1}{n}\right)(x_n - \mu_n)^2 = \frac{1}{n(n-1)}(x_n - \mu_n)^2.
- \f]
- converges to zero as \f$n \rightarrow \infty\f$. However, for small \f$ n \f$ the difference
+ \f]
+ converges to zero as \f$n \rightarrow \infty\f$. However, for small \f$ n \f$ the difference
         can be non-negligible.
     */
     template<typename Sample, typename MeanFeature, typename Tag>
@@ -208,7 +208,6 @@
 {
 };
 
-
 ////////////////////////////////////////////////////////////////////////////
 //// droppable_accumulator<variance_impl>
 //// need to specialize droppable lazy variance to cache the result at the
@@ -223,9 +222,7 @@
 //{
 // template<typename Args>
 // droppable_accumulator(Args const &args)
-// : droppable_accumulator_base<
-// with_cached_result<impl::variance_impl<Sample, MeanFeature> >
-// >(args)
+// : droppable_accumulator::base(args)
 // {
 // }
 //};

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_covariance.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_covariance.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_covariance.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -18,7 +18,6 @@
 #include <boost/range.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/mpl/placeholders.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/numeric/ublas/io.hpp>
 #include <boost/numeric/ublas/matrix.hpp>
 #include <boost/type_traits/is_scalar.hpp>
@@ -36,22 +35,22 @@
 {
 
 namespace impl
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // weighted_covariance_impl
     //
     /**
         @brief Weighted Covariance Estimator
 
- An iterative Monte Carlo estimator for the weighted covariance \f$\mathrm{Cov}(X,X')\f$, where \f$X\f$ is a sample
+ An iterative Monte Carlo estimator for the weighted covariance \f$\mathrm{Cov}(X,X')\f$, where \f$X\f$ is a sample
         and \f$X'\f$ a variate, is given by:
 
         \f[
             \hat{c}_n = \frac{\bar{w}_n-w_n}{\bar{w}_n} \hat{c}_{n-1} + \frac{w_n}{\bar{w}_n-w_n}(X_n - \hat{\mu}_n)(X_n' - \hat{\mu}_n'),
             \quad n\ge2,\quad\hat{c}_1 = 0,
         \f]
-
- \f$\hat{\mu}_n\f$ and \f$\hat{\mu}_n'\f$ being the weighted means of the samples and variates and
+
+ \f$\hat{\mu}_n\f$ and \f$\hat{\mu}_n'\f$ being the weighted means of the samples and variates and
         \f$\bar{w}_n\f$ the sum of the \f$n\f$ first weights \f$w_i\f$.
     */
     template<typename Sample, typename Weight, typename VariateType, typename VariateTag>
@@ -62,7 +61,7 @@
         typedef typename numeric::functional::multiplies<Weight, typename numeric::functional::average<VariateType, std::size_t>::result_type>::result_type weighted_variate_type;
         // for boost::result_of
         typedef typename numeric::functional::outer_product<weighted_sample_type, weighted_variate_type>::result_type result_type;
-
+
         template<typename Args>
         weighted_covariance_impl(Args const &args)
           : cov_(
@@ -75,16 +74,16 @@
             )
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             std::size_t cnt = count(args);
-
+
             if (cnt > 1)
             {
                 extractor<tag::weighted_mean_of_variates<VariateType, VariateTag> > const some_weighted_mean_of_variates = {};
-
+
                 this->cov_ = this->cov_ * (sum_of_weights(args) - args[weight]) / sum_of_weights(args)
                            + numeric::outer_product(
                                  some_weighted_mean_of_variates(args) - args[parameter::keyword<VariateTag>::get()]
@@ -101,7 +100,7 @@
     private:
         result_type cov_;
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_density.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_density.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_density.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,23 +28,23 @@
 {
 
 namespace impl
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // weighted_density_impl
     // density histogram for weighted samples
     /**
         @brief Histogram density estimator for weighted samples
 
- The histogram density estimator returns a histogram of the sample distribution. The positions and sizes of the bins
- are determined using a specifiable number of cached samples (cache_size). The range between the minimum and the
- maximum of the cached samples is subdivided into a specifiable number of bins (num_bins) of same size. Additionally,
- an under- and an overflow bin is added to capture future under- and overflow samples. Once the bins are determined,
- the cached samples and all subsequent samples are added to the correct bins. At the end, a range of std::pair is
- returned, where each pair contains the position of the bin (lower bound) and the sum of the weights (normalized with the
+ The histogram density estimator returns a histogram of the sample distribution. The positions and sizes of the bins
+ are determined using a specifiable number of cached samples (cache_size). The range between the minimum and the
+ maximum of the cached samples is subdivided into a specifiable number of bins (num_bins) of same size. Additionally,
+ an under- and an overflow bin is added to capture future under- and overflow samples. Once the bins are determined,
+ the cached samples and all subsequent samples are added to the correct bins. At the end, a range of std::pair is
+ returned, where each pair contains the position of the bin (lower bound) and the sum of the weights (normalized with the
         sum of all weights).
 
         @param density_cache_size Number of first samples used to determine min and max.
- @param density_num_bins Number of bins (two additional bins collect under- and overflow samples).
+ @param density_num_bins Number of bins (two additional bins collect under- and overflow samples).
     */
     template<typename Sample, typename Weight>
     struct weighted_density_impl
@@ -55,7 +55,7 @@
         typedef std::vector<float_type> array_type;
         // for boost::result_of
         typedef iterator_range<typename histogram_type::iterator> result_type;
-
+
         template<typename Args>
         weighted_density_impl(Args const &args)
             : cache_size(args[density_cache_size])
@@ -73,35 +73,35 @@
             , is_dirty(true)
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             this->is_dirty = true;
-
+
             std::size_t cnt = count(args);
-
+
             // Fill up cache with cache_size first samples
             if (cnt <= this->cache_size)
             {
                 this->cache[cnt - 1] = std::make_pair(args[sample], args[weight]);
             }
-
- // Once cache_size samples have been accumulated, create num_bins bins of same size between
- // the minimum and maximum of the cached samples as well as an under- and an overflow bin.
+
+ // Once cache_size samples have been accumulated, create num_bins bins of same size between
+ // the minimum and maximum of the cached samples as well as an under- and an overflow bin.
             // Store their lower bounds (bin_positions) and fill the bins with the cached samples (samples_in_bin).
             if (cnt == this->cache_size)
             {
                 float_type minimum = numeric::average((min)(args),(std::size_t)1);
                 float_type maximum = numeric::average((max)(args),(std::size_t)1);
                 float_type bin_size = numeric::average(maximum - minimum, this->num_bins);
-
+
                 // determine bin positions (their lower bounds)
- for (std::size_t i = 0; i < this->num_bins + 2; ++i)
+ for (std::size_t i = 0; i < this->num_bins + 2; ++i)
                 {
                     this->bin_positions[i] = minimum + (i - 1.) * bin_size;
                 }
-
+
                 for (typename histogram_type::const_iterator iter = this->cache.begin(); iter != this->cache.end(); ++iter)
                 {
                     if (iter->first < this->bin_positions[1])
@@ -111,7 +111,7 @@
                     else if (iter->first >= this->bin_positions[this->num_bins + 1])
                     {
                         this->samples_in_bin[this->num_bins + 1] += iter->second;
- }
+ }
                     else
                     {
                         typename array_type::iterator it = std::upper_bound(
@@ -119,7 +119,7 @@
                           , this->bin_positions.end()
                           , iter->first
                         );
-
+
                         std::size_t d = std::distance(this->bin_positions.begin(), it);
                         this->samples_in_bin[d - 1] += iter->second;
                     }
@@ -143,11 +143,11 @@
                       , this->bin_positions.end()
                       , args[sample]
                     );
-
+
                     std::size_t d = std::distance(this->bin_positions.begin(), it);
                     this->samples_in_bin[d - 1] += args[weight];
                 }
- }
+ }
         }
 
         template<typename Args>
@@ -156,18 +156,18 @@
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 // creates a vector of std::pair where each pair i holds
                 // the values bin_positions[i] (x-axis of histogram) and
                 // samples_in_bin[i] / cnt (y-axis of histogram).
-
+
                 for (std::size_t i = 0; i < this->num_bins + 2; ++i)
                 {
                     this->histogram[i] = std::make_pair(this->bin_positions[i], numeric::average(this->samples_in_bin[i], sum_of_weights(args)));
                 }
             }
-
- // returns a range of pairs
+
+ // returns a range of pairs
             return make_iterator_range(this->histogram);
         }
 
@@ -196,7 +196,7 @@
         /// INTERNAL ONLY
         ///
         typedef accumulators::impl::weighted_density_impl<mpl::_1, mpl::_2> impl;
-
+
         #ifdef BOOST_ACCUMULATORS_DOXYGEN_INVOKED
         static boost::parameter::keyword<density_cache_size> const cache_size;
         static boost::parameter::keyword<density_num_bins> const num_bins;

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_extended_p_square.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_extended_p_square.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_extended_p_square.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -40,17 +40,17 @@
     /**
         @brief Multiple quantile estimation with the extended \f$P^2\f$ algorithm for weighted samples
 
- This version of the extended \f$P^2\f$ algorithm extends the extended \f$P^2\f$ algorithm to
- support weighted samples. The extended \f$P^2\f$ algorithm dynamically estimates several
- quantiles without storing samples. Assume that \f$m\f$ quantiles
- \f$\xi_{p_1}, \ldots, \xi_{p_m}\f$ are to be estimated. Instead of storing the whole sample
- cumulative distribution, the algorithm maintains only \f$m+2\f$ principal markers and
- \f$m+1\f$ middle markers, whose positions are updated with each sample and whose heights
- are adjusted (if necessary) using a piecewise-parablic formula. The heights of the principal
+ This version of the extended \f$P^2\f$ algorithm extends the extended \f$P^2\f$ algorithm to
+ support weighted samples. The extended \f$P^2\f$ algorithm dynamically estimates several
+ quantiles without storing samples. Assume that \f$m\f$ quantiles
+ \f$\xi_{p_1}, \ldots, \xi_{p_m}\f$ are to be estimated. Instead of storing the whole sample
+ cumulative distribution, the algorithm maintains only \f$m+2\f$ principal markers and
+ \f$m+1\f$ middle markers, whose positions are updated with each sample and whose heights
+ are adjusted (if necessary) using a piecewise-parablic formula. The heights of the principal
         markers are the current estimates of the quantiles and are returned as an iterator range.
 
         For further details, see
-
+
         K. E. E. Raatikainen, Simultaneous estimation of several quantiles, Simulation, Volume 49,
         Number 4 (October), 1986, p. 159-164.
 
@@ -78,7 +78,7 @@
>
>
> result_type;
-
+
         template<typename Args>
         weighted_extended_p_square_impl(Args const &args)
           : probabilities(
@@ -97,29 +97,29 @@
             std::size_t cnt = count(args);
             std::size_t sample_cell = 1; // k
             std::size_t num_quantiles = this->probabilities.size();
-
+
             // m+2 principal markers and m+1 middle markers
             std::size_t num_markers = 2 * num_quantiles + 3;
-
+
             // first accumulate num_markers samples
             if(cnt <= num_markers)
             {
                 this->heights[cnt - 1] = args[sample];
                 this->actual_positions[cnt - 1] = args[weight];
-
+
                 // complete the initialization of heights (and actual_positions) by sorting
                 if(cnt == num_markers)
                 {
- // TODO: we need to sort the initial samples (in heights) in ascending order and
- // sort their weights (in actual_positions) the same way. The following lines do
+ // TODO: we need to sort the initial samples (in heights) in ascending order and
+ // sort their weights (in actual_positions) the same way. The following lines do
                     // it, but there must be a better and more efficient way of doing this.
                     typename array_type::iterator it_begin, it_end, it_min;
-
+
                     it_begin = this->heights.begin();
                     it_end = this->heights.end();
-
+
                     std::size_t pos = 0;
-
+
                     while (it_begin != it_end)
                     {
                         it_min = std::min_element(it_begin, it_end);
@@ -129,7 +129,7 @@
                         ++it_begin;
                         ++pos;
                     }
-
+
                     // calculate correct initial actual positions
                     for (std::size_t i = 1; i < num_markers; ++i)
                     {
@@ -160,7 +160,7 @@
                       , this->heights.end()
                       , args[sample]
                     );
-
+
                     sample_cell = std::distance(this->heights.begin(), it);
                 }
 
@@ -176,24 +176,24 @@
                     this->desired_positions[num_markers - 1] = sum_of_weights(args);
                     this->desired_positions[1] = (sum_of_weights(args) - this->actual_positions[0]) * probabilities[0]
                                               / 2. + this->actual_positions[0];
- this->desired_positions[num_markers - 2] = (sum_of_weights(args) - this->actual_positions[0])
- * (probabilities[num_quantiles - 1] + 1.)
+ this->desired_positions[num_markers - 2] = (sum_of_weights(args) - this->actual_positions[0])
+ * (probabilities[num_quantiles - 1] + 1.)
                                                             / 2. + this->actual_positions[0];
-
+
                     for (std::size_t i = 0; i < num_quantiles; ++i)
                     {
                         this->desired_positions[2 * i + 2] = (sum_of_weights(args) - this->actual_positions[0])
                                                           * probabilities[i] + this->actual_positions[0];
                     }
-
+
                     for (std::size_t i = 1; i < num_quantiles; ++i)
                     {
                         this->desired_positions[2 * i + 1] = (sum_of_weights(args) - this->actual_positions[0])
- * (probabilities[i - 1] + probabilities[i])
+ * (probabilities[i - 1] + probabilities[i])
                                                       / 2. + this->actual_positions[0];
                     }
                 }
-
+
                 // adjust heights and actual_positions of markers 1 to num_markers - 2 if necessary
                 for (std::size_t i = 1; i <= num_markers - 2; ++i)
                 {
@@ -239,8 +239,7 @@
             }
         }
 
- template<typename Args>
- result_type result(Args const &args) const
+ result_type result(dont_care) const
         {
             // for i in [1,probabilities.size()], return heights[i * 2]
             detail::times2_iterator idx_begin = detail::make_times2_iterator(1);
@@ -251,7 +250,7 @@
               , make_permutation_iterator(this->heights.begin(), idx_end)
             );
         }
-
+
     private:
         array_type probabilities; // the quantile probabilities
         array_type heights; // q_i

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_kurtosis.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_kurtosis.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_kurtosis.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -29,21 +29,21 @@
     /**
         @brief Kurtosis estimation for weighted samples
 
- The kurtosis of a sample distribution is defined as the ratio of the 4th central moment and the square of the 2nd central
- moment (the variance) of the samples, minus 3. The term \f$ -3 \f$ is added in order to ensure that the normal distribution
+ The kurtosis of a sample distribution is defined as the ratio of the 4th central moment and the square of the 2nd central
+ moment (the variance) of the samples, minus 3. The term \f$ -3 \f$ is added in order to ensure that the normal distribution
         has zero kurtosis. The kurtosis can also be expressed by the simple moments:
-
+
         \f[
- \hat{g}_2 =
+ \hat{g}_2 =
                 \frac
                 {\widehat{m}_n^{(4)}-4\widehat{m}_n^{(3)}\hat{\mu}_n+6\widehat{m}_n^{(2)}\hat{\mu}_n^2-3\hat{\mu}_n^4}
                 {\left(\widehat{m}_n^{(2)} - \hat{\mu}_n^{2}\right)^2} - 3,
         \f]
-
- where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
+
+ where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
         \f$ n \f$ samples.
-
- The kurtosis estimator for weighted samples is formally identical to the estimator for unweighted samples, except that
+
+ The kurtosis estimator for weighted samples is formally identical to the estimator for unweighted samples, except that
         the weighted counterparts of all measures it depends on are to be taken.
     */
     template<typename Sample, typename Weight>
@@ -61,12 +61,12 @@
         template<typename Args>
         result_type result(Args const &args) const
         {
- return numeric::average(
- weighted_moment<4>(args)
+ return numeric::average(
+ weighted_moment<4>(args)
                         - 4. * weighted_moment<3>(args) * weighted_mean(args)
- + 6. * weighted_moment<2>(args) * weighted_mean(args) * weighted_mean(args)
+ + 6. * weighted_moment<2>(args) * weighted_mean(args) * weighted_mean(args)
                         - 3. * weighted_mean(args) * weighted_mean(args) * weighted_mean(args) * weighted_mean(args)
- , ( weighted_moment<2>(args) - weighted_mean(args) * weighted_mean(args) )
+ , ( weighted_moment<2>(args) - weighted_mean(args) * weighted_mean(args) )
                         * ( weighted_moment<2>(args) - weighted_mean(args) * weighted_mean(args) )
                    ) - 3.;
         }

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_mean.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_mean.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_mean.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -50,9 +50,9 @@
                   , tag::weighted_sum_of_variates<Sample, Tag>
>::type
             weighted_sum_tag;
-
+
             extractor<weighted_sum_tag> const some_weighted_sum = {};
-
+
             return numeric::average(some_weighted_sum(args), sum_of_weights(args));
         }
     };
@@ -148,7 +148,7 @@
 namespace extract
 {
     extractor<tag::mean> const weighted_mean = {};
- BOOST_ACCUMULATORS_DEFINE_EXTRACTOR(tag, weighted_mean_of_variates, (typename)(typename));
+ BOOST_ACCUMULATORS_DEFINE_EXTRACTOR(tag, weighted_mean_of_variates, (typename)(typename))
 }
 
 using extract::weighted_mean;

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_median.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_median.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_median.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,7 +32,7 @@
     //
     /**
         @brief Median estimation for weighted samples based on the \f$P^2\f$ quantile estimator
-
+
         The \f$P^2\f$ algorithm for weighted samples is invoked with a quantile probability of 0.5.
     */
     template<typename Sample>
@@ -41,9 +41,9 @@
     {
         // for boost::result_of
         typedef typename numeric::functional::average<Sample, std::size_t>::result_type result_type;
-
+
         weighted_median_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
@@ -56,9 +56,9 @@
     //
     /**
         @brief Median estimation for weighted samples based on the density estimator
-
- The algorithm determines the bin in which the \f$0.5*cnt\f$-th sample lies, \f$cnt\f$ being
- the total number of samples. It returns the approximate horizontal position of this sample,
+
+ The algorithm determines the bin in which the \f$0.5*cnt\f$-th sample lies, \f$cnt\f$ being
+ the total number of samples. It returns the approximate horizontal position of this sample,
         based on a linear interpolation inside the bin.
     */
     template<typename Sample>
@@ -70,7 +70,7 @@
         typedef iterator_range<typename histogram_type::iterator> range_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         template<typename Args>
         with_density_weighted_median_impl(Args const &args)
           : sum(numeric::average(args[sample | Sample()], (std::size_t)1))
@@ -82,14 +82,14 @@
         {
             this->is_dirty = true;
         }
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 std::size_t cnt = count(args);
                 range_type histogram = weighted_density(args);
                 typename range_type::iterator it = histogram.begin();
@@ -102,7 +102,7 @@
                 float_type over = numeric::average(this->sum - 0.5 * cnt, it->second * cnt);
                 this->median = it->first * over + (it + 1)->first * ( 1. - over );
             }
-
+
             return this->median;
         }
 
@@ -117,9 +117,9 @@
     //
     /**
         @brief Median estimation for weighted samples based on the \f$P^2\f$ cumulative distribution estimator
-
- The algorithm determines the first (leftmost) bin with a height exceeding 0.5. It
- returns the approximate horizontal position of where the cumulative distribution
+
+ The algorithm determines the first (leftmost) bin with a height exceeding 0.5. It
+ returns the approximate horizontal position of where the cumulative distribution
         equals 0.5, based on a linear interpolation inside the bin.
     */
     template<typename Sample, typename Weight>
@@ -132,13 +132,12 @@
         typedef iterator_range<typename histogram_type::iterator> range_type;
         // for boost::result_of
         typedef float_type result_type;
-
- template<typename Args>
- with_p_square_cumulative_distribution_weighted_median_impl(Args const &args)
+
+ with_p_square_cumulative_distribution_weighted_median_impl(dont_care)
           : is_dirty(true)
         {
         }
-
+
         void operator ()(dont_care)
         {
             this->is_dirty = true;
@@ -150,7 +149,7 @@
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 range_type histogram = weighted_p_square_cumulative_distribution(args);
                 typename range_type::iterator it = histogram.begin();
                 while (it->second < 0.5)
@@ -160,7 +159,7 @@
                 float_type over = numeric::average(it->second - 0.5, it->second - (it - 1)->second);
                 this->median = it->first * over + (it + 1)->first * ( 1. - over );
             }
-
+
             return this->median;
         }
     private:

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_p_square_cumulative_distribution.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,17 +33,17 @@
     /**
         @brief Histogram calculation of the cumulative distribution with the \f$P^2\f$ algorithm for weighted samples
 
- A histogram of the sample cumulative distribution is computed dynamically without storing samples
- based on the \f$ P^2 \f$ algorithm for weighted samples. The returned histogram has a specifiable
+ A histogram of the sample cumulative distribution is computed dynamically without storing samples
+ based on the \f$ P^2 \f$ algorithm for weighted samples. The returned histogram has a specifiable
         amount (num_cells) equiprobable (and not equal-sized) cells.
-
- Note that applying importance sampling results in regions to be more and other regions to be less
+
+ Note that applying importance sampling results in regions to be more and other regions to be less
         accurately estimated than without importance sampling, i.e., with unweighted samples.
 
         For further details, see
 
- R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and
- histograms without storing observations, Communications of the ACM,
+ R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and
+ histograms without storing observations, Communications of the ACM,
         Volume 28 (October), Number 10, 1985, p. 1076-1085.
 
         @param p_square_cumulative_distribution_num_cells
@@ -58,7 +58,7 @@
         typedef std::vector<float_type> array_type;
         // for boost::result_of
         typedef iterator_range<typename histogram_type::iterator> result_type;
-
+
         template<typename Args>
         weighted_p_square_cumulative_distribution_impl(Args const &args)
           : num_cells(args[p_square_cumulative_distribution_num_cells])
@@ -67,14 +67,14 @@
           , desired_positions(num_cells + 1)
           , histogram(num_cells + 1)
           , is_dirty(true)
- {
+ {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             this->is_dirty = true;
-
+
             std::size_t cnt = count(args);
             std::size_t sample_cell = 1; // k
             std::size_t b = this->num_cells;
@@ -84,22 +84,22 @@
             {
                 this->heights[cnt - 1] = args[sample];
                 this->actual_positions[cnt - 1] = args[weight];
-
+
                 // complete the initialization of heights by sorting
                 if (cnt == b + 1)
                 {
                     //std::sort(this->heights.begin(), this->heights.end());
-
- // TODO: we need to sort the initial samples (in heights) in ascending order and
- // sort their weights (in actual_positions) the same way. The following lines do
+
+ // TODO: we need to sort the initial samples (in heights) in ascending order and
+ // sort their weights (in actual_positions) the same way. The following lines do
                     // it, but there must be a better and more efficient way of doing this.
                     typename array_type::iterator it_begin, it_end, it_min;
-
+
                     it_begin = this->heights.begin();
                     it_end = this->heights.end();
-
+
                     std::size_t pos = 0;
-
+
                     while (it_begin != it_end)
                     {
                         it_min = std::min_element(it_begin, it_end);
@@ -109,14 +109,14 @@
                         ++it_begin;
                         ++pos;
                     }
-
+
                     // calculate correct initial actual positions
                     for (std::size_t i = 1; i < b; ++i)
                     {
                         this->actual_positions[i] += this->actual_positions[i - 1];
                     }
                 }
- }
+ }
             else
             {
                 // find cell k such that heights[k-1] <= args[sample] < heights[k] and adjust extreme values
@@ -139,46 +139,46 @@
                       , this->heights.end()
                       , args[sample]
                     );
-
+
                     sample_cell = std::distance(this->heights.begin(), it);
                 }
-
+
                 // increment positions of markers above sample_cell
                 for (std::size_t i = sample_cell; i < b + 1; ++i)
                 {
                     this->actual_positions[i] += args[weight];
                 }
-
+
                 // determine desired marker positions
                 for (std::size_t i = 1; i < b + 1; ++i)
                 {
                     this->desired_positions[i] = this->actual_positions[0]
                                                + numeric::average((i-1) * (sum_of_weights(args) - this->actual_positions[0]), b);
                 }
-
+
                 // adjust heights of markers 2 to num_cells if necessary
                 for (std::size_t i = 1; i < b; ++i)
                 {
                     // offset to desire position
                     float_type d = this->desired_positions[i] - this->actual_positions[i];
-
+
                     // offset to next position
                     float_type dp = this->actual_positions[i + 1] - this->actual_positions[i];
-
+
                     // offset to previous position
                     float_type dm = this->actual_positions[i - 1] - this->actual_positions[i];
-
+
                     // height ds
                     float_type hp = (this->heights[i + 1] - this->heights[i]) / dp;
                     float_type hm = (this->heights[i - 1] - this->heights[i]) / dm;
-
+
                     if ( ( d >= 1. && dp > 1. ) || ( d <= -1. && dm < -1. ) )
                     {
                         short sign_d = static_cast<short>(d / std::abs(d));
-
+
                         // try adjusting heights[i] using p-squared formula
                         float_type h = this->heights[i] + sign_d / (dp - dm) * ( (sign_d - dm) * hp + (dp - sign_d) * hm );
-
+
                         if ( this->heights[i - 1] < h && h < this->heights[i + 1] )
                         {
                             this->heights[i] = h;
@@ -207,17 +207,17 @@
             if (this->is_dirty)
             {
                 this->is_dirty = false;
-
+
                 // creates a vector of std::pair where each pair i holds
                 // the values heights[i] (x-axis of histogram) and
                 // actual_positions[i] / sum_of_weights (y-axis of histogram)
-
+
                 for (std::size_t i = 0; i < this->histogram.size(); ++i)
                 {
                     this->histogram[i] = std::make_pair(this->heights[i], numeric::average(this->actual_positions[i], sum_of_weights(args)));
                 }
             }
-
+
             return make_iterator_range(this->histogram);
         }
 

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_p_square_quantile.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_p_square_quantile.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_p_square_quantile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,22 +32,22 @@
     /**
         @brief Single quantile estimation with the \f$P^2\f$ algorithm for weighted samples
 
- This version of the \f$P^2\f$ algorithm extends the \f$P^2\f$ algorithm to support weighted samples.
+ This version of the \f$P^2\f$ algorithm extends the \f$P^2\f$ algorithm to support weighted samples.
         The \f$P^2\f$ algorithm estimates a quantile dynamically without storing samples. Instead of
- storing the whole sample cumulative distribution, only five points (markers) are stored. The heights
- of these markers are the minimum and the maximum of the samples and the current estimates of the
- \f$(p/2)\f$-, \f$p\f$ - and \f$(1+p)/2\f$ -quantiles. Their positions are equal to the number
- of samples that are smaller or equal to the markers. Each time a new sample is added, the
+ storing the whole sample cumulative distribution, only five points (markers) are stored. The heights
+ of these markers are the minimum and the maximum of the samples and the current estimates of the
+ \f$(p/2)\f$-, \f$p\f$ - and \f$(1+p)/2\f$ -quantiles. Their positions are equal to the number
+ of samples that are smaller or equal to the markers. Each time a new sample is added, the
         positions of the markers are updated and if necessary their heights are adjusted using a piecewise-
         parabolic formula.
 
         For further details, see
 
- R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and
- histograms without storing observations, Communications of the ACM,
+ R. Jain and I. Chlamtac, The P^2 algorithmus for dynamic calculation of quantiles and
+ histograms without storing observations, Communications of the ACM,
         Volume 28 (October), Number 10, 1985, p. 1076-1085.
 
- @param quantile_probability
+ @param quantile_probability
     */
     template<typename Sample, typename Weight, typename Impl>
     struct weighted_p_square_quantile_impl
@@ -58,44 +58,44 @@
         typedef array<float_type, 5> array_type;
         // for boost::result_of
         typedef float_type result_type;
-
+
         template<typename Args>
         weighted_p_square_quantile_impl(Args const &args)
- : p(is_same<Impl, for_median>::value ? 0.5 : args[quantile_probability | 0.5])
+ : p(is_same<Impl, for_median>::value ? 0.5 : args[quantile_probability | 0.5])
           , heights()
           , actual_positions()
           , desired_positions()
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             std::size_t cnt = count(args);
-
+
             // accumulate 5 first samples
             if (cnt <= 5)
             {
                 this->heights[cnt - 1] = args[sample];
-
+
                 // In this initialization phase, actual_positions stores the weights of the
                 // inital samples that are needed at the end of the initialization phase to
                 // compute the correct initial positions of the markers.
                 this->actual_positions[cnt - 1] = args[weight];
-
+
                 // complete the initialization of heights and actual_positions by sorting
                 if (cnt == 5)
                 {
- // TODO: we need to sort the initial samples (in heights) in ascending order and
- // sort their weights (in actual_positions) the same way. The following lines do
+ // TODO: we need to sort the initial samples (in heights) in ascending order and
+ // sort their weights (in actual_positions) the same way. The following lines do
                     // it, but there must be a better and more efficient way of doing this.
                     typename array_type::iterator it_begin, it_end, it_min;
-
+
                     it_begin = this->heights.begin();
                     it_end = this->heights.end();
-
+
                     std::size_t pos = 0;
-
+
                     while (it_begin != it_end)
                     {
                         it_min = std::min_element(it_begin, it_end);
@@ -105,7 +105,7 @@
                         ++it_begin;
                         ++pos;
                     }
-
+
                     // calculate correct initial actual positions
                     for (std::size_t i = 1; i < 5; ++i)
                     {
@@ -140,13 +140,13 @@
 
                     sample_cell = std::distance(this->heights.begin(), it);
                 }
-
+
                 // increment positions of markers above sample_cell
                 for (std::size_t i = sample_cell; i < 5; ++i)
                 {
                     this->actual_positions[i] += args[weight];
                 }
-
+
                 // update desired positions for all markers
                 this->desired_positions[0] = this->actual_positions[0];
                 this->desired_positions[1] = (sum_of_weights(args) - this->actual_positions[0])
@@ -156,30 +156,30 @@
                 this->desired_positions[3] = (sum_of_weights(args) - this->actual_positions[0])
                                            * (1. + this->p)/2. + this->actual_positions[0];
                 this->desired_positions[4] = sum_of_weights(args);
-
+
                 // adjust height and actual positions of markers 1 to 3 if necessary
                 for (std::size_t i = 1; i <= 3; ++i)
                 {
                     // offset to desired positions
                     float_type d = this->desired_positions[i] - this->actual_positions[i];
-
+
                     // offset to next position
                     float_type dp = this->actual_positions[i + 1] - this->actual_positions[i];
-
+
                     // offset to previous position
                     float_type dm = this->actual_positions[i - 1] - this->actual_positions[i];
-
+
                     // height ds
                     float_type hp = (this->heights[i + 1] - this->heights[i]) / dp;
                     float_type hm = (this->heights[i - 1] - this->heights[i]) / dm;
-
+
                     if ( ( d >= 1. && dp > 1. ) || ( d <= -1. && dm < -1. ) )
                     {
                         short sign_d = static_cast<short>(d / std::abs(d));
-
+
                         // try adjusting heights[i] using p-squared formula
                         float_type h = this->heights[i] + sign_d / (dp - dm) * ( (sign_d - dm) * hp + (dp - sign_d) * hm );
-
+
                         if ( this->heights[i - 1] < h && h < this->heights[i + 1] )
                         {
                             this->heights[i] = h;
@@ -202,8 +202,7 @@
             }
         }
 
- template<typename Args>
- result_type result(Args const &args) const
+ result_type result(dont_care) const
         {
             return this->heights[2];
         }

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_peaks_over_threshold.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_peaks_over_threshold.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_peaks_over_threshold.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,7 +17,6 @@
 #include <boost/mpl/placeholders.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/tuple/tuple.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/accumulators/numeric/functional.hpp>
 #include <boost/accumulators/framework/accumulator_base.hpp>
 #include <boost/accumulators/framework/extractor.hpp>
@@ -29,18 +28,23 @@
 #include <boost/accumulators/statistics/sum.hpp>
 #include <boost/accumulators/statistics/tail_variate.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
 namespace impl
-{
+{
 
     ///////////////////////////////////////////////////////////////////////////////
     // weighted_peaks_over_threshold_impl
     // works with an explicit threshold value and does not depend on order statistics of weighted samples
     /**
         @brief Weighted Peaks over Threshold Method for Weighted Quantile and Weighted Tail Mean Estimation
-
+
         @sa peaks_over_threshold_impl
 
         @param quantile_probability
@@ -54,7 +58,7 @@
         typedef typename numeric::functional::average<weighted_sample, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef boost::tuple<float_type, float_type, float_type> result_type;
-
+
         template<typename Args>
         weighted_peaks_over_threshold_impl(Args const &args)
           : sign_((is_same<LeftRight, left>::value) ? -1 : 1)
@@ -66,12 +70,12 @@
           , is_dirty_(true)
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
             this->is_dirty_ = true;
-
+
             if (this->sign_ * args[sample] > this->threshold_)
             {
                 this->mu_ += args[weight] * args[sample];
@@ -86,13 +90,13 @@
             if (this->is_dirty_)
             {
                 this->is_dirty_ = false;
-
+
                 this->mu_ = this->sign_ * numeric::average(this->mu_, this->w_sum_);
                 this->sigma2_ = numeric::average(this->sigma2_, this->w_sum_);
                 this->sigma2_ -= this->mu_ * this->mu_;
-
+
                 float_type threshold_probability = numeric::average(sum_of_weights(args) - this->w_sum_, sum_of_weights(args));
-
+
                 float_type tmp = numeric::average(( this->mu_ - this->threshold_ )*( this->mu_ - this->threshold_ ), this->sigma2_);
                 float_type xi_hat = 0.5 * ( 1. - tmp );
                 float_type beta_hat = 0.5 * ( this->mu_ - this->threshold_ ) * ( 1. + tmp );
@@ -100,7 +104,7 @@
                 float_type u_bar = this->threshold_ - beta_bar * ( std::pow(1. - threshold_probability, -xi_hat) - 1.)/xi_hat;
                 this->fit_parameters_ = boost::make_tuple(u_bar, beta_bar, xi_hat);
             }
-
+
             return this->fit_parameters_;
         }
 
@@ -121,7 +125,7 @@
         @brief Peaks over Threshold Method for Quantile and Tail Mean Estimation
 
         @sa weighted_peaks_over_threshold_impl
-
+
         @param quantile_probability
         @param pot_threshold_probability
     */
@@ -133,7 +137,7 @@
         typedef typename numeric::functional::average<weighted_sample, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef boost::tuple<float_type, float_type, float_type> result_type;
-
+
         template<typename Args>
         weighted_peaks_over_threshold_prob_impl(Args const &args)
           : sign_((is_same<LeftRight, left>::value) ? -1 : 1)
@@ -144,28 +148,28 @@
           , is_dirty_(true)
         {
         }
-
+
         void operator ()(dont_care)
         {
             this->is_dirty_ = true;
         }
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             if (this->is_dirty_)
- {
+ {
                 this->is_dirty_ = false;
-
+
                 float_type threshold = sum_of_weights(args)
                              * ( ( is_same<LeftRight, left>::value ) ? this->threshold_probability_ : 1. - this->threshold_probability_ );
 
                 std::size_t n = 0;
                 Weight sum = Weight(0);
-
+
                 while (sum < threshold)
                 {
- if (n < tail_weights(args).size())
+ if (n < static_cast<std::size_t>(tail_weights(args).size()))
                     {
                         mu_ += *(tail_weights(args).begin() + n) * *(tail(args).begin() + n);
                         sigma2_ += *(tail_weights(args).begin() + n) * *(tail(args).begin() + n) * (*(tail(args).begin() + n));
@@ -191,17 +195,17 @@
                         }
                     }
                 }
-
+
                 float_type u = *(tail(args).begin() + n - 1) * this->sign_;
 
-
+
                 this->mu_ = this->sign_ * numeric::average(this->mu_, sum);
                 this->sigma2_ = numeric::average(this->sigma2_, sum);
                 this->sigma2_ -= this->mu_ * this->mu_;
 
                 if (is_same<LeftRight, left>::value)
                     this->threshold_probability_ = 1. - this->threshold_probability_;
-
+
                 float_type tmp = numeric::average(( this->mu_ - u )*( this->mu_ - u ), this->sigma2_);
                 float_type xi_hat = 0.5 * ( 1. - tmp );
                 float_type beta_hat = 0.5 * ( this->mu_ - u ) * ( 1. + tmp );
@@ -210,7 +214,7 @@
                 this->fit_parameters_ = boost::make_tuple(u_bar, beta_bar, xi_hat);
 
             }
-
+
             return this->fit_parameters_;
         }
 
@@ -219,7 +223,7 @@
         mutable float_type mu_; // mean of samples above threshold u
         mutable float_type sigma2_; // variance of samples above threshold u
         mutable float_type threshold_probability_;
- mutable result_type fit_parameters_; // boost::tuple that stores fit parameters
+ mutable result_type fit_parameters_; // boost::tuple that stores fit parameters
         mutable bool is_dirty_;
     };
 
@@ -238,7 +242,7 @@
         /// INTERNAL ONLY
         typedef accumulators::impl::weighted_peaks_over_threshold_impl<mpl::_1, mpl::_2, LeftRight> impl;
     };
-
+
     template<typename LeftRight>
     struct weighted_peaks_over_threshold_prob
       : depends_on<sum_of_weights, tail_weights<LeftRight> >
@@ -275,4 +279,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_skewness.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_skewness.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_skewness.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,18 +31,18 @@
 
         The skewness of a sample distribution is defined as the ratio of the 3rd central moment and the \f$ 3/2 \f$-th power $
         of the 2nd central moment (the variance) of the samples. The skewness can also be expressed by the simple moments:
-
+
         \f[
             \hat{g}_1 =
                 \frac
                 {\widehat{m}_n^{(3)}-3\widehat{m}_n^{(2)}\hat{\mu}_n+2\hat{\mu}_n^3}
                 {\left(\widehat{m}_n^{(2)} - \hat{\mu}_n^{2}\right)^{3/2}}
         \f]
-
- where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
+
+ where \f$ \widehat{m}_n^{(i)} \f$ are the \f$ i \f$-th moment and \f$ \hat{\mu}_n \f$ the mean (first moment) of the
         \f$ n \f$ samples.
-
- The skewness estimator for weighted samples is formally identical to the estimator for unweighted samples, except that
+
+ The skewness estimator for weighted samples is formally identical to the estimator for unweighted samples, except that
         the weighted counterparts of all measures it depends on are to be taken.
     */
     template<typename Sample, typename Weight>
@@ -59,10 +59,10 @@
         result_type result(Args const &args) const
         {
             return numeric::average(
- weighted_moment<3>(args)
+ weighted_moment<3>(args)
                         - 3. * weighted_moment<2>(args) * weighted_mean(args)
                         + 2. * weighted_mean(args) * weighted_mean(args) * weighted_mean(args)
- , ( weighted_moment<2>(args) - weighted_mean(args) * weighted_mean(args) )
+ , ( weighted_moment<2>(args) - weighted_mean(args) * weighted_mean(args) )
                       * std::sqrt( weighted_moment<2>(args) - weighted_mean(args) * weighted_mean(args) )
                    );
         }

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_sum.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_sum.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_sum.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,7 +30,7 @@
       : accumulator_base
     {
         typedef typename numeric::functional::multiplies<Sample, Weight>::result_type weighted_sample;
-
+
         // for boost::result_of
         typedef weighted_sample result_type;
 
@@ -42,7 +42,7 @@
             )
         {
         }
-
+
         template<typename Args>
         void operator ()(Args const &args)
         {
@@ -74,7 +74,7 @@
         ///
         typedef accumulators::impl::weighted_sum_impl<mpl::_1, mpl::_2, tag::sample> impl;
     };
-
+
     template<typename VariateType, typename VariateTag>
     struct weighted_sum_of_variates
       : depends_on<>
@@ -83,7 +83,7 @@
         ///
         typedef accumulators::impl::weighted_sum_impl<VariateType, mpl::_2, VariateTag> impl;
     };
-
+
     struct abstract_weighted_sum_of_variates
       : depends_on<>
     {

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_tail_mean.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_tail_mean.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_tail_mean.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,49 +27,54 @@
 #include <boost/accumulators/statistics/tail_mean.hpp>
 #include <boost/accumulators/statistics/parameters/quantile_probability.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
 namespace impl
 {
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // coherent_weighted_tail_mean_impl
     //
     // TODO
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // non_coherent_weighted_tail_mean_impl
- //
+ //
     /**
         @brief Estimation of the (non-coherent) weighted tail mean based on order statistics (for both left and right tails)
 
-
-
- An estimation of the non-coherent, weighted tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$ is given by the weighted mean
+
+
+ An estimation of the non-coherent, weighted tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$ is given by the weighted mean
         of the
-
+
         \f[
             \lambda = \inf\left\{ l \left| \frac{1}{\bar{w}_n}\sum_{i=1}^{l} w_i \geq \alpha \right. \right\}
         \f]
-
+
         smallest samples (left tail) or the weighted mean of the
-
+
         \f[
             n + 1 - \rho = n + 1 - \sup\left\{ r \left| \frac{1}{\bar{w}_n}\sum_{i=r}^{n} w_i \geq (1 - \alpha) \right. \right\}
         \f]
-
- largest samples (right tail) above a quantile \f$\hat{q}_{\alpha}\f$ of level \f$\alpha\f$, \f$n\f$ being the total number of sample
+
+ largest samples (right tail) above a quantile \f$\hat{q}_{\alpha}\f$ of level \f$\alpha\f$, \f$n\f$ being the total number of sample
         and \f$\bar{w}_n\f$ the sum of all \f$n\f$ weights:
-
+
         \f[
             \widehat{NCTM}_{n,\alpha}^{\mathrm{left}}(X) = \frac{\sum_{i=1}^{\lambda} w_i X_{i:n}}{\sum_{i=1}^{\lambda} w_i},
         \f]
-
+
         \f[
             \widehat{NCTM}_{n,\alpha}^{\mathrm{right}}(X) = \frac{\sum_{i=\rho}^n w_i X_{i:n}}{\sum_{i=\rho}^n w_i}.
         \f]
-
+
         @param quantile_probability
     */
     template<typename Sample, typename Weight, typename LeftRight>
@@ -80,9 +85,9 @@
         typedef typename numeric::functional::average<Weight, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef typename numeric::functional::average<weighted_sample, std::size_t>::result_type result_type;
-
+
         non_coherent_weighted_tail_mean_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
@@ -91,10 +96,10 @@
 
             std::size_t n = 0;
             Weight sum = Weight(0);
-
+
             while (sum < threshold)
             {
- if (n < tail_weights(args).size())
+ if (n < static_cast<std::size_t>(tail_weights(args).size()))
                 {
                     sum += *(tail_weights(args).begin() + n);
                     n++;
@@ -114,7 +119,7 @@
                     }
                 }
             }
-
+
             return numeric::average(
                 std::inner_product(
                     tail(args).begin()
@@ -123,7 +128,7 @@
                   , weighted_sample(0)
                 )
               , sum
- );
+ );
         }
     };
 
@@ -155,4 +160,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_tail_quantile.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_tail_quantile.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_tail_quantile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,33 +28,38 @@
 #include <boost/accumulators/statistics/tail_quantile.hpp>
 #include <boost/accumulators/statistics/parameters/quantile_probability.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost { namespace accumulators
 {
 
 namespace impl
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // weighted_tail_quantile_impl
     // Tail quantile estimation based on order statistics of weighted samples
     /**
         @brief Tail quantile estimation based on order statistics of weighted samples (for both left and right tails)
 
- An estimator \f$\hat{q}\f$ of tail quantiles with level \f$\alpha\f$ based on order statistics
- \f$X_{1:n} \leq X_{2:n} \leq\dots\leq X_{n:n}\f$ of weighted samples are given by \f$X_{\lambda:n}\f$ (left tail)
+ An estimator \f$\hat{q}\f$ of tail quantiles with level \f$\alpha\f$ based on order statistics
+ \f$X_{1:n} \leq X_{2:n} \leq\dots\leq X_{n:n}\f$ of weighted samples are given by \f$X_{\lambda:n}\f$ (left tail)
         and \f$X_{\rho:n}\f$ (right tail), where
-
+
             \f[
                 \lambda = \inf\left\{ l \left| \frac{1}{\bar{w}_n}\sum_{i=1}^{l} w_i \geq \alpha \right. \right\}
             \f]
-
+
         and
-
+
             \f[
                 \rho = \sup\left\{ r \left| \frac{1}{\bar{w}_n}\sum_{i=r}^{n} w_i \geq (1 - \alpha) \right. \right\},
             \f]
-
+
         \f$n\f$ being the number of samples and \f$\bar{w}_n\f$ the sum of all weights.
-
+
         @param quantile_probability
     */
     template<typename Sample, typename Weight, typename LeftRight>
@@ -64,9 +69,9 @@
         typedef typename numeric::functional::average<Weight, std::size_t>::result_type float_type;
         // for boost::result_of
         typedef Sample result_type;
-
+
         weighted_tail_quantile_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
@@ -75,10 +80,10 @@
 
             std::size_t n = 0;
             Weight sum = Weight(0);
-
+
             while (sum < threshold)
             {
- if (n < tail_weights(args).size())
+ if (n < static_cast<std::size_t>(tail_weights(args).size()))
                 {
                     sum += *(tail_weights(args).begin() + n);
                     n++;
@@ -98,8 +103,8 @@
                     }
                 }
             }
-
- // Note that the cached samples of the left are sorted in ascending order,
+
+ // Note that the cached samples of the left are sorted in ascending order,
             // whereas the samples of the right tail are sorted in descending order
             return *(boost::begin(tail(args)) + n - 1);
         }
@@ -132,4 +137,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_tail_variate_means.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_tail_variate_means.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_tail_variate_means.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,7 +15,6 @@
 #include <sstream>
 #include <stdexcept>
 #include <boost/throw_exception.hpp>
-#include <boost/lambda/lambda.hpp>
 #include <boost/parameter/keyword.hpp>
 #include <boost/mpl/placeholders.hpp>
 #include <boost/type_traits/is_same.hpp>
@@ -30,6 +29,11 @@
 #include <boost/accumulators/statistics/weighted_tail_mean.hpp>
 #include <boost/accumulators/statistics/parameters/quantile_probability.hpp>
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4127) // conditional expression is constant
+#endif
+
 namespace boost
 {
     // for _BinaryOperatrion2 in std::inner_product below
@@ -53,49 +57,49 @@
 {
     /**
         @brief Estimation of the absolute and relative weighted tail variate means (for both left and right tails)
-
- For all \f$j\f$-th variates associated to the
-
+
+ For all \f$j\f$-th variates associated to the
+
         \f[
             \lambda = \inf\left\{ l \left| \frac{1}{\bar{w}_n}\sum_{i=1}^{l} w_i \geq \alpha \right. \right\}
         \f]
-
+
         smallest samples (left tail) or the weighted mean of the
-
+
         \f[
             n + 1 - \rho = n + 1 - \sup\left\{ r \left| \frac{1}{\bar{w}_n}\sum_{i=r}^{n} w_i \geq (1 - \alpha) \right. \right\}
         \f]
-
- largest samples (right tail), the absolute weighted tail means \f$\widehat{ATM}_{n,\alpha}(X, j)\f$
- are computed and returned as an iterator range. Alternatively, the relative weighted tail means
- \f$\widehat{RTM}_{n,\alpha}(X, j)\f$ are returned, which are the absolute weighted tail means
+
+ largest samples (right tail), the absolute weighted tail means \f$\widehat{ATM}_{n,\alpha}(X, j)\f$
+ are computed and returned as an iterator range. Alternatively, the relative weighted tail means
+ \f$\widehat{RTM}_{n,\alpha}(X, j)\f$ are returned, which are the absolute weighted tail means
         normalized with the weighted (non-coherent) sample tail mean \f$\widehat{NCTM}_{n,\alpha}(X)\f$.
-
+
         \f[
- \widehat{ATM}_{n,\alpha}^{\mathrm{right}}(X, j) =
+ \widehat{ATM}_{n,\alpha}^{\mathrm{right}}(X, j) =
                 \frac{1}{\sum_{i=\rho}^n w_i}
                 \sum_{i=\rho}^n w_i \xi_{j,i}
         \f]
-
+
         \f[
- \widehat{ATM}_{n,\alpha}^{\mathrm{left}}(X, j) =
+ \widehat{ATM}_{n,\alpha}^{\mathrm{left}}(X, j) =
                 \frac{1}{\sum_{i=1}^{\lambda}}
                 \sum_{i=1}^{\lambda} w_i \xi_{j,i}
         \f]
-
+
         \f[
- \widehat{RTM}_{n,\alpha}^{\mathrm{right}}(X, j) =
+ \widehat{RTM}_{n,\alpha}^{\mathrm{right}}(X, j) =
                 \frac{\sum_{i=\rho}^n w_i \xi_{j,i}}
             {\sum_{i=\rho}^n w_i \widehat{NCTM}_{n,\alpha}^{\mathrm{right}}(X)}
         \f]
-
+
         \f[
- \widehat{RTM}_{n,\alpha}^{\mathrm{left}}(X, j) =
+ \widehat{RTM}_{n,\alpha}^{\mathrm{left}}(X, j) =
                 \frac{\sum_{i=1}^{\lambda} w_i \xi_{j,i}}
             {\sum_{i=1}^{\lambda} w_i \widehat{NCTM}_{n,\alpha}^{\mathrm{left}}(X)}
         \f]
     */
-
+
     ///////////////////////////////////////////////////////////////////////////////
     // weighted_tail_variate_means_impl
     // by default: absolute weighted_tail_variate_means
@@ -107,21 +111,21 @@
         typedef typename numeric::functional::average<typename numeric::functional::multiplies<VariateType, Weight>::result_type, Weight>::result_type array_type;
         // for boost::result_of
         typedef iterator_range<typename array_type::iterator> result_type;
-
+
         weighted_tail_variate_means_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
             float_type threshold = sum_of_weights(args)
                              * ( ( is_same<LeftRight, left>::value ) ? args[quantile_probability] : 1. - args[quantile_probability] );
-
+
             std::size_t n = 0;
             Weight sum = Weight(0);
-
+
             while (sum < threshold)
             {
- if (n < tail_weights(args).size())
+ if (n < static_cast<std::size_t>(tail_weights(args).size()))
                 {
                     sum += *(tail_weights(args).begin() + n);
                     n++;
@@ -144,9 +148,9 @@
                     }
                 }
             }
-
+
             std::size_t num_variates = tail_variate(args).begin()->size();
-
+
             this->tail_means_.clear();
             this->tail_means_.resize(num_variates, Sample(0));
 
@@ -158,27 +162,25 @@
               , numeric::functional::plus<array_type const, array_type const>()
               , numeric::functional::multiply_and_promote_to_double<VariateType const, Weight const>()
             );
-
+
             float_type factor = sum * ( (is_same<Impl, relative>::value) ? non_coherent_weighted_tail_mean(args) : 1. );
-
- using boost::lambda::_1;
-
+
             std::transform(
                 this->tail_means_.begin()
               , this->tail_means_.end()
               , this->tail_means_.begin()
- , _1 / factor
- );
-
+ , std::bind2nd(numeric::functional::divides<typename array_type::value_type const, float_type const>(), factor)
+ );
+
             return make_iterator_range(this->tail_means_);
         }
 
     private:
-
+
         mutable array_type tail_means_;
-
+
     };
-
+
 } // namespace impl
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -193,7 +195,7 @@
     {
         typedef accumulators::impl::weighted_tail_variate_means_impl<mpl::_1, mpl::_2, absolute, LeftRight, VariateType> impl;
     };
- template<typename LeftRight, typename VariateType, typename VariateTag>
+ template<typename LeftRight, typename VariateType, typename VariateTag>
     struct relative_weighted_tail_variate_means
       : depends_on<non_coherent_weighted_tail_mean<LeftRight>, tail_variate<VariateType, VariateTag, LeftRight>, tail_weights<LeftRight> >
     {
@@ -230,4 +232,8 @@
 
 }} // namespace boost::accumulators
 
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/accumulators/statistics/weighted_variance.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics/weighted_variance.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics/weighted_variance.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,11 +28,11 @@
 {
     //! Lazy calculation of variance of weighted samples.
     /*!
- The default implementation of the variance of weighted samples is based on the second moment
+ The default implementation of the variance of weighted samples is based on the second moment
         \f$\widehat{m}_n^{(2)}\f$ (weighted_moment<2>) and the mean\f$ \hat{\mu}_n\f$ (weighted_mean):
         \f{
             \hat{\sigma}_n^2 = \widehat{m}_n^{(2)}-\hat{\mu}_n^2,
- \f]
+ \f]
         where \f$n\f$ is the number of samples.
     */
     template<typename Sample, typename Weight, typename MeanFeature>
@@ -44,7 +44,7 @@
         typedef typename numeric::functional::average<weighted_sample, Weight>::result_type result_type;
 
         weighted_variance_impl(dont_care) {}
-
+
         template<typename Args>
         result_type result(Args const &args) const
         {
@@ -58,13 +58,13 @@
     /*!
         Iterative calculation of variance of weighted samples:
         \f[
- \hat{\sigma}_n^2 =
- \frac{\bar{w}_n - w_n}{\bar{w}_n}\hat{\sigma}_{n - 1}^2
+ \hat{\sigma}_n^2 =
+ \frac{\bar{w}_n - w_n}{\bar{w}_n}\hat{\sigma}_{n - 1}^2
               + \frac{w_n}{\bar{w}_n - w_n}\left(X_n - \hat{\mu}_n\right)^2
             ,\quad n\ge2,\quad\hat{\sigma}_0^2 = 0.
         \f]
- where \f$\bar{w}_n\f$ is the sum of the \f$n\f$ weights \f$w_i\f$ and \f$\hat{\mu}_n\f$
- the estimate of the mean of the weighted smaples. Note that the sample variance is not defined for
+ where \f$\bar{w}_n\f$ is the sum of the \f$n\f$ weights \f$w_i\f$ and \f$\hat{\mu}_n\f$
+ the estimate of the mean of the weighted smaples. Note that the sample variance is not defined for
         \f$n <= 1\f$.
     */
     template<typename Sample, typename Weight, typename MeanFeature, typename Tag>
@@ -85,13 +85,13 @@
         void operator ()(Args const &args)
         {
             std::size_t cnt = count(args);
-
+
             if(cnt > 1)
             {
                 extractor<MeanFeature> const some_mean = {};
-
+
                 result_type tmp = args[parameter::keyword<Tag>::get()] - some_mean(args);
-
+
                 this->weighted_variance =
                     numeric::average(this->weighted_variance * (sum_of_weights(args) - args[weight]), sum_of_weights(args))
                   + numeric::average(tmp * tmp * args[weight], sum_of_weights(args) - args[weight] );
@@ -172,9 +172,7 @@
 //{
 // template<typename Args>
 // droppable_accumulator(Args const &args)
-// : droppable_accumulator_base<
-// with_cached_result<impl::weighted_variance_impl<Sample, Weight, MeanFeature> >
-// >(args)
+// : droppable_accumulator::base(args)
 // {
 // }
 //};

Modified: branches/proto/v3/boost/accumulators/statistics_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/accumulators/statistics_fwd.hpp (original)
+++ branches/proto/v3/boost/accumulators/statistics_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -51,7 +51,7 @@
 using extract::tail_mean;
 
 namespace tag
-{
+{
     ///////////////////////////////////////////////////////////////////////////////
     // Variates tags
     struct weights;
@@ -121,7 +121,7 @@
     struct right_tail_variate;
     template<typename VariateType, typename VariateTag, typename LeftRight>
     struct left_tail_variate;
- template<typename LeftRight, typename VariateType, typename VariateTag>
+ template<typename LeftRight, typename VariateType, typename VariateTag>
     struct tail_variate_means;
     template<typename LeftRight, typename VariateType, typename VariateTag>
     struct absolute_tail_variate_means;
@@ -134,7 +134,7 @@
     struct weighted_density;
     struct weighted_kurtosis;
     struct weighted_mean;
- struct immediate_weighted_mean;
+ struct immediate_weighted_mean;
     template<typename VariateType, typename VariateTag>
     struct weighted_mean_of_variates;
     template<typename VariateType, typename VariateTag>
@@ -187,28 +187,28 @@
     ///////////////////////////////////////////////////////////////////////////////
     // Statistics impls
     struct count_impl;
-
+
     template<typename Sample, typename VariateType, typename VariateTag>
     struct covariance_impl;
 
     template<typename Sample>
     struct density_impl;
-
+
     template<typename Sample, typename Feature>
     struct error_of_impl;
 
     template<typename Sample, typename Variance>
     struct error_of_mean_impl;
-
+
     template<typename Sample>
     struct extended_p_square_impl;
-
+
     template<typename Sample, typename Impl1, typename Impl2>
     struct extended_p_square_quantile_impl;
-
+
     template<typename Sample>
     struct kurtosis_impl;
-
+
     template<typename Sample>
     struct max_impl;
 
@@ -220,7 +220,7 @@
 
     template<typename Sample>
     struct with_p_square_cumulative_distribution_median_impl;
-
+
     template<typename Sample>
     struct min_impl;
 
@@ -232,16 +232,16 @@
 
     template<typename N, typename Sample>
     struct moment_impl;
-
+
     template<typename Sample, typename LeftRight>
     struct peaks_over_threshold_prob_impl;
-
+
     template<typename Sample, typename Impl, typename LeftRight>
     struct pot_quantile_impl;
 
     template<typename Sample, typename Impl, typename LeftRight>
     struct pot_tail_mean_impl;
-
+
     template<typename Sample>
     struct p_square_cumulative_distribution_impl;
 
@@ -250,37 +250,37 @@
 
     template<typename Sample>
     struct skewness_impl;
-
+
     template<typename Sample, typename Tag = tag::sample>
     struct sum_impl;
-
+
     template<typename Sample, typename LeftRight>
     struct tail_impl;
-
+
     template<typename Sample, typename LeftRight>
     struct coherent_tail_mean_impl;
 
     template<typename Sample, typename LeftRight>
     struct non_coherent_tail_mean_impl;
-
+
     template<typename Sample, typename LeftRight>
     struct tail_quantile_impl;
 
     template<typename VariateType, typename VariateTag, typename LeftRight>
     struct tail_variate_impl;
-
+
     template<typename Sample, typename Impl, typename LeftRight, typename VariateTag>
     struct tail_variate_means_impl;
-
+
     template<typename Sample, typename MeanFeature>
     struct variance_impl;
 
     template<typename Sample, typename MeanFeature, typename Tag>
     struct immediate_variance_impl;
-
+
     template<typename Sample, typename Weight, typename VariateType, typename VariateTag>
     struct weighted_covariance_impl;
-
+
     template<typename Sample, typename Weight>
     struct weighted_density_impl;
 
@@ -294,22 +294,22 @@
     struct with_density_weighted_median_impl;
 
     template<typename Sample, typename Weight>
- struct with_p_square_cumulative_distribution_weighted_median_impl;
+ struct with_p_square_cumulative_distribution_weighted_median_impl;
 
     template<typename Sample, typename Weight, typename Tag>
     struct weighted_mean_impl;
 
     template<typename Sample, typename Weight, typename Tag>
     struct immediate_weighted_mean_impl;
-
+
     template<typename Sample, typename Weight, typename LeftRight>
     struct weighted_peaks_over_threshold_impl;
-
+
     template<typename Sample, typename Weight, typename LeftRight>
- struct weighted_peaks_over_threshold_prob_impl;
-
+ struct weighted_peaks_over_threshold_prob_impl;
+
     template<typename Sample, typename Weight>
- struct with_p_square_cumulative_distribution_weighted_median_impl;
+ struct with_p_square_cumulative_distribution_weighted_median_impl;
 
     template<typename Sample, typename Weight>
     struct weighted_extended_p_square_impl;
@@ -328,16 +328,16 @@
 
     template<typename Sample, typename Weight, typename Tag>
     struct weighted_sum_impl;
-
+
     template<typename Sample, typename Weight, typename LeftRight>
     struct non_coherent_weighted_tail_mean_impl;
-
+
     template<typename Sample, typename Weight, typename LeftRight>
     struct weighted_tail_quantile_impl;
-
+
     template<typename Sample, typename Weight, typename Impl, typename LeftRight, typename VariateType>
     struct weighted_tail_variate_means_impl;
-
+
     template<typename Sample, typename Weight, typename MeanFeature>
     struct weighted_variance_impl;
 

Modified: branches/proto/v3/boost/asio.hpp
==============================================================================
--- branches/proto/v3/boost/asio.hpp (original)
+++ branches/proto/v3/boost/asio.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // asio.hpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_datagram_socket.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_datagram_socket.hpp (original)
+++ branches/proto/v3/boost/asio/basic_datagram_socket.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_datagram_socket.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_deadline_timer.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_deadline_timer.hpp (original)
+++ branches/proto/v3/boost/asio/basic_deadline_timer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_deadline_timer.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_io_object.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_io_object.hpp (original)
+++ branches/proto/v3/boost/asio/basic_io_object.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_io_object.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_socket.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_socket.hpp (original)
+++ branches/proto/v3/boost/asio/basic_socket.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_socket.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -17,6 +17,10 @@
 
 #include <boost/asio/detail/push_options.hpp>
 
+#include <boost/asio/detail/push_options.hpp>
+#include <boost/config.hpp>
+#include <boost/asio/detail/pop_options.hpp>
+
 #include <boost/asio/basic_io_object.hpp>
 #include <boost/asio/error.hpp>
 #include <boost/asio/socket_base.hpp>
@@ -296,7 +300,40 @@
    * will be passed the boost::asio::error::operation_aborted error.
    *
    * @throws boost::system::system_error Thrown on failure.
- */
+ *
+ * @note Calls to cancel() will always fail with
+ * boost::asio::error::operation_not_supported when run on Windows XP, Windows
+ * Server 2003, and earlier versions of Windows, unless
+ * BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has
+ * two issues that should be considered before enabling its use:
+ *
+ * @li It will only cancel asynchronous operations that were initiated in the
+ * current thread.
+ *
+ * @li It can appear to complete without error, but the request to cancel the
+ * unfinished operations may be silently ignored by the operating system.
+ * Whether it works or not seems to depend on the drivers that are installed.
+ *
+ * For portable cancellation, consider using one of the following
+ * alternatives:
+ *
+ * @li Disable asio's I/O completion port backend by defining
+ * BOOST_ASIO_DISABLE_IOCP.
+ *
+ * @li Use the close() function to simultaneously cancel the outstanding
+ * operations and close the socket.
+ *
+ * When running on Windows Vista, Windows Server 2008, and later, the
+ * CancelIoEx function is always used. This function does not have the
+ * problems described above.
+ */
+#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) \
+ && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \
+ && !defined(BOOST_ASIO_ENABLE_CANCELIO)
+ __declspec(deprecated("By default, this function always fails with "
+ "operation_not_supported when used on Windows XP, Windows Server 2003, "
+ "or earlier. Consult documentation for details."))
+#endif
   void cancel()
   {
     boost::system::error_code ec;
@@ -311,7 +348,40 @@
    * will be passed the boost::asio::error::operation_aborted error.
    *
    * @param ec Set to indicate what error occurred, if any.
- */
+ *
+ * @note Calls to cancel() will always fail with
+ * boost::asio::error::operation_not_supported when run on Windows XP, Windows
+ * Server 2003, and earlier versions of Windows, unless
+ * BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has
+ * two issues that should be considered before enabling its use:
+ *
+ * @li It will only cancel asynchronous operations that were initiated in the
+ * current thread.
+ *
+ * @li It can appear to complete without error, but the request to cancel the
+ * unfinished operations may be silently ignored by the operating system.
+ * Whether it works or not seems to depend on the drivers that are installed.
+ *
+ * For portable cancellation, consider using one of the following
+ * alternatives:
+ *
+ * @li Disable asio's I/O completion port backend by defining
+ * BOOST_ASIO_DISABLE_IOCP.
+ *
+ * @li Use the close() function to simultaneously cancel the outstanding
+ * operations and close the socket.
+ *
+ * When running on Windows Vista, Windows Server 2008, and later, the
+ * CancelIoEx function is always used. This function does not have the
+ * problems described above.
+ */
+#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) \
+ && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \
+ && !defined(BOOST_ASIO_ENABLE_CANCELIO)
+ __declspec(deprecated("By default, this function always fails with "
+ "operation_not_supported when used on Windows XP, Windows Server 2003, "
+ "or earlier. Consult documentation for details."))
+#endif
   boost::system::error_code cancel(boost::system::error_code& ec)
   {
     return this->service.cancel(this->implementation, ec);

Modified: branches/proto/v3/boost/asio/basic_socket_acceptor.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_socket_acceptor.hpp (original)
+++ branches/proto/v3/boost/asio/basic_socket_acceptor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_socket_acceptor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_socket_iostream.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_socket_iostream.hpp (original)
+++ branches/proto/v3/boost/asio/basic_socket_iostream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_socket_iostream.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -49,6 +49,7 @@
     : std::basic_iostream<char>(&this->boost::base_from_member< \
         basic_socket_streambuf<Protocol, StreamSocketService> >::member) \
   { \
+ tie(this); \
     if (rdbuf()->connect(BOOST_PP_ENUM_PARAMS(n, x)) == 0) \
       this->setstate(std::ios_base::failbit); \
   } \
@@ -89,6 +90,7 @@
     : std::basic_iostream<char>(&this->boost::base_from_member<
         basic_socket_streambuf<Protocol, StreamSocketService> >::member)
   {
+ tie(this);
   }
 
 #if defined(GENERATING_DOCUMENTATION)

Modified: branches/proto/v3/boost/asio/basic_socket_streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_socket_streambuf.hpp (original)
+++ branches/proto/v3/boost/asio/basic_socket_streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_socket_streambuf.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_stream_socket.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_stream_socket.hpp (original)
+++ branches/proto/v3/boost/asio/basic_stream_socket.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_stream_socket.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/basic_streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/asio/basic_streambuf.hpp (original)
+++ branches/proto/v3/boost/asio/basic_streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_streambuf.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/buffer.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffer.hpp (original)
+++ branches/proto/v3/boost/asio/buffer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffer.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -393,7 +393,12 @@
 
   ~buffer_debug_check()
   {
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
+ // MSVC's string iterator checking may crash in a std::string::iterator
+ // object's destructor when the iterator points to an already-destroyed
+ // std::string object, unless the iterator is cleared first.
     iter_ = Iterator();
+#endif // BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
   }
 
   void operator()()

Modified: branches/proto/v3/boost/asio/buffered_read_stream.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffered_read_stream.hpp (original)
+++ branches/proto/v3/boost/asio/buffered_read_stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_read_stream.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/buffered_read_stream_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffered_read_stream_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/buffered_read_stream_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_read_stream_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/buffered_stream.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffered_stream.hpp (original)
+++ branches/proto/v3/boost/asio/buffered_stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_stream.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/buffered_stream_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffered_stream_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/buffered_stream_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_stream_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/buffered_write_stream.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffered_write_stream.hpp (original)
+++ branches/proto/v3/boost/asio/buffered_write_stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_write_stream.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/buffered_write_stream_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/buffered_write_stream_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/buffered_write_stream_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_write_stream_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/completion_condition.hpp
==============================================================================
--- branches/proto/v3/boost/asio/completion_condition.hpp (original)
+++ branches/proto/v3/boost/asio/completion_condition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // completion_condition.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/datagram_socket_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/datagram_socket_service.hpp (original)
+++ branches/proto/v3/boost/asio/datagram_socket_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // datagram_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/deadline_timer.hpp
==============================================================================
--- branches/proto/v3/boost/asio/deadline_timer.hpp (original)
+++ branches/proto/v3/boost/asio/deadline_timer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // deadline_timer.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/deadline_timer_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/deadline_timer_service.hpp (original)
+++ branches/proto/v3/boost/asio/deadline_timer_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // deadline_timer_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/bind_handler.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/bind_handler.hpp (original)
+++ branches/proto/v3/boost/asio/detail/bind_handler.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // bind_handler.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -69,7 +69,7 @@
 inline void asio_handler_invoke(const Function& function,
     binder1<Handler, Arg1>* this_handler)
 {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
       function, &this_handler->handler_);
 }
 
@@ -127,7 +127,7 @@
 inline void asio_handler_invoke(const Function& function,
     binder2<Handler, Arg1, Arg2>* this_handler)
 {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
       function, &this_handler->handler_);
 }
 
@@ -189,7 +189,7 @@
 inline void asio_handler_invoke(const Function& function,
     binder3<Handler, Arg1, Arg2, Arg3>* this_handler)
 {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
       function, &this_handler->handler_);
 }
 
@@ -256,7 +256,7 @@
 inline void asio_handler_invoke(const Function& function,
     binder4<Handler, Arg1, Arg2, Arg3, Arg4>* this_handler)
 {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
       function, &this_handler->handler_);
 }
 
@@ -328,7 +328,7 @@
 inline void asio_handler_invoke(const Function& function,
     binder5<Handler, Arg1, Arg2, Arg3, Arg4, Arg5>* this_handler)
 {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
       function, &this_handler->handler_);
 }
 

Modified: branches/proto/v3/boost/asio/detail/buffer_resize_guard.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/buffer_resize_guard.hpp (original)
+++ branches/proto/v3/boost/asio/detail/buffer_resize_guard.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffer_resize_guard.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/buffered_stream_storage.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/buffered_stream_storage.hpp (original)
+++ branches/proto/v3/boost/asio/detail/buffered_stream_storage.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_stream_storage.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/call_stack.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/call_stack.hpp (original)
+++ branches/proto/v3/boost/asio/detail/call_stack.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // call_stack.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/const_buffers_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/const_buffers_iterator.hpp (original)
+++ branches/proto/v3/boost/asio/detail/const_buffers_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // const_buffers_iterator.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/consuming_buffers.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/consuming_buffers.hpp (original)
+++ branches/proto/v3/boost/asio/detail/consuming_buffers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // consuming_buffers.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/deadline_timer_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/deadline_timer_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/deadline_timer_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // deadline_timer_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/dev_poll_reactor.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/dev_poll_reactor.hpp (original)
+++ branches/proto/v3/boost/asio/detail/dev_poll_reactor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // dev_poll_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/dev_poll_reactor_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/dev_poll_reactor_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/dev_poll_reactor_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // dev_poll_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/epoll_reactor.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/epoll_reactor.hpp (original)
+++ branches/proto/v3/boost/asio/detail/epoll_reactor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // epoll_reactor.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -67,7 +67,8 @@
       pending_cancellations_(),
       stop_thread_(false),
       thread_(0),
- shutdown_(false)
+ shutdown_(false),
+ need_epoll_wait_(true)
   {
     // Start the reactor's internal thread only if needed.
     if (Own_Thread)
@@ -388,7 +389,9 @@
 
     // Block on the epoll descriptor.
     epoll_event events[128];
- int num_events = epoll_wait(epoll_fd_, events, 128, timeout);
+ int num_events = (block || need_epoll_wait_)
+ ? epoll_wait(epoll_fd_, events, 128, timeout)
+ : 0;
 
     lock.lock();
     wait_in_progress_ = false;
@@ -479,6 +482,10 @@
       cancel_ops_unlocked(pending_cancellations_[i]);
     pending_cancellations_.clear();
 
+ // Determine whether epoll_wait should be called when the reactor next runs.
+ need_epoll_wait_ = !read_op_queue_.empty()
+ || !write_op_queue_.empty() || !except_op_queue_.empty();
+
     cleanup_operations_and_timers(lock);
   }
 
@@ -633,6 +640,9 @@
 
   // Whether the service has been shut down.
   bool shutdown_;
+
+ // Whether we need to call epoll_wait the next time the reactor is run.
+ bool need_epoll_wait_;
 };
 
 } // namespace detail

Modified: branches/proto/v3/boost/asio/detail/epoll_reactor_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/epoll_reactor_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/epoll_reactor_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // epoll_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/event.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/event.hpp (original)
+++ branches/proto/v3/boost/asio/detail/event.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // event.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/fd_set_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/fd_set_adapter.hpp (original)
+++ branches/proto/v3/boost/asio/detail/fd_set_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // fd_set_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/handler_alloc_helpers.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/handler_alloc_helpers.hpp (original)
+++ branches/proto/v3/boost/asio/detail/handler_alloc_helpers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // handler_alloc_helpers.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/handler_invoke_helpers.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/handler_invoke_helpers.hpp (original)
+++ branches/proto/v3/boost/asio/detail/handler_invoke_helpers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // handler_invoke_helpers.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -24,9 +24,9 @@
 #include <boost/asio/handler_invoke_hook.hpp>
 
 // Calls to asio_handler_invoke must be made from a namespace that does not
-// contain overloads of this function. The asio_handler_invoke_helpers
+// contain overloads of this function. The boost_asio_handler_invoke_helpers
 // namespace is defined here for that purpose.
-namespace asio_handler_invoke_helpers {
+namespace boost_asio_handler_invoke_helpers {
 
 template <typename Function, typename Context>
 inline void invoke(const Function& function, Context* context)
@@ -40,7 +40,7 @@
 #endif
 }
 
-} // namespace asio_handler_invoke_helpers
+} // namespace boost_asio_handler_invoke_helpers
 
 #include <boost/asio/detail/pop_options.hpp>
 

Modified: branches/proto/v3/boost/asio/detail/handler_queue.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/handler_queue.hpp (original)
+++ branches/proto/v3/boost/asio/detail/handler_queue.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // handler_queue.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -189,7 +189,7 @@
       ptr.reset();
 
       // Make the upcall.
- asio_handler_invoke_helpers::invoke(handler, &handler);
+ boost_asio_handler_invoke_helpers::invoke(handler, &handler);
     }
 
     static void do_destroy(handler* base)

Modified: branches/proto/v3/boost/asio/detail/hash_map.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/hash_map.hpp (original)
+++ branches/proto/v3/boost/asio/detail/hash_map.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // hash_map.hpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/io_control.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/io_control.hpp (original)
+++ branches/proto/v3/boost/asio/detail/io_control.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // io_control.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/kqueue_reactor.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/kqueue_reactor.hpp (original)
+++ branches/proto/v3/boost/asio/detail/kqueue_reactor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // kqueue_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -75,7 +75,8 @@
       pending_cancellations_(),
       stop_thread_(false),
       thread_(0),
- shutdown_(false)
+ shutdown_(false),
+ need_kqueue_wait_(true)
   {
     // Start the reactor's internal thread only if needed.
     if (Own_Thread)
@@ -374,7 +375,9 @@
 
     // Block on the kqueue descriptor.
     struct kevent events[128];
- int num_events = kevent(kqueue_fd_, 0, 0, events, 128, timeout);
+ int num_events = (block || need_kqueue_wait_)
+ ? kevent(kqueue_fd_, 0, 0, events, 128, timeout)
+ : 0;
 
     lock.lock();
     wait_in_progress_ = false;
@@ -479,6 +482,10 @@
       cancel_ops_unlocked(pending_cancellations_[i]);
     pending_cancellations_.clear();
 
+ // Determine whether kqueue needs to be called next time the reactor is run.
+ need_kqueue_wait_ = !read_op_queue_.empty()
+ || !write_op_queue_.empty() || !except_op_queue_.empty();
+
     cleanup_operations_and_timers(lock);
   }
 
@@ -631,6 +638,9 @@
 
   // Whether the service has been shut down.
   bool shutdown_;
+
+ // Whether we need to call kqueue the next time the reactor is run.
+ bool need_kqueue_wait_;
 };
 
 } // namespace detail

Modified: branches/proto/v3/boost/asio/detail/kqueue_reactor_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/kqueue_reactor_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/kqueue_reactor_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // kqueue_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/proto/v3/boost/asio/detail/local_free_on_block_exit.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/local_free_on_block_exit.hpp (original)
+++ branches/proto/v3/boost/asio/detail/local_free_on_block_exit.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // local_free_on_block_exit.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/mutex.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/mutex.hpp (original)
+++ branches/proto/v3/boost/asio/detail/mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mutex.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/noncopyable.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/noncopyable.hpp (original)
+++ branches/proto/v3/boost/asio/detail/noncopyable.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // noncopyable.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/null_event.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/null_event.hpp (original)
+++ branches/proto/v3/boost/asio/detail/null_event.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // null_event.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/null_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/null_mutex.hpp (original)
+++ branches/proto/v3/boost/asio/detail/null_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // null_mutex.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/null_signal_blocker.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/null_signal_blocker.hpp (original)
+++ branches/proto/v3/boost/asio/detail/null_signal_blocker.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // null_signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/null_thread.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/null_thread.hpp (original)
+++ branches/proto/v3/boost/asio/detail/null_thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // null_thread.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/null_tss_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/null_tss_ptr.hpp (original)
+++ branches/proto/v3/boost/asio/detail/null_tss_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // null_tss_ptr.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/old_win_sdk_compat.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/old_win_sdk_compat.hpp (original)
+++ branches/proto/v3/boost/asio/detail/old_win_sdk_compat.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // old_win_sdk_compat.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -31,6 +31,10 @@
 #if defined(BOOST_ASIO_HAS_OLD_WIN_SDK)
 
 // Emulation of types that are missing from old Platform SDKs.
+//
+// N.B. this emulation is also used if building for a Windows 2000 target with
+// a recent (i.e. Vista or later) SDK, as the SDK does not provide IPv6 support
+// in that case.
 
 namespace boost {
 namespace asio {
@@ -55,9 +59,19 @@
 
 struct in6_addr_emulation
 {
- u_char s6_addr[16];
+ union
+ {
+ u_char Byte[16];
+ u_short Word[8];
+ } u;
 };
 
+#if !defined(s6_addr)
+# define _S6_un u
+# define _S6_u8 Byte
+# define s6_addr _S6_un._S6_u8
+#endif // !defined(s6_addr)
+
 struct sockaddr_in6_emulation
 {
   short sin6_family;

Modified: branches/proto/v3/boost/asio/detail/pipe_select_interrupter.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/pipe_select_interrupter.hpp (original)
+++ branches/proto/v3/boost/asio/detail/pipe_select_interrupter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // pipe_select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/pop_options.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/pop_options.hpp (original)
+++ branches/proto/v3/boost/asio/detail/pop_options.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // pop_options.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/posix_event.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/posix_event.hpp (original)
+++ branches/proto/v3/boost/asio/detail/posix_event.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_event.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/posix_fd_set_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/posix_fd_set_adapter.hpp (original)
+++ branches/proto/v3/boost/asio/detail/posix_fd_set_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_fd_set_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/posix_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/posix_mutex.hpp (original)
+++ branches/proto/v3/boost/asio/detail/posix_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_mutex.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/posix_signal_blocker.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/posix_signal_blocker.hpp (original)
+++ branches/proto/v3/boost/asio/detail/posix_signal_blocker.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/posix_thread.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/posix_thread.hpp (original)
+++ branches/proto/v3/boost/asio/detail/posix_thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_thread.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/posix_tss_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/posix_tss_ptr.hpp (original)
+++ branches/proto/v3/boost/asio/detail/posix_tss_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_tss_ptr.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/push_options.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/push_options.hpp (original)
+++ branches/proto/v3/boost/asio/detail/push_options.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // push_options.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -90,6 +90,12 @@
 # pragma warning (disable:4244)
 # pragma warning (disable:4355)
 # pragma warning (disable:4675)
+# if defined(_M_IX86) && defined(_Wp64)
+// The /Wp64 option is broken. If you want to check 64 bit portability, use a
+// 64 bit compiler!
+# pragma warning (disable:4311)
+# pragma warning (disable:4312)
+# endif // defined(_M_IX86) && defined(_Wp64)
 # pragma pack (push, 8)
 // Note that if the /Og optimisation flag is enabled with MSVC6, the compiler
 // has a tendency to incorrectly optimise away some calls to member template

Modified: branches/proto/v3/boost/asio/detail/reactive_socket_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/reactive_socket_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/reactive_socket_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reactive_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/reactor_op_queue.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/reactor_op_queue.hpp (original)
+++ branches/proto/v3/boost/asio/detail/reactor_op_queue.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reactor_op_queue.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/resolver_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/resolver_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/resolver_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // resolver_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/scoped_lock.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/scoped_lock.hpp (original)
+++ branches/proto/v3/boost/asio/detail/scoped_lock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // scoped_lock.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/select_interrupter.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/select_interrupter.hpp (original)
+++ branches/proto/v3/boost/asio/detail/select_interrupter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/select_reactor.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/select_reactor.hpp (original)
+++ branches/proto/v3/boost/asio/detail/select_reactor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // select_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/select_reactor_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/select_reactor_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/select_reactor_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // select_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/service_base.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/service_base.hpp (original)
+++ branches/proto/v3/boost/asio/detail/service_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // service_base.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/service_id.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/service_id.hpp (original)
+++ branches/proto/v3/boost/asio/detail/service_id.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // service_id.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/service_registry.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/service_registry.hpp (original)
+++ branches/proto/v3/boost/asio/detail/service_registry.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // service_registry.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/service_registry_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/service_registry_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/service_registry_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // service_registry_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/signal_blocker.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/signal_blocker.hpp (original)
+++ branches/proto/v3/boost/asio/detail/signal_blocker.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/signal_init.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/signal_init.hpp (original)
+++ branches/proto/v3/boost/asio/detail/signal_init.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // signal_init.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/socket_holder.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/socket_holder.hpp (original)
+++ branches/proto/v3/boost/asio/detail/socket_holder.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_holder.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/socket_ops.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/socket_ops.hpp (original)
+++ branches/proto/v3/boost/asio/detail/socket_ops.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_ops.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1812,19 +1812,22 @@
 # if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) || defined(UNDER_CE)
   // Building for Windows XP, Windows Server 2003, or later.
   clear_error(ec);
- int error = ::getnameinfo(addr, addrlen, host, static_cast<DWORD>(hostlen),
+ int error = ::getnameinfo(addr, static_cast<socklen_t>(addrlen),
+ host, static_cast<DWORD>(hostlen),
       serv, static_cast<DWORD>(servlen), flags);
   return ec = translate_addrinfo_error(error);
 # else
   // Building for Windows 2000 or earlier.
   typedef int (WSAAPI *gni_t)(const socket_addr_type*,
- int, char*, std::size_t, char*, std::size_t, int);
+ int, char*, DWORD, char*, DWORD, int);
   if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32"))
   {
     if (gni_t gni = (gni_t)::GetProcAddress(winsock_module, "getnameinfo"))
     {
       clear_error(ec);
- int error = gni(addr, addrlen, host, hostlen, serv, servlen, flags);
+ int error = gni(addr, static_cast<int>(addrlen),
+ host, static_cast<DWORD>(hostlen),
+ serv, static_cast<DWORD>(servlen), flags);
       return ec = translate_addrinfo_error(error);
     }
   }

Modified: branches/proto/v3/boost/asio/detail/socket_option.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/socket_option.hpp (original)
+++ branches/proto/v3/boost/asio/detail/socket_option.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_option.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/socket_select_interrupter.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/socket_select_interrupter.hpp (original)
+++ branches/proto/v3/boost/asio/detail/socket_select_interrupter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/socket_types.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/socket_types.hpp (original)
+++ branches/proto/v3/boost/asio/detail/socket_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_types.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -92,7 +92,7 @@
 # include <sys/ioctl.h>
 # include <sys/poll.h>
 # include <sys/types.h>
-# if defined(__hpux)
+# if defined(__hpux) && !defined(__HP_aCC)
 # include <sys/time.h>
 # else
 # include <sys/select.h>

Modified: branches/proto/v3/boost/asio/detail/strand_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/strand_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/strand_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // strand_service.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -336,7 +336,7 @@
       call_stack<strand_impl>::context ctx(impl.get());
 
       // Make the upcall.
- asio_handler_invoke_helpers::invoke(handler, &handler);
+ boost_asio_handler_invoke_helpers::invoke(handler, &handler);
     }
 
     static void do_destroy(handler_base* base)
@@ -413,7 +413,7 @@
   {
     if (call_stack<strand_impl>::contains(impl.get()))
     {
- asio_handler_invoke_helpers::invoke(handler, &handler);
+ boost_asio_handler_invoke_helpers::invoke(handler, &handler);
     }
     else
     {

Modified: branches/proto/v3/boost/asio/detail/task_io_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/task_io_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/task_io_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // task_io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -162,7 +162,7 @@
   void dispatch(Handler handler)
   {
     if (call_stack<task_io_service>::contains(this))
- asio_handler_invoke_helpers::invoke(handler, &handler);
+ boost_asio_handler_invoke_helpers::invoke(handler, &handler);
     else
       post(handler);
   }

Modified: branches/proto/v3/boost/asio/detail/task_io_service_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/task_io_service_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/task_io_service_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // task_io_service_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/thread.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/thread.hpp (original)
+++ branches/proto/v3/boost/asio/detail/thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // thread.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/throw_error.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/throw_error.hpp (original)
+++ branches/proto/v3/boost/asio/detail/throw_error.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // throw_error.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/timer_queue.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/timer_queue.hpp (original)
+++ branches/proto/v3/boost/asio/detail/timer_queue.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer_queue.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/timer_queue_base.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/timer_queue_base.hpp (original)
+++ branches/proto/v3/boost/asio/detail/timer_queue_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer_queue_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/tss_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/tss_ptr.hpp (original)
+++ branches/proto/v3/boost/asio/detail/tss_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // tss_ptr.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/win_event.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_event.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_event.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_event.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/win_fd_set_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_fd_set_adapter.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_fd_set_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_fd_set_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/win_iocp_io_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_iocp_io_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_iocp_io_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_iocp_io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,7 +34,6 @@
 #include <boost/asio/detail/service_base.hpp>
 #include <boost/asio/detail/socket_types.hpp>
 #include <boost/asio/detail/timer_queue.hpp>
-#include <boost/asio/detail/win_iocp_operation.hpp>
 #include <boost/asio/detail/mutex.hpp>
 
 namespace boost {
@@ -45,14 +44,64 @@
   : public boost::asio::detail::service_base<win_iocp_io_service>
 {
 public:
- // Base class for all operations.
- typedef win_iocp_operation operation;
+ // Base class for all operations. A function pointer is used instead of
+ // virtual functions to avoid the associated overhead.
+ //
+ // This class inherits from OVERLAPPED so that we can downcast to get back to
+ // the operation pointer from the LPOVERLAPPED out parameter of
+ // GetQueuedCompletionStatus.
+ class operation
+ : public OVERLAPPED
+ {
+ public:
+ typedef void (*invoke_func_type)(operation*, DWORD, size_t);
+ typedef void (*destroy_func_type)(operation*);
+
+ operation(win_iocp_io_service& iocp_service,
+ invoke_func_type invoke_func, destroy_func_type destroy_func)
+ : outstanding_operations_(&iocp_service.outstanding_operations_),
+ invoke_func_(invoke_func),
+ destroy_func_(destroy_func)
+ {
+ Internal = 0;
+ InternalHigh = 0;
+ Offset = 0;
+ OffsetHigh = 0;
+ hEvent = 0;
+
+ ::InterlockedIncrement(outstanding_operations_);
+ }
+
+ void do_completion(DWORD last_error, size_t bytes_transferred)
+ {
+ invoke_func_(this, last_error, bytes_transferred);
+ }
+
+ void destroy()
+ {
+ destroy_func_(this);
+ }
+
+ protected:
+ // Prevent deletion through this type.
+ ~operation()
+ {
+ ::InterlockedDecrement(outstanding_operations_);
+ }
+
+ private:
+ long* outstanding_operations_;
+ invoke_func_type invoke_func_;
+ destroy_func_type destroy_func_;
+ };
+
 
   // Constructor.
   win_iocp_io_service(boost::asio::io_service& io_service)
     : boost::asio::detail::service_base<win_iocp_io_service>(io_service),
       iocp_(),
       outstanding_work_(0),
+ outstanding_operations_(0),
       stopped_(0),
       shutdown_(0),
       timer_thread_(0),
@@ -80,7 +129,7 @@
   {
     ::InterlockedExchange(&shutdown_, 1);
 
- for (;;)
+ while (::InterlockedExchangeAdd(&outstanding_operations_, 0) > 0)
     {
       DWORD bytes_transferred = 0;
 #if (WINVER < 0x0500)
@@ -89,12 +138,8 @@
       DWORD_PTR completion_key = 0;
 #endif
       LPOVERLAPPED overlapped = 0;
- ::SetLastError(0);
- BOOL ok = ::GetQueuedCompletionStatus(iocp_.handle,
- &bytes_transferred, &completion_key, &overlapped, 0);
- DWORD last_error = ::GetLastError();
- if (!ok && overlapped == 0 && last_error == WAIT_TIMEOUT)
- break;
+ ::GetQueuedCompletionStatus(iocp_.handle, &bytes_transferred,
+ &completion_key, &overlapped, INFINITE);
       if (overlapped)
         static_cast<operation*>(overlapped)->destroy();
     }
@@ -215,7 +260,7 @@
   void dispatch(Handler handler)
   {
     if (call_stack<win_iocp_io_service>::contains(this))
- asio_handler_invoke_helpers::invoke(handler, &handler);
+ boost_asio_handler_invoke_helpers::invoke(handler, &handler);
     else
       post(handler);
   }
@@ -250,7 +295,7 @@
   }
 
   // Request invocation of the given OVERLAPPED-derived operation.
- void post_completion(win_iocp_operation* op, DWORD op_last_error,
+ void post_completion(operation* op, DWORD op_last_error,
       DWORD bytes_transferred)
   {
     // Enqueue the operation on the I/O completion port.
@@ -348,7 +393,7 @@
             &timer_thread_, this_thread_id, 0) == 0);
 
       // Calculate timeout for GetQueuedCompletionStatus call.
- DWORD timeout = max_timeout;
+ DWORD timeout = INFINITE;
       if (dispatching_timers)
       {
         boost::asio::detail::mutex::scoped_lock lock(timer_mutex_);
@@ -372,13 +417,28 @@
       // Dispatch any pending timers.
       if (dispatching_timers)
       {
- boost::asio::detail::mutex::scoped_lock lock(timer_mutex_);
- timer_queues_copy_ = timer_queues_;
- for (std::size_t i = 0; i < timer_queues_.size(); ++i)
+ try
         {
- timer_queues_[i]->dispatch_timers();
- timer_queues_[i]->dispatch_cancellations();
- timer_queues_[i]->cleanup_timers();
+ boost::asio::detail::mutex::scoped_lock lock(timer_mutex_);
+ timer_queues_copy_ = timer_queues_;
+ for (std::size_t i = 0; i < timer_queues_copy_.size(); ++i)
+ {
+ timer_queues_copy_[i]->dispatch_timers();
+ timer_queues_copy_[i]->dispatch_cancellations();
+ timer_queues_copy_[i]->cleanup_timers();
+ }
+ }
+ catch (...)
+ {
+ // Transfer responsibility for dispatching timers to another thread.
+ if (::InterlockedCompareExchange(&timer_thread_,
+ 0, this_thread_id) == this_thread_id)
+ {
+ ::PostQueuedCompletionStatus(iocp_.handle,
+ 0, transfer_timer_dispatching, 0);
+ }
+
+ throw;
         }
       }
 
@@ -533,7 +593,7 @@
   {
     handler_operation(win_iocp_io_service& io_service,
         Handler handler)
- : operation(&handler_operation<Handler>::do_completion_impl,
+ : operation(io_service, &handler_operation<Handler>::do_completion_impl,
           &handler_operation<Handler>::destroy_impl),
         io_service_(io_service),
         handler_(handler)
@@ -567,7 +627,7 @@
       ptr.reset();
 
       // Make the upcall.
- asio_handler_invoke_helpers::invoke(handler, &handler);
+ boost_asio_handler_invoke_helpers::invoke(handler, &handler);
     }
 
     static void destroy_impl(operation* op)
@@ -594,6 +654,10 @@
   // The count of unfinished work.
   long outstanding_work_;
 
+ // The count of unfinished operations.
+ long outstanding_operations_;
+ friend class operation;
+
   // Flag to indicate whether the event loop has been stopped.
   long stopped_;
 
@@ -603,7 +667,7 @@
   enum
   {
     // Maximum GetQueuedCompletionStatus timeout, in milliseconds.
- max_timeout = 1000,
+ max_timeout = 500,
 
     // Completion key value to indicate that responsibility for dispatching
     // timers is being cooperatively transferred from one thread to another.

Modified: branches/proto/v3/boost/asio/detail/win_iocp_io_service_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_iocp_io_service_fwd.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_iocp_io_service_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_iocp_io_service_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Deleted: branches/proto/v3/boost/asio/detail/win_iocp_operation.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_iocp_operation.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,83 +0,0 @@
-//
-// win_iocp_operation.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_OPERATION_HPP
-#define BOOST_ASIO_DETAIL_WIN_IOCP_OPERATION_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include <boost/asio/detail/push_options.hpp>
-
-#include <boost/asio/detail/win_iocp_io_service_fwd.hpp>
-
-#if defined(BOOST_ASIO_HAS_IOCP)
-
-#include <boost/asio/detail/socket_types.hpp>
-
-namespace boost {
-namespace asio {
-namespace detail {
-
-// Base class for all IOCP operations. A function pointer is used instead of
-// virtual functions to avoid the associated overhead.
-//
-// This class inherits from OVERLAPPED so that we can downcast to get back to
-// the win_iocp_operation pointer from the LPOVERLAPPED out parameter of
-// GetQueuedCompletionStatus.
-struct win_iocp_operation
- : public OVERLAPPED
-{
- typedef void (*invoke_func_type)(win_iocp_operation*, DWORD, size_t);
- typedef void (*destroy_func_type)(win_iocp_operation*);
-
- win_iocp_operation(invoke_func_type invoke_func,
- destroy_func_type destroy_func)
- : invoke_func_(invoke_func),
- destroy_func_(destroy_func)
- {
- Internal = 0;
- InternalHigh = 0;
- Offset = 0;
- OffsetHigh = 0;
- hEvent = 0;
- }
-
- void do_completion(DWORD last_error, size_t bytes_transferred)
- {
- invoke_func_(this, last_error, bytes_transferred);
- }
-
- void destroy()
- {
- destroy_func_(this);
- }
-
-protected:
- // Prevent deletion through this type.
- ~win_iocp_operation()
- {
- }
-
-private:
- invoke_func_type invoke_func_;
- destroy_func_type destroy_func_;
-};
-
-} // namespace detail
-} // namespace asio
-} // namespace boost
-
-#endif // defined(BOOST_ASIO_HAS_IOCP)
-
-#include <boost/asio/detail/pop_options.hpp>
-
-#endif // BOOST_ASIO_DETAIL_WIN_IOCP_OPERATION_HPP

Modified: branches/proto/v3/boost/asio/detail/win_iocp_socket_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_iocp_socket_service.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_iocp_socket_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_iocp_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -57,7 +57,7 @@
   typedef typename Protocol::endpoint endpoint_type;
 
   // Base class for all operations.
- typedef win_iocp_operation operation;
+ typedef win_iocp_io_service::operation operation;
 
   struct noop_deleter { void operator()(void*) {} };
   typedef boost::shared_ptr<void> shared_cancel_token_type;
@@ -156,11 +156,13 @@
     // The protocol associated with the socket.
     protocol_type protocol_;
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // The ID of the thread from which it is safe to cancel asynchronous
     // operations. 0 means no asynchronous operations have been started yet.
     // ~0 means asynchronous operations have been started from more than one
     // thread, and cancellation is not supported for the socket.
     DWORD safe_cancellation_thread_id_;
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Pointers to adjacent socket implementations in linked list.
     implementation_type* next_;
@@ -204,7 +206,9 @@
     impl.socket_ = invalid_socket;
     impl.flags_ = 0;
     impl.cancel_token_.reset();
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     impl.safe_cancellation_thread_id_ = 0;
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Insert implementation into linked list of all implementations.
     boost::asio::detail::mutex::scoped_lock lock(mutex_);
@@ -306,7 +310,9 @@
       impl.socket_ = invalid_socket;
       impl.flags_ = 0;
       impl.cancel_token_.reset();
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
       impl.safe_cancellation_thread_id_ = 0;
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
     }
 
     ec = boost::system::error_code();
@@ -338,14 +344,25 @@
       if (!cancel_io_ex(sock_as_handle, 0))
       {
         DWORD last_error = ::GetLastError();
- ec = boost::system::error_code(last_error,
- boost::asio::error::get_system_category());
+ if (last_error == ERROR_NOT_FOUND)
+ {
+ // ERROR_NOT_FOUND means that there were no operations to be
+ // cancelled. We swallow this error to match the behaviour on other
+ // platforms.
+ ec = boost::system::error_code();
+ }
+ else
+ {
+ ec = boost::system::error_code(last_error,
+ boost::asio::error::get_system_category());
+ }
       }
       else
       {
         ec = boost::system::error_code();
       }
     }
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     else if (impl.safe_cancellation_thread_id_ == 0)
     {
       // No operations have been started, so there's nothing to cancel.
@@ -374,6 +391,13 @@
       // so cancellation is not safe.
       ec = boost::asio::error::operation_not_supported;
     }
+#else // defined(BOOST_ASIO_ENABLE_CANCELIO)
+ else
+ {
+ // Cancellation is not supported as CancelIo may not be used.
+ ec = boost::asio::error::operation_not_supported;
+ }
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     return ec;
   }
@@ -681,13 +705,13 @@
     : public operation
   {
   public:
- send_operation(boost::asio::io_service& io_service,
+ send_operation(win_iocp_io_service& io_service,
         weak_cancel_token_type cancel_token,
         const ConstBufferSequence& buffers, Handler handler)
- : operation(
+ : operation(io_service,
           &send_operation<ConstBufferSequence, Handler>::do_completion_impl,
           &send_operation<ConstBufferSequence, Handler>::destroy_impl),
- work_(io_service),
+ work_(io_service.get_io_service()),
         cancel_token_(cancel_token),
         buffers_(buffers),
         handler_(handler)
@@ -741,7 +765,7 @@
       ptr.reset();
 
       // Call the handler.
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
           detail::bind_handler(handler, ec, bytes_transferred), &handler);
     }
 
@@ -773,18 +797,20 @@
       return;
     }
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // Update the ID of the thread from which cancellation is safe.
     if (impl.safe_cancellation_thread_id_ == 0)
       impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId();
     else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId())
       impl.safe_cancellation_thread_id_ = ~DWORD(0);
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Allocate and construct an operation to wrap the handler.
     typedef send_operation<ConstBufferSequence, Handler> value_type;
     typedef handler_alloc_traits<Handler, value_type> alloc_traits;
     raw_handler_ptr<alloc_traits> raw_ptr(handler);
- handler_ptr<alloc_traits> ptr(raw_ptr,
- this->get_io_service(), impl.cancel_token_, buffers, handler);
+ handler_ptr<alloc_traits> ptr(raw_ptr, iocp_service_,
+ impl.cancel_token_, buffers, handler);
 
     // Copy buffers into WSABUF array.
     ::WSABUF bufs[max_buffers];
@@ -861,7 +887,7 @@
     // Send the data.
     DWORD bytes_transferred = 0;
     int result = ::WSASendTo(impl.socket_, bufs, i, &bytes_transferred,
- flags, destination.data(), destination.size(), 0, 0);
+ flags, destination.data(), static_cast<int>(destination.size()), 0, 0);
     if (result != 0)
     {
       DWORD last_error = ::WSAGetLastError();
@@ -881,12 +907,12 @@
     : public operation
   {
   public:
- send_to_operation(boost::asio::io_service& io_service,
+ send_to_operation(win_iocp_io_service& io_service,
         const ConstBufferSequence& buffers, Handler handler)
- : operation(
+ : operation(io_service,
           &send_to_operation<ConstBufferSequence, Handler>::do_completion_impl,
           &send_to_operation<ConstBufferSequence, Handler>::destroy_impl),
- work_(io_service),
+ work_(io_service.get_io_service()),
         buffers_(buffers),
         handler_(handler)
     {
@@ -932,7 +958,7 @@
       ptr.reset();
 
       // Call the handler.
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
           detail::bind_handler(handler, ec, bytes_transferred), &handler);
     }
 
@@ -964,18 +990,19 @@
       return;
     }
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // Update the ID of the thread from which cancellation is safe.
     if (impl.safe_cancellation_thread_id_ == 0)
       impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId();
     else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId())
       impl.safe_cancellation_thread_id_ = ~DWORD(0);
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Allocate and construct an operation to wrap the handler.
     typedef send_to_operation<ConstBufferSequence, Handler> value_type;
     typedef handler_alloc_traits<Handler, value_type> alloc_traits;
     raw_handler_ptr<alloc_traits> raw_ptr(handler);
- handler_ptr<alloc_traits> ptr(raw_ptr,
- this->get_io_service(), buffers, handler);
+ handler_ptr<alloc_traits> ptr(raw_ptr, iocp_service_, buffers, handler);
 
     // Copy buffers into WSABUF array.
     ::WSABUF bufs[max_buffers];
@@ -992,8 +1019,8 @@
 
     // Send the data.
     DWORD bytes_transferred = 0;
- int result = ::WSASendTo(impl.socket_, bufs, i, &bytes_transferred,
- flags, destination.data(), destination.size(), ptr.get(), 0);
+ int result = ::WSASendTo(impl.socket_, bufs, i, &bytes_transferred, flags,
+ destination.data(), static_cast<int>(destination.size()), ptr.get(), 0);
     DWORD last_error = ::WSAGetLastError();
 
     // Check if the operation completed immediately.
@@ -1075,15 +1102,15 @@
     : public operation
   {
   public:
- receive_operation(boost::asio::io_service& io_service,
+ receive_operation(win_iocp_io_service& io_service,
         weak_cancel_token_type cancel_token,
         const MutableBufferSequence& buffers, Handler handler)
- : operation(
+ : operation(io_service,
           &receive_operation<
             MutableBufferSequence, Handler>::do_completion_impl,
           &receive_operation<
             MutableBufferSequence, Handler>::destroy_impl),
- work_(io_service),
+ work_(io_service.get_io_service()),
         cancel_token_(cancel_token),
         buffers_(buffers),
         handler_(handler)
@@ -1143,7 +1170,7 @@
       ptr.reset();
 
       // Call the handler.
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
           detail::bind_handler(handler, ec, bytes_transferred), &handler);
     }
 
@@ -1176,18 +1203,20 @@
       return;
     }
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // Update the ID of the thread from which cancellation is safe.
     if (impl.safe_cancellation_thread_id_ == 0)
       impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId();
     else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId())
       impl.safe_cancellation_thread_id_ = ~DWORD(0);
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Allocate and construct an operation to wrap the handler.
     typedef receive_operation<MutableBufferSequence, Handler> value_type;
     typedef handler_alloc_traits<Handler, value_type> alloc_traits;
     raw_handler_ptr<alloc_traits> raw_ptr(handler);
- handler_ptr<alloc_traits> ptr(raw_ptr,
- this->get_io_service(), impl.cancel_token_, buffers, handler);
+ handler_ptr<alloc_traits> ptr(raw_ptr, iocp_service_,
+ impl.cancel_token_, buffers, handler);
 
     // Copy buffers into WSABUF array.
     ::WSABUF bufs[max_buffers];
@@ -1291,17 +1320,17 @@
     : public operation
   {
   public:
- receive_from_operation(boost::asio::io_service& io_service,
+ receive_from_operation(win_iocp_io_service& io_service,
         endpoint_type& endpoint, const MutableBufferSequence& buffers,
         Handler handler)
- : operation(
+ : operation(io_service,
           &receive_from_operation<
             MutableBufferSequence, Handler>::do_completion_impl,
           &receive_from_operation<
             MutableBufferSequence, Handler>::destroy_impl),
         endpoint_(endpoint),
         endpoint_size_(static_cast<int>(endpoint.capacity())),
- work_(io_service),
+ work_(io_service.get_io_service()),
         buffers_(buffers),
         handler_(handler)
     {
@@ -1361,7 +1390,7 @@
       ptr.reset();
 
       // Call the handler.
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
           detail::bind_handler(handler, ec, bytes_transferred), &handler);
     }
 
@@ -1396,18 +1425,20 @@
       return;
     }
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // Update the ID of the thread from which cancellation is safe.
     if (impl.safe_cancellation_thread_id_ == 0)
       impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId();
     else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId())
       impl.safe_cancellation_thread_id_ = ~DWORD(0);
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Allocate and construct an operation to wrap the handler.
     typedef receive_from_operation<MutableBufferSequence, Handler> value_type;
     typedef handler_alloc_traits<Handler, value_type> alloc_traits;
     raw_handler_ptr<alloc_traits> raw_ptr(handler);
- handler_ptr<alloc_traits> ptr(raw_ptr,
- this->get_io_service(), sender_endp, buffers, handler);
+ handler_ptr<alloc_traits> ptr(raw_ptr, iocp_service_,
+ sender_endp, buffers, handler);
 
     // Copy buffers into WSABUF array.
     ::WSABUF bufs[max_buffers];
@@ -1509,7 +1540,7 @@
         socket_type socket, socket_type new_socket, Socket& peer,
         const protocol_type& protocol, endpoint_type* peer_endpoint,
         bool enable_connection_aborted, Handler handler)
- : operation(
+ : operation(io_service,
           &accept_operation<Socket, Handler>::do_completion_impl,
           &accept_operation<Socket, Handler>::destroy_impl),
         io_service_(io_service),
@@ -1673,7 +1704,7 @@
       // Call the handler.
       boost::system::error_code ec(last_error,
           boost::asio::error::get_system_category());
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
           detail::bind_handler(handler, ec), &handler);
     }
 
@@ -1720,11 +1751,13 @@
       return;
     }
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // Update the ID of the thread from which cancellation is safe.
     if (impl.safe_cancellation_thread_id_ == 0)
       impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId();
     else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId())
       impl.safe_cancellation_thread_id_ = ~DWORD(0);
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Create a new socket for the connection.
     boost::system::error_code ec;
@@ -1894,11 +1927,13 @@
       return;
     }
 
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
     // Update the ID of the thread from which cancellation is safe.
     if (impl.safe_cancellation_thread_id_ == 0)
       impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId();
     else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId())
       impl.safe_cancellation_thread_id_ = ~DWORD(0);
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
 
     // Check if the reactor was already obtained from the io_service.
     reactor_type* reactor = static_cast<reactor_type*>(
@@ -1998,7 +2033,9 @@
       impl.socket_ = invalid_socket;
       impl.flags_ = 0;
       impl.cancel_token_.reset();
+#if defined(BOOST_ASIO_ENABLE_CANCELIO)
       impl.safe_cancellation_thread_id_ = 0;
+#endif // defined(BOOST_ASIO_ENABLE_CANCELIO)
     }
   }
 

Modified: branches/proto/v3/boost/asio/detail/win_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_mutex.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_mutex.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/win_signal_blocker.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_signal_blocker.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_signal_blocker.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/win_thread.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_thread.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_thread.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/win_tss_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/win_tss_ptr.hpp (original)
+++ branches/proto/v3/boost/asio/detail/win_tss_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_tss_ptr.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/wince_thread.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/wince_thread.hpp (original)
+++ branches/proto/v3/boost/asio/detail/wince_thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // wince_thread.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/winsock_init.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/winsock_init.hpp (original)
+++ branches/proto/v3/boost/asio/detail/winsock_init.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // winsock_init.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/detail/wrapped_handler.hpp
==============================================================================
--- branches/proto/v3/boost/asio/detail/wrapped_handler.hpp (original)
+++ branches/proto/v3/boost/asio/detail/wrapped_handler.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // wrapped_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -182,7 +182,7 @@
 inline void asio_handler_invoke(const Function& function,
     rewrapped_handler<Handler, Context>* this_handler)
 {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
       function, &this_handler->context_);
 }
 

Modified: branches/proto/v3/boost/asio/error.hpp
==============================================================================
--- branches/proto/v3/boost/asio/error.hpp (original)
+++ branches/proto/v3/boost/asio/error.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // error.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -71,6 +71,11 @@
   /// Operation already in progress.
   already_started = BOOST_ASIO_SOCKET_ERROR(EALREADY),
 
+ /// Broken pipe.
+ broken_pipe = BOOST_ASIO_WIN_OR_POSIX(
+ BOOST_ASIO_NATIVE_ERROR(ERROR_BROKEN_PIPE),
+ BOOST_ASIO_NATIVE_ERROR(EPIPE)),
+
   /// A connection has been aborted.
   connection_aborted = BOOST_ASIO_SOCKET_ERROR(ECONNABORTED),
 

Modified: branches/proto/v3/boost/asio/handler_alloc_hook.hpp
==============================================================================
--- branches/proto/v3/boost/asio/handler_alloc_hook.hpp (original)
+++ branches/proto/v3/boost/asio/handler_alloc_hook.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // handler_alloc_hook.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/handler_invoke_hook.hpp
==============================================================================
--- branches/proto/v3/boost/asio/handler_invoke_hook.hpp (original)
+++ branches/proto/v3/boost/asio/handler_invoke_hook.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // handler_invoke_hook.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/impl/io_service.ipp
==============================================================================
--- branches/proto/v3/boost/asio/impl/io_service.ipp (original)
+++ branches/proto/v3/boost/asio/impl/io_service.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // io_service.ipp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/impl/read.ipp
==============================================================================
--- branches/proto/v3/boost/asio/impl/read.ipp (original)
+++ branches/proto/v3/boost/asio/impl/read.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // read.ipp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -186,7 +186,7 @@
       read_handler<AsyncReadStream, MutableBufferSequence,
         CompletionCondition, ReadHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail
@@ -282,7 +282,7 @@
       read_streambuf_handler<AsyncReadStream, Allocator,
         CompletionCondition, ReadHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail

Modified: branches/proto/v3/boost/asio/impl/read_until.ipp
==============================================================================
--- branches/proto/v3/boost/asio/impl/read_until.ipp (original)
+++ branches/proto/v3/boost/asio/impl/read_until.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // read_until.ipp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -358,7 +358,7 @@
       read_until_delim_handler<AsyncReadStream,
         Allocator, ReadHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail
@@ -515,7 +515,7 @@
       read_until_delim_string_handler<AsyncReadStream,
         Allocator, ReadHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail
@@ -689,7 +689,7 @@
       read_until_expr_handler<AsyncReadStream,
         Allocator, ReadHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail

Modified: branches/proto/v3/boost/asio/impl/write.ipp
==============================================================================
--- branches/proto/v3/boost/asio/impl/write.ipp (original)
+++ branches/proto/v3/boost/asio/impl/write.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // write.ipp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -172,7 +172,7 @@
       write_handler<AsyncWriteStream, ConstBufferSequence,
         CompletionCondition, WriteHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail
@@ -250,7 +250,7 @@
       write_streambuf_handler<AsyncWriteStream,
         Allocator, WriteHandler>* this_handler)
   {
- asio_handler_invoke_helpers::invoke(
+ boost_asio_handler_invoke_helpers::invoke(
         function, &this_handler->handler_);
   }
 } // namespace detail

Modified: branches/proto/v3/boost/asio/io_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/io_service.hpp (original)
+++ branches/proto/v3/boost/asio/io_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // io_service.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/address.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/address.hpp (original)
+++ branches/proto/v3/boost/asio/ip/address.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // address.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/address_v4.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/address_v4.hpp (original)
+++ branches/proto/v3/boost/asio/ip/address_v4.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // address_v4.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/address_v6.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/address_v6.hpp (original)
+++ branches/proto/v3/boost/asio/ip/address_v6.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // address_v6.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/basic_endpoint.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/basic_endpoint.hpp (original)
+++ branches/proto/v3/boost/asio/ip/basic_endpoint.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/basic_resolver.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/basic_resolver.hpp (original)
+++ branches/proto/v3/boost/asio/ip/basic_resolver.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/basic_resolver_entry.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/basic_resolver_entry.hpp (original)
+++ branches/proto/v3/boost/asio/ip/basic_resolver_entry.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver_entry.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/basic_resolver_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/basic_resolver_iterator.hpp (original)
+++ branches/proto/v3/boost/asio/ip/basic_resolver_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver_iterator.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/basic_resolver_query.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/basic_resolver_query.hpp (original)
+++ branches/proto/v3/boost/asio/ip/basic_resolver_query.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver_query.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/detail/socket_option.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/detail/socket_option.hpp (original)
+++ branches/proto/v3/boost/asio/ip/detail/socket_option.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_option.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/host_name.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/host_name.hpp (original)
+++ branches/proto/v3/boost/asio/ip/host_name.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // host_name.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/multicast.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/multicast.hpp (original)
+++ branches/proto/v3/boost/asio/ip/multicast.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // multicast.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/resolver_query_base.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/resolver_query_base.hpp (original)
+++ branches/proto/v3/boost/asio/ip/resolver_query_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // resolver_query_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/resolver_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/resolver_service.hpp (original)
+++ branches/proto/v3/boost/asio/ip/resolver_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // resolver_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/tcp.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/tcp.hpp (original)
+++ branches/proto/v3/boost/asio/ip/tcp.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // tcp.hpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/udp.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/udp.hpp (original)
+++ branches/proto/v3/boost/asio/ip/udp.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // udp.hpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/unicast.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/unicast.hpp (original)
+++ branches/proto/v3/boost/asio/ip/unicast.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // unicast.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ip/v6_only.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ip/v6_only.hpp (original)
+++ branches/proto/v3/boost/asio/ip/v6_only.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // v6_only.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/is_read_buffered.hpp
==============================================================================
--- branches/proto/v3/boost/asio/is_read_buffered.hpp (original)
+++ branches/proto/v3/boost/asio/is_read_buffered.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // is_read_buffered.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/is_write_buffered.hpp
==============================================================================
--- branches/proto/v3/boost/asio/is_write_buffered.hpp (original)
+++ branches/proto/v3/boost/asio/is_write_buffered.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // is_write_buffered.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/placeholders.hpp
==============================================================================
--- branches/proto/v3/boost/asio/placeholders.hpp (original)
+++ branches/proto/v3/boost/asio/placeholders.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // placeholders.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/read.hpp
==============================================================================
--- branches/proto/v3/boost/asio/read.hpp (original)
+++ branches/proto/v3/boost/asio/read.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // read.hpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/read_until.hpp
==============================================================================
--- branches/proto/v3/boost/asio/read_until.hpp (original)
+++ branches/proto/v3/boost/asio/read_until.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // read_until.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/socket_acceptor_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/socket_acceptor_service.hpp (original)
+++ branches/proto/v3/boost/asio/socket_acceptor_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_acceptor_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/socket_base.hpp
==============================================================================
--- branches/proto/v3/boost/asio/socket_base.hpp (original)
+++ branches/proto/v3/boost/asio/socket_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_base.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl.hpp (original)
+++ branches/proto/v3/boost/asio/ssl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // ssl.hpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/basic_context.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/basic_context.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/basic_context.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/context.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/context.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/context.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/context_base.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/context_base.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/context_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // context_base.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/context_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/context_service.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/context_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/detail/openssl_context_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/detail/openssl_context_service.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/detail/openssl_context_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/detail/openssl_init.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/detail/openssl_init.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/detail/openssl_init.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,10 +20,12 @@
 
 #include <boost/asio/detail/push_options.hpp>
 #include <vector>
+#include <boost/assert.hpp>
 #include <boost/shared_ptr.hpp>
 #include <boost/asio/detail/pop_options.hpp>
 
 #include <boost/asio/detail/mutex.hpp>
+#include <boost/asio/detail/tss_ptr.hpp>
 #include <boost/asio/ssl/detail/openssl_types.hpp>
 
 namespace boost {
@@ -52,6 +54,7 @@
         for (size_t i = 0; i < mutexes_.size(); ++i)
           mutexes_[i].reset(new boost::asio::detail::mutex);
         ::CRYPTO_set_locking_callback(&do_init::openssl_locking_func);
+ ::CRYPTO_set_id_callback(&do_init::openssl_id_func);
       }
     }
 
@@ -59,6 +62,7 @@
     {
       if (Do_Init)
       {
+ ::CRYPTO_set_id_callback(0);
         ::CRYPTO_set_locking_callback(0);
         ::ERR_free_strings();
         ::ERR_remove_state(0);
@@ -81,6 +85,15 @@
     }
 
   private:
+ static unsigned long openssl_id_func()
+ {
+ void* id = instance()->thread_id_;
+ if (id == 0)
+ instance()->thread_id_ = id = &id; // Ugh.
+ BOOST_ASSERT(sizeof(unsigned long) >= sizeof(void*));
+ return reinterpret_cast<unsigned long>(id);
+ }
+
     static void openssl_locking_func(int mode, int n,
       const char *file, int line)
     {
@@ -92,6 +105,9 @@
 
     // Mutexes to be used in locking callbacks.
     std::vector<boost::shared_ptr<boost::asio::detail::mutex> > mutexes_;
+
+ // The thread identifiers to be used by openssl.
+ boost::asio::detail::tss_ptr<void> thread_id_;
   };
 
 public:

Modified: branches/proto/v3/boost/asio/ssl/detail/openssl_operation.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/detail/openssl_operation.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/detail/openssl_operation.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -19,6 +19,7 @@
 
 #include <boost/asio/detail/push_options.hpp>
 #include <boost/function.hpp>
+#include <boost/assert.hpp>
 #include <boost/bind.hpp>
 #include <boost/asio/detail/pop_options.hpp>
 
@@ -88,10 +89,12 @@
                     net_buffer& recv_buf,
                     SSL* session,
                     BIO* ssl_bio,
- user_handler_func handler
+ user_handler_func handler,
+ boost::asio::io_service::strand& strand
                     )
     : primitive_(primitive)
     , user_handler_(handler)
+ , strand_(&strand)
     , recv_buf_(recv_buf)
     , socket_(socket)
     , ssl_bio_(ssl_bio)
@@ -118,6 +121,7 @@
                     SSL* session,
                     BIO* ssl_bio)
     : primitive_(primitive)
+ , strand_(0)
     , recv_buf_(recv_buf)
     , socket_(socket)
     , ssl_bio_(ssl_bio)
@@ -241,6 +245,7 @@
 
   ssl_primitive_func primitive_;
   user_handler_func user_handler_;
+ boost::asio::io_service::strand* strand_;
   write_func write_;
   read_func read_;
   int_handler_func handler_;
@@ -304,19 +309,23 @@
       {
         unsigned char *data_start = send_buf_.get_unused_start();
         send_buf_.data_added(len);
-
+
+ BOOST_ASSERT(strand_);
         boost::asio::async_write
         (
           socket_,
           boost::asio::buffer(data_start, len),
- boost::bind
+ strand_->wrap
           (
- &openssl_operation::async_write_handler,
- this,
- is_operation_done,
- rc,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred
+ boost::bind
+ (
+ &openssl_operation::async_write_handler,
+ this,
+ is_operation_done,
+ rc,
+ boost::asio::placeholders::error,
+ boost::asio::placeholders::bytes_transferred
+ )
           )
         );
                   
@@ -366,17 +375,21 @@
   int do_async_read()
   {
     // Wait for new data
+ BOOST_ASSERT(strand_);
     socket_.async_read_some
     (
       boost::asio::buffer(recv_buf_.get_unused_start(),
         recv_buf_.get_unused_len()),
- boost::bind
+ strand_->wrap
       (
- &openssl_operation::async_read_handler,
- this,
- boost::asio::placeholders::error,
- boost::asio::placeholders::bytes_transferred
- )
+ boost::bind
+ (
+ &openssl_operation::async_read_handler,
+ this,
+ boost::asio::placeholders::error,
+ boost::asio::placeholders::bytes_transferred
+ )
+ )
     );
     return 0;
   }

Modified: branches/proto/v3/boost/asio/ssl/detail/openssl_stream_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/detail/openssl_stream_service.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/detail/openssl_stream_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,6 +20,7 @@
 
 #include <boost/asio/detail/push_options.hpp>
 #include <cstddef>
+#include <climits>
 #include <boost/config.hpp>
 #include <boost/noncopyable.hpp>
 #include <boost/function.hpp>
@@ -28,6 +29,7 @@
 
 #include <boost/asio/error.hpp>
 #include <boost/asio/io_service.hpp>
+#include <boost/asio/strand.hpp>
 #include <boost/asio/detail/service_base.hpp>
 #include <boost/asio/ssl/basic_context.hpp>
 #include <boost/asio/ssl/stream_base.hpp>
@@ -43,6 +45,8 @@
   : public boost::asio::detail::service_base<openssl_stream_service>
 {
 private:
+ enum { max_buffer_size = INT_MAX };
+
   //Base handler for asyncrhonous operations
   template <typename Stream>
   class base_handler
@@ -161,7 +165,8 @@
 
   // Construct a new stream socket service for the specified io_service.
   explicit openssl_stream_service(boost::asio::io_service& io_service)
- : boost::asio::detail::service_base<openssl_stream_service>(io_service)
+ : boost::asio::detail::service_base<openssl_stream_service>(io_service),
+ strand_(io_service)
   {
   }
 
@@ -256,11 +261,12 @@
         local_handler,
         boost::arg<1>(),
         boost::arg<2>()
- )
+ ),
+ strand_
     );
     local_handler->set_operation(op);
 
- get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
   }
 
   // Shut down SSL on the stream.
@@ -310,11 +316,12 @@
         local_handler,
         boost::arg<1>(),
         boost::arg<2>()
- )
+ ),
+ strand_
     );
     local_handler->set_operation(op);
 
- get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
   }
 
   // Write some data to the stream.
@@ -325,10 +332,14 @@
     size_t bytes_transferred = 0;
     try
     {
+ std::size_t buffer_size = boost::asio::buffer_size(*buffers.begin());
+ if (buffer_size > max_buffer_size)
+ buffer_size = max_buffer_size;
+
       boost::function<int (SSL*)> send_func =
         boost::bind(&::SSL_write, boost::arg<1>(),
             boost::asio::buffer_cast<const void*>(*buffers.begin()),
- static_cast<int>(boost::asio::buffer_size(*buffers.begin())));
+ static_cast<int>(buffer_size));
       openssl_operation<Stream> op(
         send_func,
         next_layer,
@@ -357,10 +368,14 @@
 
     send_handler* local_handler = new send_handler(handler, get_io_service());
 
+ std::size_t buffer_size = boost::asio::buffer_size(*buffers.begin());
+ if (buffer_size > max_buffer_size)
+ buffer_size = max_buffer_size;
+
     boost::function<int (SSL*)> send_func =
       boost::bind(&::SSL_write, boost::arg<1>(),
           boost::asio::buffer_cast<const void*>(*buffers.begin()),
- static_cast<int>(boost::asio::buffer_size(*buffers.begin())));
+ static_cast<int>(buffer_size));
 
     openssl_operation<Stream>* op = new openssl_operation<Stream>
     (
@@ -375,11 +390,12 @@
         local_handler,
         boost::arg<1>(),
         boost::arg<2>()
- )
+ ),
+ strand_
     );
     local_handler->set_operation(op);
 
- get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
   }
 
   // Read some data from the stream.
@@ -390,10 +406,14 @@
     size_t bytes_transferred = 0;
     try
     {
+ std::size_t buffer_size = boost::asio::buffer_size(*buffers.begin());
+ if (buffer_size > max_buffer_size)
+ buffer_size = max_buffer_size;
+
       boost::function<int (SSL*)> recv_func =
         boost::bind(&::SSL_read, boost::arg<1>(),
             boost::asio::buffer_cast<void*>(*buffers.begin()),
- boost::asio::buffer_size(*buffers.begin()));
+ static_cast<int>(buffer_size));
       openssl_operation<Stream> op(recv_func,
         next_layer,
         impl->recv_buf,
@@ -422,10 +442,14 @@
 
     recv_handler* local_handler = new recv_handler(handler, get_io_service());
 
+ std::size_t buffer_size = boost::asio::buffer_size(*buffers.begin());
+ if (buffer_size > max_buffer_size)
+ buffer_size = max_buffer_size;
+
     boost::function<int (SSL*)> recv_func =
       boost::bind(&::SSL_read, boost::arg<1>(),
           boost::asio::buffer_cast<void*>(*buffers.begin()),
- boost::asio::buffer_size(*buffers.begin()));
+ static_cast<int>(buffer_size));
 
     openssl_operation<Stream>* op = new openssl_operation<Stream>
     (
@@ -440,11 +464,12 @@
         local_handler,
         boost::arg<1>(),
         boost::arg<2>()
- )
+ ),
+ strand_
     );
     local_handler->set_operation(op);
 
- get_io_service().post(boost::bind(&openssl_operation<Stream>::start, op));
+ strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
   }
 
   // Peek at the incoming data on the stream.
@@ -466,6 +491,8 @@
   }
 
 private:
+ boost::asio::io_service::strand strand_;
+
   typedef boost::asio::detail::mutex mutex_type;
   
   template<typename Mutex>

Modified: branches/proto/v3/boost/asio/ssl/detail/openssl_types.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/detail/openssl_types.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/detail/openssl_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // openssl_types.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -17,6 +17,8 @@
 
 #include <boost/asio/detail/push_options.hpp>
 
+#include <boost/asio/detail/socket_types.hpp>
+
 #include <boost/asio/detail/push_options.hpp>
 #include <openssl/conf.h>
 #include <openssl/ssl.h>

Modified: branches/proto/v3/boost/asio/ssl/stream.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/stream.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/stream_base.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/stream_base.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/stream_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_base.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/ssl/stream_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/ssl/stream_service.hpp (original)
+++ branches/proto/v3/boost/asio/ssl/stream_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/strand.hpp
==============================================================================
--- branches/proto/v3/boost/asio/strand.hpp (original)
+++ branches/proto/v3/boost/asio/strand.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // strand.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/stream_socket_service.hpp
==============================================================================
--- branches/proto/v3/boost/asio/stream_socket_service.hpp (original)
+++ branches/proto/v3/boost/asio/stream_socket_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/asio/streambuf.hpp (original)
+++ branches/proto/v3/boost/asio/streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // streambuf.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/time_traits.hpp
==============================================================================
--- branches/proto/v3/boost/asio/time_traits.hpp (original)
+++ branches/proto/v3/boost/asio/time_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // time_traits.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/version.hpp
==============================================================================
--- branches/proto/v3/boost/asio/version.hpp (original)
+++ branches/proto/v3/boost/asio/version.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // version.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/asio/write.hpp
==============================================================================
--- branches/proto/v3/boost/asio/write.hpp (original)
+++ branches/proto/v3/boost/asio/write.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // write.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/assign/list_of.hpp
==============================================================================
--- branches/proto/v3/boost/assign/list_of.hpp (original)
+++ branches/proto/v3/boost/assign/list_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,8 +17,7 @@
 #endif
 
 #include <boost/assign/assignment_exception.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
+#include <boost/range/iterator_range.hpp>
 #include <boost/config.hpp>
 #include <boost/tuple/tuple.hpp>
 #include <boost/type_traits/remove_const.hpp>
@@ -110,9 +109,23 @@
 
 
     
- template< class DerivedTAssign >
+ template< class DerivedTAssign, class Iterator >
     class converter
     {
+ public: // Range operations
+ typedef Iterator iterator;
+ typedef Iterator const_iterator;
+
+ iterator begin() const
+ {
+ return static_cast<const DerivedTAssign*>(this)->begin();
+ }
+
+ iterator end() const
+ {
+ return static_cast<const DerivedTAssign*>(this)->end();
+ }
+
     public:
 
         template< class Container >
@@ -138,18 +151,16 @@
 #if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1)
 // old Dinkumware doesn't support iterator type as template
             Container result;
- BOOST_DEDUCED_TYPENAME DerivedTAssign::iterator
- it = static_cast<const DerivedTAssign*>(this)->begin(),
- end = static_cast<const DerivedTAssign*>(this)->end();
- while( it != end )
+ iterator it = begin(),
+ e = end();
+ while( it != e )
             {
                 result.insert( result.end(), *it );
                 ++it;
             }
             return result;
 #else
- return Container( static_cast<const DerivedTAssign*>(this)->begin(),
- static_cast<const DerivedTAssign*>(this)->end() );
+ return Container( begin(), end() );
 #endif
         }
 
@@ -167,10 +178,9 @@
             if( sz < static_cast<const DerivedTAssign*>(this)->size() )
                 throw assign::assignment_exception( "array initialized with too many elements" );
             std::size_t n = 0;
- BOOST_DEDUCED_TYPENAME DerivedTAssign::iterator
- i = static_cast<const DerivedTAssign*>(this)->begin(),
- end = static_cast<const DerivedTAssign*>(this)->end();
- for( ; i != end; ++i, ++n )
+ iterator i = begin(),
+ e = end();
+ for( ; i != e; ++i, ++n )
                 ar[n] = *i;
             for( ; n < sz; ++n )
                 ar[n] = value_type();
@@ -181,10 +191,9 @@
         Adapter convert_to_adapter( const Adapter* = 0 ) const
         {
             Adapter a;
- BOOST_DEDUCED_TYPENAME DerivedTAssign::iterator
- i = static_cast<const DerivedTAssign*>(this)->begin(),
- end = static_cast<const DerivedTAssign*>(this)->end();
- for( ; i != end; ++i )
+ iterator i = begin(),
+ e = end();
+ for( ; i != e; ++i )
                 a.push( *i );
             return a;
         }
@@ -234,6 +243,86 @@
             return convert( &a, array_type_tag() );
         }
     };
+
+ template< class T, class I, class Range >
+ inline bool operator==( const converter<T,I>& l, const Range& r )
+ {
+ return ::boost::iterator_range_detail::equal( l, r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator==( const Range& l, const converter<T,I>& r )
+ {
+ return r == l;
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator!=( const converter<T,I>& l, const Range& r )
+ {
+ return !( l == r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator!=( const Range& l, const converter<T,I>& r )
+ {
+ return !( l == r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator<( const converter<T,I>& l, const Range& r )
+ {
+ return ::boost::iterator_range_detail::less_than( l, r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator<( const Range& l, const converter<T,I>& r )
+ {
+ return ::boost::iterator_range_detail::less_than( l, r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator>( const converter<T,I>& l, const Range& r )
+ {
+ return r < l;
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator>( const Range& l, const converter<T,I>& r )
+ {
+ return r < l;
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator<=( const converter<T,I>& l, const Range& r )
+ {
+ return !( l > r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator<=( const Range& l, const converter<T,I>& r )
+ {
+ return !( l > r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator>=( const converter<T,I>& l, const Range& r )
+ {
+ return !( l < r );
+ }
+
+ template< class T, class I, class Range >
+ inline bool operator>=( const Range& l, const converter<T,I>& r )
+ {
+ return !( l < r );
+ }
+
+ template< class T, class I, class Elem, class Traits >
+ inline std::basic_ostream<Elem,Traits>&
+ operator<<( std::basic_ostream<Elem, Traits>& Os,
+ const converter<T,I>& r )
+ {
+ return Os << ::boost::make_iterator_range( r.begin(), r.end() );
+ }
     
     /////////////////////////////////////////////////////////////////////////
     // Part 1: flexible, but inefficient interface
@@ -241,17 +330,17 @@
 
     template< class T >
     class generic_list :
- public converter< generic_list< BOOST_DEDUCED_TYPENAME assign_decay<T>::type > >
+ public converter< generic_list< BOOST_DEDUCED_TYPENAME assign_decay<T>::type >,
+ BOOST_DEDUCED_TYPENAME std::deque<BOOST_DEDUCED_TYPENAME
+ assign_decay<T>::type>::iterator >
     {
- typedef converter< generic_list< BOOST_DEDUCED_TYPENAME assign_decay<T>::type > >
- base_type;
         typedef BOOST_DEDUCED_TYPENAME assign_decay<T>::type Ty;
         typedef std::deque<Ty> impl_type;
         mutable impl_type values_;
         
     public:
         typedef BOOST_DEDUCED_TYPENAME impl_type::iterator iterator;
- typedef BOOST_DEDUCED_TYPENAME impl_type::const_iterator const_iterator;
+ typedef iterator const_iterator;
         typedef BOOST_DEDUCED_TYPENAME impl_type::value_type value_type;
         typedef BOOST_DEDUCED_TYPENAME impl_type::size_type size_type;
         typedef BOOST_DEDUCED_TYPENAME impl_type::difference_type difference_type;
@@ -347,7 +436,7 @@
             return this-> BOOST_NESTED_TEMPLATE convert_to_container<Container>();
         }
     };
-
+
     /////////////////////////////////////////////////////////////////////////
     // Part 2: efficient, but inconvenient interface
     /////////////////////////////////////////////////////////////////////////
@@ -411,16 +500,15 @@
     
     template< class T, int N >
     struct static_generic_list :
- public converter< static_generic_list<T,N> >
+ public converter< static_generic_list<T,N>, assign_reference<T>* >
     {
     private:
- typedef converter< static_generic_list<T,N> > base_class;
- typedef T internal_value_type;
+ typedef T internal_value_type;
 
     public:
         typedef assign_reference<internal_value_type> value_type;
         typedef value_type* iterator;
- typedef const value_type* const_iterator;
+ typedef value_type* const_iterator;
         typedef std::size_t size_type;
         typedef std::ptrdiff_t difference_type;
 

Modified: branches/proto/v3/boost/assign/ptr_list_of.hpp
==============================================================================
--- branches/proto/v3/boost/assign/ptr_list_of.hpp (original)
+++ branches/proto/v3/boost/assign/ptr_list_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,7 +16,7 @@
 # pragma once
 #endif
 
-#include <boost/assign/assignment_exception.hpp>
+#include <boost/assign/list_of.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/remove_reference.hpp>
 #include <boost/type_traits/is_reference.hpp>
@@ -41,7 +41,9 @@
     /////////////////////////////////////////////////////////////////////////
 
     template< class T >
- class generic_ptr_list
+ class generic_ptr_list :
+ public converter< generic_ptr_list<T>,
+ BOOST_DEDUCED_TYPENAME boost::ptr_vector<T>::iterator >
     {
     protected:
         typedef boost::ptr_vector<T> impl_type;
@@ -50,7 +52,7 @@
         
     public:
         typedef BOOST_DEDUCED_TYPENAME impl_type::iterator iterator;
- typedef BOOST_DEDUCED_TYPENAME impl_type::const_iterator const_iterator;
+ typedef iterator const_iterator;
         typedef BOOST_DEDUCED_TYPENAME impl_type::value_type value_type;
         typedef BOOST_DEDUCED_TYPENAME impl_type::size_type size_type;
         typedef BOOST_DEDUCED_TYPENAME impl_type::difference_type difference_type;
@@ -58,12 +60,6 @@
         generic_ptr_list() : values_( 32u )
         { }
 
- /*
- generic_ptr_list( const generic_ptr_list& r )
- {
- values_.swap(r.values_);
- }*/
-
         generic_ptr_list( release_type r ) : values_(r)
         { }
 

Modified: branches/proto/v3/boost/bimap/detail/bimap_core.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/detail/bimap_core.hpp (original)
+++ branches/proto/v3/boost/bimap/detail/bimap_core.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -92,34 +92,34 @@
     typedef BOOST_DEDUCED_TYPENAME manage_bimap_key
     <
         RightSetType
-
- >::type right_set_type;
 
-
- private:
+ >::type right_set_type;
 
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::default_tagged
- <
- BOOST_DEDUCED_TYPENAME left_set_type::user_type,
- ::boost::bimaps::relation::member_at::left
-
- >::type left_tagged_type;
-
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::default_tagged
- <
- BOOST_DEDUCED_TYPENAME right_set_type::user_type,
- ::boost::bimaps::relation::member_at::right
-
- >::type right_tagged_type;
 
- public:
+ private:
+
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::default_tagged
+ <
+ BOOST_DEDUCED_TYPENAME left_set_type::user_type,
+ ::boost::bimaps::relation::member_at::left
 
- //@{
+ >::type left_tagged_type;
 
- typedef BOOST_DEDUCED_TYPENAME left_tagged_type::tag left_tag;
- typedef BOOST_DEDUCED_TYPENAME right_tagged_type::tag right_tag;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::default_tagged
+ <
+ BOOST_DEDUCED_TYPENAME right_set_type::user_type,
+ ::boost::bimaps::relation::member_at::right
+
+ >::type right_tagged_type;
 
- //@}
+ public:
+
+ //@{
+
+ typedef BOOST_DEDUCED_TYPENAME left_tagged_type::tag left_tag;
+ typedef BOOST_DEDUCED_TYPENAME right_tagged_type::tag right_tag;
+
+ //@}
 
     //@{
 
@@ -279,7 +279,7 @@
     /* else */ BOOST_DEDUCED_TYPENAME mpl::if_<
             is_same< BOOST_DEDUCED_TYPENAME parameters::set_type_of_relation, right_based >,
     // {
- ::boost::bimaps::tags::tagged< right_set_type, right_tag >,
+ ::boost::bimaps::tags::tagged< right_set_type, right_tag >,
     // }
     // else
     // {
@@ -496,7 +496,7 @@
 template< class BimapBaseType >
 struct left_map_view_type
 {
- typedef BOOST_DEDUCED_TYPENAME BimapBaseType::left_set_type left_set_type;
+ typedef BOOST_DEDUCED_TYPENAME BimapBaseType::left_set_type left_set_type;
     typedef BOOST_DEDUCED_TYPENAME
         left_set_type::BOOST_NESTED_TEMPLATE map_view_bind<
             BOOST_DEDUCED_TYPENAME BimapBaseType::left_tag, BimapBaseType
@@ -506,7 +506,7 @@
 template< class BimapBaseType >
 struct right_map_view_type
 {
- typedef BOOST_DEDUCED_TYPENAME BimapBaseType::right_set_type right_set_type;
+ typedef BOOST_DEDUCED_TYPENAME BimapBaseType::right_set_type right_set_type;
     typedef BOOST_DEDUCED_TYPENAME
         right_set_type::BOOST_NESTED_TEMPLATE map_view_bind<
             BOOST_DEDUCED_TYPENAME BimapBaseType::right_tag, BimapBaseType

Modified: branches/proto/v3/boost/bimap/detail/set_view_base.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/detail/set_view_base.hpp (original)
+++ branches/proto/v3/boost/bimap/detail/set_view_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -45,7 +45,7 @@
 template< class MutantRelationStorage, class KeyToBase >
 class set_view_key_to_base<MutantRelationStorage,MutantRelationStorage,KeyToBase>
 {
- typedef BOOST_DEDUCED_TYPENAME MutantRelationStorage::non_mutable_storage non_mutable_storage;
+ typedef BOOST_DEDUCED_TYPENAME MutantRelationStorage::non_mutable_storage non_mutable_storage;
     public:
     const MutantRelationStorage & operator()( const non_mutable_storage & k ) const
     {

Modified: branches/proto/v3/boost/bimap/list_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/list_of.hpp (original)
+++ branches/proto/v3/boost/bimap/list_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -107,8 +107,8 @@
     typedef Type user_type;
 
     /// Type of the object that will be stored in the list
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
 
     struct lazy_concept_checked

Modified: branches/proto/v3/boost/bimap/multiset_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/multiset_of.hpp (original)
+++ branches/proto/v3/boost/bimap/multiset_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -108,8 +108,8 @@
 template
 <
     class KeyType,
- class KeyCompare = std::less< BOOST_DEDUCED_TYPENAME
- ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
+ class KeyCompare = std::less< BOOST_DEDUCED_TYPENAME
+ ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
>
 struct multiset_of : public ::boost::bimaps::detail::set_type_of_tag
 {
@@ -117,8 +117,8 @@
     typedef KeyType user_type;
 
     /// Type of the object that will be stored in the multiset
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
     /// Functor that compare two keys
     typedef KeyCompare key_compare;

Modified: branches/proto/v3/boost/bimap/set_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/set_of.hpp (original)
+++ branches/proto/v3/boost/bimap/set_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -110,16 +110,16 @@
 <
     class KeyType,
     class KeyCompare = std::less< BOOST_DEDUCED_TYPENAME
- ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
+ ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
>
 struct set_of : public ::boost::bimaps::detail::set_type_of_tag
 {
- /// User type, can be tagged
+ /// User type, can be tagged
     typedef KeyType user_type;
 
     /// Type of the object that will be stored in the set
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
     /// Functor that compare two keys
     typedef KeyCompare key_compare;

Modified: branches/proto/v3/boost/bimap/unconstrained_set_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/unconstrained_set_of.hpp (original)
+++ branches/proto/v3/boost/bimap/unconstrained_set_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -67,8 +67,8 @@
     typedef KeyType user_type;
 
     /// Type of the object that will be stored in the container
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
     struct lazy_concept_checked
     {

Modified: branches/proto/v3/boost/bimap/unordered_multiset_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/unordered_multiset_of.hpp (original)
+++ branches/proto/v3/boost/bimap/unordered_multiset_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -118,9 +118,9 @@
 <
     class KeyType,
     class HashFunctor = hash< BOOST_DEDUCED_TYPENAME
- ::boost::bimaps::tags::support::value_type_of<KeyType>::type >,
+ ::boost::bimaps::tags::support::value_type_of<KeyType>::type >,
     class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME
- ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
+ ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
>
 struct unordered_multiset_of : public ::boost::bimaps::detail::set_type_of_tag
 {
@@ -128,8 +128,8 @@
     typedef KeyType user_type;
 
     /// Type of the object that will be stored in the container
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
     /// Hash Functor that takes value_type objects
     typedef HashFunctor hasher;

Modified: branches/proto/v3/boost/bimap/unordered_set_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/unordered_set_of.hpp (original)
+++ branches/proto/v3/boost/bimap/unordered_set_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -115,9 +115,9 @@
 <
     class KeyType,
     class HashFunctor = hash< BOOST_DEDUCED_TYPENAME
- ::boost::bimaps::tags::support::value_type_of<KeyType>::type >,
+ ::boost::bimaps::tags::support::value_type_of<KeyType>::type >,
     class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME
- ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
+ ::boost::bimaps::tags::support::value_type_of<KeyType>::type >
>
 struct unordered_set_of : public ::boost::bimaps::detail::set_type_of_tag
 {
@@ -125,8 +125,8 @@
     typedef KeyType user_type;
 
     /// Type of the object that will be stored in the container
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
     /// Hash Functor that takes value_type objects
     typedef HashFunctor hasher;

Modified: branches/proto/v3/boost/bimap/vector_of.hpp
==============================================================================
--- branches/proto/v3/boost/bimap/vector_of.hpp (original)
+++ branches/proto/v3/boost/bimap/vector_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -112,8 +112,8 @@
     typedef Type user_type;
 
     /// Type of the object that will be stored in the vector
- typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
- value_type_of<user_type>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::
+ value_type_of<user_type>::type value_type;
 
 
     struct lazy_concept_checked

Modified: branches/proto/v3/boost/bind.hpp
==============================================================================
--- branches/proto/v3/boost/bind.hpp (original)
+++ branches/proto/v3/boost/bind.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -248,6 +248,9 @@
     }
 };
 
+struct logical_and;
+struct logical_or;
+
 template< class A1, class A2 > class list2: private storage2< A1, A2 >
 {
 private:
@@ -294,6 +297,26 @@
         unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
     }
 
+ template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
+ {
+ return a[ base_type::a1_ ] && a[ base_type::a2_ ];
+ }
+
+ template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
+ {
+ return a[ base_type::a1_ ] && a[ base_type::a2_ ];
+ }
+
+ template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
+ {
+ return a[ base_type::a1_ ] || a[ base_type::a2_ ];
+ }
+
+ template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
+ {
+ return a[ base_type::a1_ ] || a[ base_type::a2_ ];
+ }
+
     template<class V> void accept(V & v) const
     {
         base_type::accept(v);
@@ -1158,6 +1181,9 @@
 BOOST_BIND_OPERATOR( >, greater )
 BOOST_BIND_OPERATOR( >=, greater_equal )
 
+BOOST_BIND_OPERATOR( &&, logical_and )
+BOOST_BIND_OPERATOR( ||, logical_or )
+
 #undef BOOST_BIND_OPERATOR
 
 #if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)

Modified: branches/proto/v3/boost/circular_buffer/base.hpp
==============================================================================
--- branches/proto/v3/boost/circular_buffer/base.hpp (original)
+++ branches/proto/v3/boost/circular_buffer/base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -909,8 +909,8 @@
                 used).
         \par Complexity
              Constant.
- \note This constructor has been defined only due to compatibility with the STL container definition. Avoid
- using it because it may allocate very large amount of memory.
+ \warning This constructor has been defined only due to compatibility with the STL container definition. Avoid
+ using it because it may allocate <b>very large</b> amount of memory.
     */
     explicit circular_buffer(const allocator_type& alloc = allocator_type())
     : m_size(0), m_alloc(alloc) {
@@ -1781,6 +1781,9 @@
              the erased element (towards the beginning).
         \par Complexity
              Linear (in <code>std::distance(begin(), pos)</code>).
+ \note This method is symetric to the <code>erase(iterator)</code> method and is more effective than
+ <code>erase(iterator)</code> if the iterator <code>pos</code> is close to the beginning of the
+ <code>circular_buffer</code>. (See the <i>Complexity</i>.)
         \sa <code>erase(iterator)</code>, <code>erase(iterator, iterator)</code>,
             <code>rerase(iterator, iterator)</code>, <code>clear()</code>
     */
@@ -1818,6 +1821,9 @@
              the erased range (towards the beginning).
         \par Complexity
              Linear (in <code>std::distance(begin(), last)</code>).
+ \note This method is symetric to the <code>erase(iterator, iterator)</code> method and is more effective than
+ <code>erase(iterator, iterator)</code> if <code>std::distance(begin(), first)</code> is lower that
+ <code>std::distance(last, end())</code>.
         \sa <code>erase(iterator)</code>, <code>erase(iterator, iterator)</code>, <code>rerase(iterator)</code>,
             <code>clear()</code>
     */

Modified: branches/proto/v3/boost/circular_buffer/details.hpp
==============================================================================
--- branches/proto/v3/boost/circular_buffer/details.hpp (original)
+++ branches/proto/v3/boost/circular_buffer/details.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -227,7 +227,7 @@
     //! Difference type.
     typedef typename base_iterator::difference_type difference_type;
 
-#if !defined(BOOST_CB_TEST) && !BOOST_CB_ENABLE_DEBUG
+#if !defined(BOOST_CB_TEST) && BOOST_CB_ENABLE_DEBUG == 0
 private:
 #endif
 // Member variables

Modified: branches/proto/v3/boost/circular_buffer/space_optimized.hpp
==============================================================================
--- branches/proto/v3/boost/circular_buffer/space_optimized.hpp (original)
+++ branches/proto/v3/boost/circular_buffer/space_optimized.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1141,6 +1141,8 @@
              equal to <code>end()</code>).
         \par Complexity
              Linear (in the size of the <code>circular_buffer_space_optimized</code>).
+ \note Basically there is no difference between <code>erase(iterator)</code> and this method. It is implemented
+ only for consistency with the base <code>circular_buffer</code>.
         \sa <code>erase(iterator)</code>, <code>erase(iterator, iterator)</code>,
             <code>rerase(iterator, iterator)</code>, <code>clear()</code>
     */
@@ -1171,6 +1173,9 @@
              equal to <code>end()</code>).
         \par Complexity
              Linear (in the size of the <code>circular_buffer_space_optimized</code>).
+ \note Basically there is no difference between <code>erase(iterator, iterator)</code> and this method. It is
+ implemented only for consistency with the base
+ <code>circular_buffer</code>.
         \sa <code>erase(iterator)</code>, <code>erase(iterator, iterator)</code>, <code>rerase(iterator)</code>,
             <code>clear()</code>
     */

Modified: branches/proto/v3/boost/config/compiler/intel.hpp
==============================================================================
--- branches/proto/v3/boost/config/compiler/intel.hpp (original)
+++ branches/proto/v3/boost/config/compiler/intel.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,4 @@
-// (C) Copyright John Maddock 2001-7.
+// (C) Copyright John Maddock 2001-8.
 // (C) Copyright Peter Dimov 2001.
 // (C) Copyright Jens Maurer 2001.
 // (C) Copyright David Abrahams 2002 - 2003.
@@ -148,16 +148,15 @@
 #endif
 //
 // last known and checked version:
-#if (BOOST_INTEL_CXX_VERSION > 1000)
+#if (BOOST_INTEL_CXX_VERSION > 1010)
 # if defined(BOOST_ASSERT_CONFIG)
 # error "Unknown compiler version - please run the configure tests and report the results"
 # elif defined(_MSC_VER)
-# pragma message("Unknown compiler version - please run the configure tests and report the results")
+//
+// We don't emit this warning any more, since we have so few
+// defect macros set anyway (just the one).
+//
+//# pragma message("Unknown compiler version - please run the configure tests and report the results")
 # endif
 #endif
 
-
-
-
-
-

Modified: branches/proto/v3/boost/config/compiler/sunpro_cc.hpp
==============================================================================
--- branches/proto/v3/boost/config/compiler/sunpro_cc.hpp (original)
+++ branches/proto/v3/boost/config/compiler/sunpro_cc.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -84,8 +84,8 @@
 #error "Compiler not supported or configured - please reconfigure"
 #endif
 //
-// last known and checked version is 0x570:
-#if (__SUNPRO_CC > 0x580)
+// last known and checked version is 0x590:
+#if (__SUNPRO_CC > 0x590)
 # if defined(BOOST_ASSERT_CONFIG)
 # error "Unknown compiler version - please run the configure tests and report the results"
 # endif

Modified: branches/proto/v3/boost/config/platform/hpux.hpp
==============================================================================
--- branches/proto/v3/boost/config/platform/hpux.hpp (original)
+++ branches/proto/v3/boost/config/platform/hpux.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -23,6 +23,8 @@
 
 #if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
 # define BOOST_NO_SWPRINTF
+#endif
+#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
 # define BOOST_NO_CWCTYPE
 #endif
 
@@ -82,3 +84,4 @@
 #ifndef BOOST_HAS_EXPM1
 # define BOOST_HAS_EXPM1
 #endif
+

Modified: branches/proto/v3/boost/date_time.hpp
==============================================================================
--- branches/proto/v3/boost/date_time.hpp (original)
+++ branches/proto/v3/boost/date_time.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2006 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/adjust_functors.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/adjust_functors.hpp (original)
+++ branches/proto/v3/boost/date_time/adjust_functors.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/c_local_time_adjustor.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/c_local_time_adjustor.hpp (original)
+++ branches/proto/v3/boost/date_time/c_local_time_adjustor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/c_time.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/c_time.hpp (original)
+++ branches/proto/v3/boost/date_time/c_time.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/compiler_config.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/compiler_config.hpp (original)
+++ branches/proto/v3/boost/date_time/compiler_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/constrained_value.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/constrained_value.hpp (original)
+++ branches/proto/v3/boost/date_time/constrained_value.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date.hpp (original)
+++ branches/proto/v3/boost/date_time/date.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_clock_device.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_clock_device.hpp (original)
+++ branches/proto/v3/boost/date_time/date_clock_device.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_defs.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_defs.hpp (original)
+++ branches/proto/v3/boost/date_time/date_defs.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_duration.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_duration.hpp (original)
+++ branches/proto/v3/boost/date_time/date_duration.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_duration_types.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_duration_types.hpp (original)
+++ branches/proto/v3/boost/date_time/date_duration_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,8 +3,8 @@
 
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or
- * http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or
+ * http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_facet.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_facet.hpp (original)
+++ branches/proto/v3/boost/date_time/date_facet.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Martin Andrian, Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_format_simple.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_format_simple.hpp (original)
+++ branches/proto/v3/boost/date_time/date_format_simple.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_formatting.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_formatting.hpp (original)
+++ branches/proto/v3/boost/date_time/date_formatting.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_formatting_limited.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_formatting_limited.hpp (original)
+++ branches/proto/v3/boost/date_time/date_formatting_limited.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_formatting_locales.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_formatting_locales.hpp (original)
+++ branches/proto/v3/boost/date_time/date_formatting_locales.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_generator_formatter.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_generator_formatter.hpp (original)
+++ branches/proto/v3/boost/date_time/date_generator_formatter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_generator_parser.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_generator_parser.hpp (original)
+++ branches/proto/v3/boost/date_time/date_generator_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_generators.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_generators.hpp (original)
+++ branches/proto/v3/boost/date_time/date_generators.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_iterator.hpp (original)
+++ branches/proto/v3/boost/date_time/date_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_names_put.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_names_put.hpp (original)
+++ branches/proto/v3/boost/date_time/date_names_put.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/date_parsing.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/date_parsing.hpp (original)
+++ branches/proto/v3/boost/date_time/date_parsing.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/dst_rules.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/dst_rules.hpp (original)
+++ branches/proto/v3/boost/date_time/dst_rules.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003, 2007 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/dst_transition_generators.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/dst_transition_generators.hpp (original)
+++ branches/proto/v3/boost/date_time/dst_transition_generators.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 #ifndef DATE_TIME_DATE_DST_TRANSITION_DAY_GEN_HPP__

Modified: branches/proto/v3/boost/date_time/filetime_functions.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/filetime_functions.hpp (original)
+++ branches/proto/v3/boost/date_time/filetime_functions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/format_date_parser.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/format_date_parser.hpp (original)
+++ branches/proto/v3/boost/date_time/format_date_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/conversion.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/conversion.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/conversion.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/formatters.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/formatters.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/formatters.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/formatters_limited.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/formatters_limited.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/formatters_limited.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_calendar.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_calendar.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_calendar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_date.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_date.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_date.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_day.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_day.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_day.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_day_of_year.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_day_of_year.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_day_of_year.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_duration.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_duration.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_duration.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_duration_types.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_duration_types.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_duration_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
                                                                                 
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Subject to Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_facet.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_facet.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_facet.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_month.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_month.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_month.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_serialize.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_serialize.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_serialize.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_weekday.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_weekday.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_weekday.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_year.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_year.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_year.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/greg_ymd.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/greg_ymd.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/greg_ymd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/gregorian.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/gregorian.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/gregorian.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/gregorian_io.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/gregorian_io.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/gregorian_io.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/gregorian_types.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/gregorian_types.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/gregorian_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian/parsers.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian/parsers.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian/parsers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian_calendar.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian_calendar.hpp (original)
+++ branches/proto/v3/boost/date_time/gregorian_calendar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/gregorian_calendar.ipp
==============================================================================
--- branches/proto/v3/boost/date_time/gregorian_calendar.ipp (original)
+++ branches/proto/v3/boost/date_time/gregorian_calendar.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/int_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/int_adapter.hpp (original)
+++ branches/proto/v3/boost/date_time/int_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/iso_format.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/iso_format.hpp (original)
+++ branches/proto/v3/boost/date_time/iso_format.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/conversion.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/conversion.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/conversion.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/custom_time_zone.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/custom_time_zone.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/custom_time_zone.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/date_duration_operators.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/date_duration_operators.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/date_duration_operators.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,8 +3,8 @@
                                                                                 
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or
- * http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or
+ * http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/dst_transition_day_rules.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/dst_transition_day_rules.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/dst_transition_day_rules.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/local_date_time.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/local_date_time.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/local_date_time.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/local_time.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/local_time.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/local_time.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/local_time_io.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/local_time_io.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/local_time_io.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/local_time_types.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/local_time_types.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/local_time_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/posix_time_zone.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/posix_time_zone.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/posix_time_zone.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time/tz_database.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time/tz_database.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time/tz_database.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_time_adjustor.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_time_adjustor.hpp (original)
+++ branches/proto/v3/boost/date_time/local_time_adjustor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/local_timezone_defs.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/local_timezone_defs.hpp (original)
+++ branches/proto/v3/boost/date_time/local_timezone_defs.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/locale_config.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/locale_config.hpp (original)
+++ branches/proto/v3/boost/date_time/locale_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2006 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/microsec_time_clock.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/microsec_time_clock.hpp (original)
+++ branches/proto/v3/boost/date_time/microsec_time_clock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/parse_format_base.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/parse_format_base.hpp (original)
+++ branches/proto/v3/boost/date_time/parse_format_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/period.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/period.hpp (original)
+++ branches/proto/v3/boost/date_time/period.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/period_formatter.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/period_formatter.hpp (original)
+++ branches/proto/v3/boost/date_time/period_formatter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/period_parser.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/period_parser.hpp (original)
+++ branches/proto/v3/boost/date_time/period_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/conversion.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/conversion.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/conversion.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/date_duration_operators.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/date_duration_operators.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/date_duration_operators.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,8 +3,8 @@
                                                                                 
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or
- * http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or
+ * http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time_config.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time_config.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time_duration.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time_duration.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time_duration.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time_io.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time_io.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time_io.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time_legacy_io.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time_legacy_io.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time_legacy_io.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time_system.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time_system.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time_system.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/posix_time_types.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/posix_time_types.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/posix_time_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 #ifndef POSIX_TIME_TYPES_HPP___

Modified: branches/proto/v3/boost/date_time/posix_time/ptime.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/ptime.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/ptime.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/time_formatters.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/time_formatters.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/time_formatters.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/time_formatters_limited.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/time_formatters_limited.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/time_formatters_limited.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/time_parsers.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/time_parsers.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/time_parsers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/time_period.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/time_period.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/time_period.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/posix_time/time_serialize.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/posix_time/time_serialize.hpp (original)
+++ branches/proto/v3/boost/date_time/posix_time/time_serialize.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/special_defs.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/special_defs.hpp (original)
+++ branches/proto/v3/boost/date_time/special_defs.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/special_values_formatter.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/special_values_formatter.hpp (original)
+++ branches/proto/v3/boost/date_time/special_values_formatter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/special_values_parser.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/special_values_parser.hpp (original)
+++ branches/proto/v3/boost/date_time/special_values_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date:
  */

Modified: branches/proto/v3/boost/date_time/string_convert.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/string_convert.hpp (original)
+++ branches/proto/v3/boost/date_time/string_convert.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/string_parse_tree.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/string_parse_tree.hpp (original)
+++ branches/proto/v3/boost/date_time/string_parse_tree.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/strings_from_facet.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/strings_from_facet.hpp (original)
+++ branches/proto/v3/boost/date_time/strings_from_facet.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time.hpp (original)
+++ branches/proto/v3/boost/date_time/time.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_clock.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_clock.hpp (original)
+++ branches/proto/v3/boost/date_time/time_clock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_defs.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_defs.hpp (original)
+++ branches/proto/v3/boost/date_time/time_defs.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_duration.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_duration.hpp (original)
+++ branches/proto/v3/boost/date_time/time_duration.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_facet.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_facet.hpp (original)
+++ branches/proto/v3/boost/date_time/time_facet.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 /* Copyright (c) 2004-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Martin Andrian, Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_formatting_streams.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_formatting_streams.hpp (original)
+++ branches/proto/v3/boost/date_time/time_formatting_streams.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_iterator.hpp (original)
+++ branches/proto/v3/boost/date_time/time_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_parsing.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_parsing.hpp (original)
+++ branches/proto/v3/boost/date_time/time_parsing.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_resolution_traits.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_resolution_traits.hpp (original)
+++ branches/proto/v3/boost/date_time/time_resolution_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_system_counted.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_system_counted.hpp (original)
+++ branches/proto/v3/boost/date_time/time_system_counted.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_system_split.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_system_split.hpp (original)
+++ branches/proto/v3/boost/date_time/time_system_split.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_zone_base.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_zone_base.hpp (original)
+++ branches/proto/v3/boost/date_time/time_zone_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/time_zone_names.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/time_zone_names.hpp (original)
+++ branches/proto/v3/boost/date_time/time_zone_names.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002-2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/tz_db_base.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/tz_db_base.hpp (original)
+++ branches/proto/v3/boost/date_time/tz_db_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/wrapping_int.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/wrapping_int.hpp (original)
+++ branches/proto/v3/boost/date_time/wrapping_int.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/boost/date_time/year_month_day.hpp
==============================================================================
--- branches/proto/v3/boost/date_time/year_month_day.hpp (original)
+++ branches/proto/v3/boost/date_time/year_month_day.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/boost/foreach.hpp
==============================================================================
--- branches/proto/v3/boost/foreach.hpp (original)
+++ branches/proto/v3/boost/foreach.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -69,7 +69,10 @@
 #include <boost/noncopyable.hpp>
 #include <boost/range/end.hpp>
 #include <boost/range/begin.hpp>
+#include <boost/range/rend.hpp>
+#include <boost/range/rbegin.hpp>
 #include <boost/range/iterator.hpp>
+#include <boost/range/reverse_iterator.hpp>
 #include <boost/type_traits/is_array.hpp>
 #include <boost/type_traits/is_const.hpp>
 #include <boost/type_traits/is_abstract.hpp>
@@ -202,15 +205,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Define some utilities for assessing the properties of expressions
 //
-typedef char yes_type;
-typedef char (&no_type)[2];
-yes_type is_true(boost::mpl::true_ *);
-no_type is_true(boost::mpl::false_ *);
-
-// Extracts the desired property from the expression without evaluating it
-#define BOOST_FOREACH_PROTECT(expr) \
- (static_cast<boost::mpl::bool_<1 == sizeof(boost::foreach_detail_::is_true(expr))> *>(0))
-
 template<typename Bool1, typename Bool2>
 inline boost::mpl::and_<Bool1, Bool2> *and_(Bool1 *, Bool2 *) { return 0; }
 
@@ -353,8 +347,8 @@
     //
     // To treat the container as an array, use boost::as_array() in <boost/range/as_array.hpp>,
     // as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ...
- #if BOOST_MSVC > 1300
- BOOST_MPL_ASSERT_MSG( (!is_char_array<T>::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T) );
+ #if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
+ BOOST_MPL_ASSERT_MSG( (!is_char_array<T>::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) );
     #endif
 
     // If the type is a pointer to a null terminated string (as opposed
@@ -368,6 +362,37 @@
>::type type;
 };
 
+
+template<typename T, typename C = boost::mpl::false_>
+struct foreach_reverse_iterator
+{
+ // **** READ THIS IF YOUR COMPILE BREAKS HERE ****
+ //
+ // There is an ambiguity about how to iterate over arrays of char and wchar_t.
+ // Should the last array element be treated as a null terminator to be skipped, or
+ // is it just like any other element in the array? To fix the problem, you must
+ // say which behavior you want.
+ //
+ // To treat the container as a null-terminated string, merely cast it to a
+ // char const *, as in BOOST_FOREACH( char ch, (char const *)"hello" ) ...
+ //
+ // To treat the container as an array, use boost::as_array() in <boost/range/as_array.hpp>,
+ // as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ...
+ #if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
+ BOOST_MPL_ASSERT_MSG( (!is_char_array<T>::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) );
+ #endif
+
+ // If the type is a pointer to a null terminated string (as opposed
+ // to an array type), there is no ambiguity.
+ typedef BOOST_DEDUCED_TYPENAME wrap_cstr<T>::type container;
+
+ typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if<
+ C
+ , range_reverse_iterator<container const>
+ , range_reverse_iterator<container>
+ >::type type;
+};
+
 template<typename T, typename C = boost::mpl::false_>
 struct foreach_reference
   : iterator_reference<BOOST_DEDUCED_TYPENAME foreach_iterator<T, C>::type>
@@ -441,17 +466,20 @@
     typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
         boost::mpl::or_<boost::is_abstract<T>, boost::is_array<T> >, private_type_, T
>::type value_type;
- operator value_type();
- operator T &() const;
+ operator value_type() { return *reinterpret_cast<value_type *>(this); } // never called
+ operator T &() const { return *reinterpret_cast<T *>(const_cast<rvalue_probe *>(this)); } // never called
 };
 
 template<typename T>
-rvalue_probe<T> const make_probe(T const &t);
+rvalue_probe<T> const make_probe(T const &t)
+{
+ return rvalue_probe<T>();
+}
 
 # define BOOST_FOREACH_IS_RVALUE(COL) \
     boost::foreach_detail_::and_( \
         boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(COL)) \
- , BOOST_FOREACH_PROTECT(boost::foreach_detail_::is_rvalue_( \
+ , (true ? 0 : boost::foreach_detail_::is_rvalue_( \
             (true ? boost::foreach_detail_::make_probe(COL) : (COL)), 0)))
 
 #elif defined(BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION)
@@ -717,6 +745,114 @@
     return *auto_any_cast<iter_t, boost::mpl::false_>(cur);
 }
 
+/////////////////////////////////////////////////////////////////////////////
+// rbegin
+//
+template<typename T, typename C>
+inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
+rbegin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
+{
+ return boost::rbegin(auto_any_cast<T, C>(col));
+}
+
+template<typename T, typename C>
+inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
+rbegin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
+{
+ typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
+ typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iterator;
+ return iterator(boost::rbegin(derefof(auto_any_cast<type *, boost::mpl::false_>(col))));
+}
+
+#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
+template<typename T>
+auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, const_>::type>
+rbegin(auto_any_t col, type2type<T, const_> *, bool *)
+{
+ return boost::rbegin(*auto_any_cast<simple_variant<T>, boost::mpl::false_>(col).get());
+}
+#endif
+
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+template<typename T, typename C>
+inline auto_any<reverse_iterator<T *> >
+rbegin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
+{
+ T *p = auto_any_cast<T *, boost::mpl::false_>(col);
+ while(0 != *p)
+ ++p;
+ return reverse_iterator<T *>(p);
+}
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+// rend
+//
+template<typename T, typename C>
+inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
+rend(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
+{
+ return boost::rend(auto_any_cast<T, C>(col));
+}
+
+template<typename T, typename C>
+inline auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type>
+rend(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
+{
+ typedef BOOST_DEDUCED_TYPENAME type2type<T, C>::type type;
+ typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iterator;
+ return iterator(boost::rend(derefof(auto_any_cast<type *, boost::mpl::false_>(col))));
+}
+
+#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION
+template<typename T>
+auto_any<BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, const_>::type>
+rend(auto_any_t col, type2type<T, const_> *, bool *)
+{
+ return boost::rend(*auto_any_cast<simple_variant<T>, boost::mpl::false_>(col).get());
+}
+#endif
+
+#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+template<typename T, typename C>
+inline auto_any<reverse_iterator<T *> >
+rend(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
+{
+ return reverse_iterator<T *>(auto_any_cast<T *, boost::mpl::false_>(col));
+}
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+// rdone
+//
+template<typename T, typename C>
+inline bool rdone(auto_any_t cur, auto_any_t end, type2type<T, C> *)
+{
+ typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iter_t;
+ return auto_any_cast<iter_t, boost::mpl::false_>(cur) == auto_any_cast<iter_t, boost::mpl::false_>(end);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// rnext
+//
+template<typename T, typename C>
+inline void rnext(auto_any_t cur, type2type<T, C> *)
+{
+ typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iter_t;
+ ++auto_any_cast<iter_t, boost::mpl::false_>(cur);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// rderef
+//
+template<typename T, typename C>
+inline BOOST_DEDUCED_TYPENAME foreach_reference<T, C>::type
+rderef(auto_any_t cur, type2type<T, C> *)
+{
+ typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator<T, C>::type iter_t;
+ return *auto_any_cast<iter_t, boost::mpl::false_>(cur);
+}
+
 } // namespace foreach_detail_
 } // namespace boost
 
@@ -853,6 +989,34 @@
         _foreach_cur \
       , BOOST_FOREACH_TYPEOF(COL))
 
+#define BOOST_FOREACH_RBEGIN(COL) \
+ boost::foreach_detail_::rbegin( \
+ _foreach_col \
+ , BOOST_FOREACH_TYPEOF(COL) \
+ , BOOST_FOREACH_SHOULD_COPY(COL))
+
+#define BOOST_FOREACH_REND(COL) \
+ boost::foreach_detail_::rend( \
+ _foreach_col \
+ , BOOST_FOREACH_TYPEOF(COL) \
+ , BOOST_FOREACH_SHOULD_COPY(COL))
+
+#define BOOST_FOREACH_RDONE(COL) \
+ boost::foreach_detail_::rdone( \
+ _foreach_cur \
+ , _foreach_end \
+ , BOOST_FOREACH_TYPEOF(COL))
+
+#define BOOST_FOREACH_RNEXT(COL) \
+ boost::foreach_detail_::rnext( \
+ _foreach_cur \
+ , BOOST_FOREACH_TYPEOF(COL))
+
+#define BOOST_FOREACH_RDEREF(COL) \
+ boost::foreach_detail_::rderef( \
+ _foreach_cur \
+ , BOOST_FOREACH_TYPEOF(COL))
+
 ///////////////////////////////////////////////////////////////////////////////
 // BOOST_FOREACH
 //
@@ -890,4 +1054,22 @@
         if (boost::foreach_detail_::set_false(_foreach_continue)) {} else \
         for (VAR = BOOST_FOREACH_DEREF(COL); !_foreach_continue; _foreach_continue = true)
 
+///////////////////////////////////////////////////////////////////////////////
+// BOOST_REVERSE_FOREACH
+//
+// For iterating over collections in reverse order. In
+// all other respects, BOOST_REVERSE_FOREACH is like
+// BOOST_FOREACH.
+//
+#define BOOST_REVERSE_FOREACH(VAR, COL) \
+ BOOST_FOREACH_PREAMBLE() \
+ if (boost::foreach_detail_::auto_any_t _foreach_col = BOOST_FOREACH_CONTAIN(COL)) {} else \
+ if (boost::foreach_detail_::auto_any_t _foreach_cur = BOOST_FOREACH_RBEGIN(COL)) {} else \
+ if (boost::foreach_detail_::auto_any_t _foreach_end = BOOST_FOREACH_REND(COL)) {} else \
+ for (bool _foreach_continue = true; \
+ _foreach_continue && !BOOST_FOREACH_RDONE(COL); \
+ _foreach_continue ? BOOST_FOREACH_RNEXT(COL) : (void)0) \
+ if (boost::foreach_detail_::set_false(_foreach_continue)) {} else \
+ for (VAR = BOOST_FOREACH_RDEREF(COL); !_foreach_continue; _foreach_continue = true)
+
 #endif

Modified: branches/proto/v3/boost/function_types/components.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/components.hpp (original)
+++ branches/proto/v3/boost/function_types/components.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -120,13 +120,14 @@
     template
     < typename Components
     , typename IfTagged
- , typename ThenTag
+ , typename ThenTag
+ , typename DefaultBase = components_non_func_base
>
     struct retagged_if
       : mpl::if_
         < detail::represents_impl<Components, IfTagged>
         , detail::changed_tag<Components,IfTagged,ThenTag>
- , components_non_func_base
+ , DefaultBase
>::type
     { };
 
@@ -213,14 +214,71 @@
       : components_impl<T,L>
     { };
 
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
+
+ template<typename T, class C>
+ struct member_obj_ptr_result
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T, C const>
+ { typedef T const & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T, C volatile>
+ { typedef T volatile & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T, C const volatile>
+ { typedef T const volatile & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C>
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C const>
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C volatile>
+ { typedef T & type; };
+
+ template<typename T, class C>
+ struct member_obj_ptr_result<T &, C const volatile>
+ { typedef T & type; };
+
+ template<typename T, class C, typename L>
+ struct member_obj_ptr_components
+ : member_object_pointer_base
+ {
+ typedef function_types::components<T C::*, L> type;
+ typedef components_mpl_sequence_tag tag;
+
+ typedef mpl::integral_c<std::size_t,1> function_arity;
+
+ typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
+ typename detail::class_transform<C,L>::type > types;
+ };
+
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
+# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
+
+ template<typename T, class C, typename L>
+ struct components_impl<T C::*, L>
+ : member_obj_ptr_components<T,C,L>
+ { };
+
+#else
+# define BOOST_FT_variations BOOST_FT_pointer
+
     // This workaround removes the member pointer from the type to allow
     // detection of member function pointers with BCC.
     template<typename T, typename C, typename L>
     struct components_impl<T C::*, L>
       : detail::retagged_if
         < detail::components_impl<typename boost::remove_cv<T>::type *, L>
- , pointer_tag, /* --> */ member_pointer_tag >
+ , pointer_tag, /* --> */ member_function_pointer_tag
+ , member_obj_ptr_components<T,C,L> >
     { };
 
     // BCC lets us test the cv-qualification of a function type by template
@@ -349,65 +407,13 @@
     struct components_bcc
       : mpl::if_
         < detail::represents_impl< detail::components_impl<T,L>
- , member_pointer_tag>
+ , member_function_pointer_tag>
         , detail::mfp_components<detail::components_impl<T,L>,T,OrigT,L>
         , detail::components_impl<T,L>
>::type
     { };
 
-// TODO: add data member support for Borland
-
-# define BOOST_FT_variations BOOST_FT_pointer
-#else // end of BORLAND WORKAROUND
-# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
-
- template<typename T, class C>
- struct member_obj_ptr_result
- { typedef T & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T, C const>
- { typedef T const & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T, C volatile>
- { typedef T volatile & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T, C const volatile>
- { typedef T const volatile & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T &, C>
- { typedef T & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T &, C const>
- { typedef T & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T &, C volatile>
- { typedef T & type; };
-
- template<typename T, class C>
- struct member_obj_ptr_result<T &, C const volatile>
- { typedef T & type; };
-
-
- template<typename T, class C, typename L>
- struct components_impl<T C::*, L>
- : member_object_pointer_base
- {
- typedef function_types::components<T C::*, L> type;
- typedef components_mpl_sequence_tag tag;
-
- typedef mpl::integral_c<std::size_t,1> function_arity;
-
- typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
- typename detail::class_transform<C,L>::type > types;
- };
-
-#endif
+#endif // end of BORLAND WORKAROUND
 
 #define BOOST_FT_al_path boost/function_types/detail/components_impl
 #include <boost/function_types/detail/pp_loop.hpp>

Modified: branches/proto/v3/boost/function_types/detail/cv_traits.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/cv_traits.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/cv_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,7 +12,9 @@
 #include <cstddef>
 #include <boost/detail/workaround.hpp>
 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) \
+ || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
 # include <boost/type_traits/remove_cv.hpp>
 # include <boost/type_traits/remove_pointer.hpp>
 # include <boost/type_traits/remove_reference.hpp>
@@ -25,7 +27,9 @@
 namespace ft = boost::function_types;
 
 
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) \
+ || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)))
 
 template<typename T> struct cv_traits
 { typedef non_cv tag; typedef T type; };

Modified: branches/proto/v3/boost/function_types/detail/pp_arity_loop.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/pp_arity_loop.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/pp_arity_loop.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,14 +81,16 @@
 # include <boost/preprocessor/repetition/enum_trailing_params.hpp>
 # endif
 
+# define BOOST_FT_AL_INCLUDE_FILE <BOOST_FT_al_path/master.hpp>
+
 # define BOOST_FT_ARITY_LOOP_PREFIX 1
-# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
+# include BOOST_FT_AL_INCLUDE_FILE
 # undef BOOST_FT_ARITY_LOOP_PREFIX
 
 # if !BOOST_PP_IS_ITERATING
-# define BOOST_PP_FILENAME_1 <BOOST_FT_al_path/master.hpp>
+# define BOOST_PP_FILENAME_1 BOOST_FT_AL_INCLUDE_FILE
 # elif BOOST_PP_ITERATION_DEPTH() == 1
-# define BOOST_PP_FILENAME_2 <BOOST_FT_al_path/master.hpp>
+# define BOOST_PP_FILENAME_2 BOOST_FT_AL_INCLUDE_FILE
 # else
 # error "loops nested too deeply"
 # endif
@@ -133,8 +135,10 @@
 # undef BOOST_FT_type
 
 # define BOOST_FT_ARITY_LOOP_SUFFIX 1
-# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
+# include BOOST_FT_AL_INCLUDE_FILE
 # undef BOOST_FT_ARITY_LOOP_SUFFIX
+
+# undef BOOST_FT_AL_INCLUDE_FILE
 # endif
 
 # undef BOOST_FT_FROM_ARITY

Modified: branches/proto/v3/boost/function_types/detail/pp_cc_loop/master.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/pp_cc_loop/master.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/pp_cc_loop/master.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -42,7 +42,7 @@
 # define BOOST_FT_cc_name implicit_cc
 # define BOOST_FT_cc BOOST_PP_EMPTY
 # define BOOST_FT_cond callable_builtin
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
 # undef BOOST_FT_cc
@@ -54,7 +54,7 @@
 BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY
 BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin
 #define _()
-BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()( <BOOST_FT_cc_file> )
+BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
 #undef _
 BOOST_PP_EXPAND(#) undef BOOST_FT_cond
 BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
@@ -85,7 +85,7 @@
 
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND(<BOOST_FT_cc_file>)
+# include BOOST_FT_cc_file
 # endif
 
 # undef BOOST_FT_cond
@@ -121,7 +121,7 @@
 BOOST_PP_EXPAND(#) if BOOST_FT_cond
 BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1
 #define _()
-BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()(<BOOST_FT_cc_file>)
+BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
 #undef _
 BOOST_PP_EXPAND(#) endif
 

Modified: branches/proto/v3/boost/function_types/detail/pp_cc_loop/preprocessed.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/pp_cc_loop/preprocessed.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/pp_cc_loop/preprocessed.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,7 +15,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -27,7 +27,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_CDECL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -39,7 +39,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_STDCALL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -51,7 +51,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_PASCAL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -63,7 +63,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_FASTCALL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -75,7 +75,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_CLRCALL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -87,7 +87,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_THISCALL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -99,7 +99,7 @@
 # define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
 # if BOOST_FT_cond
 # define BOOST_FT_config_valid 1
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # endif
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
@@ -110,7 +110,7 @@
 # define BOOST_FT_cc_name implicit_cc
 # define BOOST_FT_cc BOOST_PP_EMPTY
 # define BOOST_FT_cond 0x00000001
-# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
+# include BOOST_FT_cc_file
 # undef BOOST_FT_cond
 # undef BOOST_FT_cc_name
 # undef BOOST_FT_cc

Modified: branches/proto/v3/boost/function_types/detail/pp_loop.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/pp_loop.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/pp_loop.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,9 +28,9 @@
 #if defined(BOOST_FT_al_path)
 
 # define BOOST_FT_cc_file \
- boost/function_types/detail/pp_variate_loop/preprocessed.hpp
+ <boost/function_types/detail/pp_variate_loop/preprocessed.hpp>
 # define BOOST_FT_variate_file \
- boost/function_types/detail/pp_arity_loop.hpp
+ <boost/function_types/detail/pp_arity_loop.hpp>
 
 # ifndef BOOST_FT_type_function
 # define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \

Modified: branches/proto/v3/boost/function_types/detail/pp_variate_loop/master.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/pp_variate_loop/master.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/pp_variate_loop/master.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -140,7 +140,7 @@
 # endif
 # endif
 BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
-BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND BOOST_PP_EMPTY()(<BOOST_FT_variate_file>)
+BOOST_PP_EXPAND(#) include BOOST_FT_variate_file
 
 BOOST_PP_EXPAND(#) undef BOOST_FT_cv
 BOOST_PP_EXPAND(#) undef BOOST_FT_ell

Modified: branches/proto/v3/boost/function_types/detail/pp_variate_loop/preprocessed.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/detail/pp_variate_loop/preprocessed.hpp (original)
+++ branches/proto/v3/boost/function_types/detail/pp_variate_loop/preprocessed.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,7 +15,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv
 # define BOOST_FT_flags 519
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -28,7 +28,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv
 # define BOOST_FT_flags 263
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -42,7 +42,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv const
 # define BOOST_FT_flags 1543
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -55,7 +55,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv const
 # define BOOST_FT_flags 1287
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -68,7 +68,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv volatile
 # define BOOST_FT_flags 2567
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -81,7 +81,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv volatile
 # define BOOST_FT_flags 2311
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -94,7 +94,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv const volatile
 # define BOOST_FT_flags 3591
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -107,7 +107,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv const volatile
 # define BOOST_FT_flags 3335
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -123,7 +123,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv
 # define BOOST_FT_flags 523
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -136,7 +136,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv
 # define BOOST_FT_flags 267
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -151,7 +151,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv
 # define BOOST_FT_flags 531
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -164,7 +164,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv
 # define BOOST_FT_flags 275
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -181,7 +181,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv
 # define BOOST_FT_flags 609
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -194,7 +194,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv
 # define BOOST_FT_flags 353
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -207,7 +207,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv const
 # define BOOST_FT_flags 1633
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -220,7 +220,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv const
 # define BOOST_FT_flags 1377
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -233,7 +233,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv volatile
 # define BOOST_FT_flags 2657
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -246,7 +246,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv volatile
 # define BOOST_FT_flags 2401
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -259,7 +259,7 @@
 # define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
 # define BOOST_FT_cv const volatile
 # define BOOST_FT_flags 3681
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param
@@ -272,7 +272,7 @@
 # define BOOST_FT_nullary_param
 # define BOOST_FT_cv const volatile
 # define BOOST_FT_flags 3425
-# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
+# include BOOST_FT_variate_file
 # undef BOOST_FT_cv
 # undef BOOST_FT_ell
 # undef BOOST_FT_nullary_param

Modified: branches/proto/v3/boost/function_types/is_member_object_pointer.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/is_member_object_pointer.hpp (original)
+++ branches/proto/v3/boost/function_types/is_member_object_pointer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,10 +24,10 @@
         < function_types::components<T>
         , detail::member_object_pointer_tag >
     {
- BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_object_pointer,(T,Tag))
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_member_object_pointer,(T))
     };
   }
- BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_object_pointer)
+ BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::is_member_object_pointer)
 }
 
 #endif

Modified: branches/proto/v3/boost/function_types/property_tags.hpp
==============================================================================
--- branches/proto/v3/boost/function_types/property_tags.hpp (original)
+++ branches/proto/v3/boost/function_types/property_tags.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -141,7 +141,7 @@
 #include <boost/function_types/detail/pp_tags/preprocessed.hpp>
 
 namespace boost { namespace function_types {
-#define BOOST_FT_cc_file boost/function_types/detail/pp_tags/cc_tag.hpp
+#define BOOST_FT_cc_file <boost/function_types/detail/pp_tags/cc_tag.hpp>
 #include <boost/function_types/detail/pp_loop.hpp>
 } } // namespace boost::function_types
 

Modified: branches/proto/v3/boost/functional/hash/hash.hpp
==============================================================================
--- branches/proto/v3/boost/functional/hash/hash.hpp (original)
+++ branches/proto/v3/boost/functional/hash/hash.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -46,8 +46,8 @@
 #endif
     
 #if defined(BOOST_HAS_LONG_LONG)
- std::size_t hash_value(long long);
- std::size_t hash_value(unsigned long long);
+ std::size_t hash_value(boost::long_long_type);
+ std::size_t hash_value(boost::ulong_long_type);
 #endif
 
 #if !BOOST_WORKAROUND(__DMC__, <= 0x848)
@@ -195,12 +195,12 @@
 #endif
 
 #if defined(BOOST_HAS_LONG_LONG)
- inline std::size_t hash_value(long long v)
+ inline std::size_t hash_value(boost::long_long_type v)
     {
         return hash_detail::hash_value_signed(v);
     }
 
- inline std::size_t hash_value(unsigned long long v)
+ inline std::size_t hash_value(boost::ulong_long_type v)
     {
         return hash_detail::hash_value_unsigned(v);
     }

Modified: branches/proto/v3/boost/gil/color_base.hpp
==============================================================================
--- branches/proto/v3/boost/gil/color_base.hpp (original)
+++ branches/proto/v3/boost/gil/color_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt).
 
- See http://opensource.adobe.com/gil for most recent version including documentation.
+ See http://stlab.adobe.com/gil for most recent version including documentation.
 */
 
 /*************************************************************************************************/
@@ -129,7 +129,7 @@
           _v1(*memunit_advanced(semantic_at_c<1>(ptr),diff)) {}
 
     // Support for planar_pixel_reference operator[]
- Element at_c_dynamic(size_t i) const {
+ Element at_c_dynamic(std::size_t i) const {
         if (i==0) return _v0;
         return _v1;
     }
@@ -182,7 +182,7 @@
           _v2(*memunit_advanced(semantic_at_c<2>(ptr),diff)) {}
 
     // Support for planar_pixel_reference operator[]
- Element at_c_dynamic(size_t i) const {
+ Element at_c_dynamic(std::size_t i) const {
         switch (i) {
             case 0: return _v0;
             case 1: return _v1;
@@ -245,7 +245,7 @@
           _v3(*memunit_advanced(semantic_at_c<3>(ptr),diff)) {}
 
     // Support for planar_pixel_reference operator[]
- Element at_c_dynamic(size_t i) const {
+ Element at_c_dynamic(std::size_t i) const {
         switch (i) {
             case 0: return _v0;
             case 1: return _v1;
@@ -316,7 +316,7 @@
           _v4(*memunit_advanced(semantic_at_c<4>(ptr),diff)) {}
 
     // Support for planar_pixel_reference operator[]
- Element at_c_dynamic(size_t i) const {
+ Element at_c_dynamic(std::size_t i) const {
         switch (i) {
             case 0: return _v0;
             case 1: return _v1;

Modified: branches/proto/v3/boost/gil/extension/io/png_io_private.hpp
==============================================================================
--- branches/proto/v3/boost/gil/extension/io/png_io_private.hpp (original)
+++ branches/proto/v3/boost/gil/extension/io/png_io_private.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
     http://www.boost.org/LICENSE_1_0.txt).
 
- See http://opensource.adobe.com/gil for most recent version including documentation.
+ See http://stlab.adobe.com/gil for most recent version including documentation.
 */
 /*************************************************************************************************/
 
@@ -28,7 +28,7 @@
 
 namespace detail {
 
-static const size_t PNG_BYTES_TO_CHECK = 4;
+static const std::size_t PNG_BYTES_TO_CHECK = 4;
 
 // lbourdev: These can be greatly simplified, for example:
 template <typename Cs> struct png_color_type {BOOST_STATIC_CONSTANT(int,color_type=0);};

Modified: branches/proto/v3/boost/graph/compressed_sparse_row_graph.hpp
==============================================================================
--- branches/proto/v3/boost/graph/compressed_sparse_row_graph.hpp (original)
+++ branches/proto/v3/boost/graph/compressed_sparse_row_graph.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -347,6 +347,7 @@
 add_vertex(BOOST_CSR_GRAPH_TYPE& g) {
   Vertex old_num_verts_plus_one = g.m_rowstart.size();
   g.m_rowstart.push_back(EdgeIndex(0));
+ g.vertex_properties().resize(num_vertices(g));
   return old_num_verts_plus_one - 1;
 }
 
@@ -355,6 +356,7 @@
 add_vertices(typename BOOST_CSR_GRAPH_TYPE::vertices_size_type count, BOOST_CSR_GRAPH_TYPE& g) {
   Vertex old_num_verts_plus_one = g.m_rowstart.size();
   g.m_rowstart.resize(old_num_verts_plus_one + count, EdgeIndex(0));
+ g.vertex_properties().resize(num_vertices(g));
   return old_num_verts_plus_one - 1;
 }
 

Modified: branches/proto/v3/boost/graph/detail/indexed_properties.hpp
==============================================================================
--- branches/proto/v3/boost/graph/detail/indexed_properties.hpp (original)
+++ branches/proto/v3/boost/graph/detail/indexed_properties.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -49,6 +49,7 @@
   // Initialize with n default-constructed property values
   indexed_vertex_properties(std::size_t n) : m_vertex_properties(n) { }
 
+public:
   // Resize the properties vector
   void resize(std::size_t n)
   {
@@ -92,6 +93,8 @@
   // All operations do nothing.
   indexed_vertex_properties() { }
   indexed_vertex_properties(std::size_t) { }
+
+public:
   void resize(std::size_t) { }
   void reserve(std::size_t) { }
 };

Modified: branches/proto/v3/boost/graph/edge_connectivity.hpp
==============================================================================
--- branches/proto/v3/boost/graph/edge_connectivity.hpp (original)
+++ branches/proto/v3/boost/graph/edge_connectivity.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,7 +16,7 @@
 #include <vector>
 #include <set>
 #include <algorithm>
-#include <boost/graph/edmunds_karp_max_flow.hpp>
+#include <boost/graph/edmonds_karp_max_flow.hpp>
 
 namespace boost {
 
@@ -139,7 +139,7 @@
     while (!non_neighbor_S.empty()) { // at most n - 1 times
       k = non_neighbor_S.front();
 
- alpha_S_k = edmunds_karp_max_flow
+ alpha_S_k = edmonds_karp_max_flow
         (flow_g, p, k, cap, res_cap, rev_edge, &color[0], &pred[0]);
 
       if (alpha_S_k < alpha_star) {

Deleted: branches/proto/v3/boost/graph/edmunds_karp_max_flow.hpp
==============================================================================
--- branches/proto/v3/boost/graph/edmunds_karp_max_flow.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,250 +0,0 @@
-//=======================================================================
-// Copyright 2000 University of Notre Dame.
-// Authors: Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//=======================================================================
-
-#ifndef EDMUNDS_KARP_MAX_FLOW_HPP
-#define EDMUNDS_KARP_MAX_FLOW_HPP
-
-#include <boost/config.hpp>
-#include <vector>
-#include <algorithm> // for std::min and std::max
-#include <boost/config.hpp>
-#include <boost/pending/queue.hpp>
-#include <boost/property_map.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/properties.hpp>
-#include <boost/graph/filtered_graph.hpp>
-#include <boost/graph/breadth_first_search.hpp>
-
-namespace boost {
-
- // The "labeling" algorithm from "Network Flows" by Ahuja, Magnanti,
- // Orlin. I think this is the same as or very similar to the original
- // Edmunds-Karp algorithm. This solves the maximum flow problem.
-
- namespace detail {
-
- template <class Graph, class ResCapMap>
- filtered_graph<Graph, is_residual_edge<ResCapMap> >
- residual_graph(Graph& g, ResCapMap residual_capacity) {
- return filtered_graph<Graph, is_residual_edge<ResCapMap> >
- (g, is_residual_edge<ResCapMap>(residual_capacity));
- }
-
- template <class Graph, class PredEdgeMap, class ResCapMap,
- class RevEdgeMap>
- inline void
- augment(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- PredEdgeMap p,
- ResCapMap residual_capacity,
- RevEdgeMap reverse_edge)
- {
- typename graph_traits<Graph>::edge_descriptor e;
- typename graph_traits<Graph>::vertex_descriptor u;
- typedef typename property_traits<ResCapMap>::value_type FlowValue;
-
- // find minimum residual capacity along the augmenting path
- FlowValue delta = (std::numeric_limits<FlowValue>::max)();
- e = p[sink];
- do {
- BOOST_USING_STD_MIN();
- delta = min BOOST_PREVENT_MACRO_SUBSTITUTION(delta, residual_capacity[e]);
- u = source(e, g);
- e = p[u];
- } while (u != src);
-
- // push delta units of flow along the augmenting path
- e = p[sink];
- do {
- residual_capacity[e] -= delta;
- residual_capacity[reverse_edge[e]] += delta;
- u = source(e, g);
- e = p[u];
- } while (u != src);
- }
-
- } // namespace detail
-
- template <class Graph,
- class CapacityEdgeMap, class ResidualCapacityEdgeMap,
- class ReverseEdgeMap, class ColorMap, class PredEdgeMap>
- typename property_traits<CapacityEdgeMap>::value_type
- edmunds_karp_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- CapacityEdgeMap cap,
- ResidualCapacityEdgeMap res,
- ReverseEdgeMap rev,
- ColorMap color,
- PredEdgeMap pred)
- {
- typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
- typedef typename property_traits<ColorMap>::value_type ColorValue;
- typedef color_traits<ColorValue> Color;
-
- typename graph_traits<Graph>::vertex_iterator u_iter, u_end;
- typename graph_traits<Graph>::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
- res[*ei] = cap[*ei];
-
- color[sink] = Color::gray();
- while (color[sink] != Color::white()) {
- boost::queue<vertex_t> Q;
- breadth_first_search
- (detail::residual_graph(g, res), src, Q,
- make_bfs_visitor(record_edge_predecessors(pred, on_tree_edge())),
- color);
- if (color[sink] != Color::white())
- detail::augment(g, src, sink, pred, res, rev);
- } // while
-
- typename property_traits<CapacityEdgeMap>::value_type flow = 0;
- for (tie(ei, e_end) = out_edges(src, g); ei != e_end; ++ei)
- flow += (cap[*ei] - res[*ei]);
- return flow;
- } // edmunds_karp_max_flow()
-
- namespace detail {
- //-------------------------------------------------------------------------
- // Handle default for color property map
-
- // use of class here is a VC++ workaround
- template <class ColorMap>
- struct edmunds_karp_dispatch2 {
- template <class Graph, class PredMap, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- PredMap pred,
- const bgl_named_params<P, T, R>& params,
- ColorMap color)
- {
- return edmunds_karp_max_flow
- (g, src, sink,
- choose_const_pmap(get_param(params, edge_capacity), g, edge_capacity),
- choose_pmap(get_param(params, edge_residual_capacity),
- g, edge_residual_capacity),
- choose_const_pmap(get_param(params, edge_reverse), g, edge_reverse),
- color, pred);
- }
- };
- template<>
- struct edmunds_karp_dispatch2<detail::error_property_not_found> {
- template <class Graph, class PredMap, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- PredMap pred,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- size_type n = is_default_param(get_param(params, vertex_color)) ?
- num_vertices(g) : 1;
- std::vector<default_color_type> color_vec(n);
- return edmunds_karp_max_flow
- (g, src, sink,
- choose_const_pmap(get_param(params, edge_capacity), g, edge_capacity),
- choose_pmap(get_param(params, edge_residual_capacity),
- g, edge_residual_capacity),
- choose_const_pmap(get_param(params, edge_reverse), g, edge_reverse),
- make_iterator_property_map(color_vec.begin(), choose_const_pmap
- (get_param(params, vertex_index),
- g, vertex_index), color_vec[0]),
- pred);
- }
- };
-
- //-------------------------------------------------------------------------
- // Handle default for predecessor property map
-
- // use of class here is a VC++ workaround
- template <class PredMap>
- struct edmunds_karp_dispatch1 {
- template <class Graph, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply(Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params,
- PredMap pred)
- {
- typedef typename property_value< bgl_named_params<P,T,R>, vertex_color_t>::type C;
- return edmunds_karp_dispatch2<C>::apply
- (g, src, sink, pred, params, get_param(params, vertex_color));
- }
- };
- template<>
- struct edmunds_karp_dispatch1<detail::error_property_not_found> {
-
- template <class Graph, class P, class T, class R>
- static typename edge_capacity_value<Graph, P, T, R>::type
- apply
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params,
- detail::error_property_not_found)
- {
- typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- typedef typename graph_traits<Graph>::vertices_size_type size_type;
- size_type n = is_default_param(get_param(params, vertex_predecessor)) ?
- num_vertices(g) : 1;
- std::vector<edge_descriptor> pred_vec(n);
-
- typedef typename property_value< bgl_named_params<P,T,R>, vertex_color_t>::type C;
- return edmunds_karp_dispatch2<C>::apply
- (g, src, sink,
- make_iterator_property_map(pred_vec.begin(), choose_const_pmap
- (get_param(params, vertex_index),
- g, vertex_index), pred_vec[0]),
- params,
- get_param(params, vertex_color));
- }
- };
-
- } // namespace detail
-
- template <class Graph, class P, class T, class R>
- typename detail::edge_capacity_value<Graph, P, T, R>::type
- edmunds_karp_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink,
- const bgl_named_params<P, T, R>& params)
- {
- typedef typename property_value< bgl_named_params<P,T,R>, vertex_predecessor_t>::type Pred;
- return detail::edmunds_karp_dispatch1<Pred>::apply
- (g, src, sink, params, get_param(params, vertex_predecessor));
- }
-
- template <class Graph>
- typename property_traits<
- typename property_map<Graph, edge_capacity_t>::const_type
- >::value_type
- edmunds_karp_max_flow
- (Graph& g,
- typename graph_traits<Graph>::vertex_descriptor src,
- typename graph_traits<Graph>::vertex_descriptor sink)
- {
- bgl_named_params<int, buffer_param_t> params(0);
- return edmunds_karp_max_flow(g, src, sink, params);
- }
-
-} // namespace boost
-
-#endif // EDMUNDS_KARP_MAX_FLOW_HPP

Modified: branches/proto/v3/boost/interprocess/allocators/adaptive_pool.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/adaptive_pool.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/adaptive_pool.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -25,6 +25,7 @@
 #include <boost/interprocess/detail/type_traits.hpp>
 #include <boost/interprocess/allocators/detail/adaptive_node_pool.hpp>
 #include <boost/interprocess/exceptions.hpp>
+#include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <memory>
 #include <algorithm>
 #include <cstddef>
@@ -35,35 +36,38 @@
 namespace boost {
 namespace interprocess {
 
-//!An STL node allocator that uses a segment manager as memory
-//!source. The internal pointer type will of the same type (raw, smart) as
-//!"typename SegmentManager::void_pointer" type. This allows
-//!placing the allocator in shared memory, memory mapped-files, etc...
-//!This node allocator shares a segregated storage between all instances
-//!of adaptive_pool with equal sizeof(T) placed in the same segment
-//!group. NodesPerChunk is the number of nodes allocated at once when the allocator
-//!needs runs out of nodes. MaxFreeChunks is the number of free nodes
-//!in the adaptive node pool that will trigger the deallocation of
-template<class T, class SegmentManager, std::size_t NodesPerChunk, std::size_t MaxFreeChunks>
-class adaptive_pool
+/// @cond
+
+namespace detail{
+
+template < unsigned int Version
+ , class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
+ >
+class adaptive_pool_base
+ : public node_pool_allocation_impl
+ < adaptive_pool_base
+ < Version, T, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent>
+ , Version
+ , T
+ , SegmentManager
+ >
 {
    public:
    typedef typename SegmentManager::void_pointer void_pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const void>::type cvoid_pointer;
    typedef SegmentManager segment_manager;
- typedef typename detail::
- pointer_to_other<void_pointer, char>::type char_pointer;
- typedef typename SegmentManager::
- mutex_family::mutex_type mutex_type;
- typedef adaptive_pool
- <T, SegmentManager, NodesPerChunk, MaxFreeChunks> self_t;
+ typedef adaptive_pool_base
+ <Version, T, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> self_t;
    typedef detail::shared_adaptive_node_pool
- < SegmentManager, mutex_type
- , sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
+ < SegmentManager, sizeof(T), NodesPerChunk, MaxFreeChunks, OverheadPercent> node_pool_t;
    typedef typename detail::
       pointer_to_other<void_pointer, node_pool_t>::type node_pool_ptr;
 
+ BOOST_STATIC_ASSERT((Version <=2));
+
    public:
    //-------
    typedef typename detail::
@@ -78,52 +82,60 @@
    typedef std::size_t size_type;
    typedef std::ptrdiff_t difference_type;
 
- //!Obtains adaptive_pool from
- //!adaptive_pool
+ typedef detail::version_type<adaptive_pool_base, Version> version;
+ typedef transform_iterator
+ < typename SegmentManager::
+ multiallocation_iterator
+ , detail::cast_functor <T> > multiallocation_iterator;
+ typedef typename SegmentManager::
+ multiallocation_chain multiallocation_chain;
+
+ //!Obtains adaptive_pool_base from
+ //!adaptive_pool_base
    template<class T2>
    struct rebind
    {
- typedef adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks> other;
+ typedef adaptive_pool_base<Version, T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
    };
 
    /// @cond
    private:
- //!Not assignable from related adaptive_pool
- template<class T2, class SegmentManager2, std::size_t N2, std::size_t F2>
- adaptive_pool& operator=
- (const adaptive_pool<T2, SegmentManager2, N2, F2>&);
+ //!Not assignable from related adaptive_pool_base
+ template<unsigned int Version2, class T2, class SegmentManager2, std::size_t N2, std::size_t F2, unsigned char O2>
+ adaptive_pool_base& operator=
+ (const adaptive_pool_base<Version2, T2, SegmentManager2, N2, F2, O2>&);
 
- //!Not assignable from other adaptive_pool
- adaptive_pool& operator=(const adaptive_pool&);
+ //!Not assignable from other adaptive_pool_base
+ adaptive_pool_base& operator=(const adaptive_pool_base&);
    /// @endcond
 
    public:
    //!Constructor from a segment manager. If not present, constructs a node
    //!pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
- adaptive_pool(segment_manager *segment_mngr)
- : mp_node_pool(priv_get_or_create(segment_mngr)) { }
+ adaptive_pool_base(segment_manager *segment_mngr)
+ : mp_node_pool(detail::get_or_create_node_pool<node_pool_t>(segment_mngr)) { }
 
- //!Copy constructor from other adaptive_pool. Increments the reference
+ //!Copy constructor from other adaptive_pool_base. Increments the reference
    //!count of the associated node pool. Never throws
- adaptive_pool(const adaptive_pool &other)
+ adaptive_pool_base(const adaptive_pool_base &other)
       : mp_node_pool(other.get_node_pool())
    {
       mp_node_pool->inc_ref_count();
    }
 
- //!Copy constructor from related adaptive_pool. If not present, constructs
+ //!Copy constructor from related adaptive_pool_base. If not present, constructs
    //!a node pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
    template<class T2>
- adaptive_pool
- (const adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks> &other)
- : mp_node_pool(priv_get_or_create(other.get_segment_manager())) { }
+ adaptive_pool_base
+ (const adaptive_pool_base<Version, T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : mp_node_pool(detail::get_or_create_node_pool<node_pool_t>(other.get_segment_manager())) { }
 
    //!Destructor, removes node_pool_t from memory
    //!if its reference count reaches to zero. Never throws
- ~adaptive_pool()
- { priv_destroy_if_last_link(); }
+ ~adaptive_pool_base()
+ { detail::destroy_node_pool_if_last_link(detail::get_pointer(mp_node_pool)); }
 
    //!Returns a pointer to the node pool.
    //!Never throws
@@ -135,156 +147,300 @@
    segment_manager* get_segment_manager()const
    { return mp_node_pool->get_segment_manager(); }
 
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different memory segment, the result is undefined.
+ friend void swap(self_t &alloc1, self_t &alloc2)
+ { detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
+
+ /// @cond
+ private:
+ node_pool_ptr mp_node_pool;
+ /// @endcond
+};
+
+//!Equality test for same type
+//!of adaptive_pool_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator==(const adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc1,
+ const adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc2)
+ { return alloc1.get_node_pool() == alloc2.get_node_pool(); }
+
+//!Inequality test for same type
+//!of adaptive_pool_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc1,
+ const adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc2)
+ { return alloc1.get_node_pool() != alloc2.get_node_pool(); }
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk = 64
+ , std::size_t MaxFreeChunks = 2
+ , unsigned char OverheadPercent = 5
+ >
+class adaptive_pool_v1
+ : public adaptive_pool_base
+ < 1
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+{
+ public:
+ typedef detail::adaptive_pool_base
+ < 1, T, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> base_t;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef adaptive_pool_v1<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ adaptive_pool_v1(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ adaptive_pool_v1
+ (const adaptive_pool_v1<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : base_t(other)
+ {}
+};
+
+} //namespace detail{
+
+/// @endcond
+
+//!An STL node allocator that uses a segment manager as memory
+//!source. The internal pointer type will of the same type (raw, smart) as
+//!"typename SegmentManager::void_pointer" type. This allows
+//!placing the allocator in shared memory, memory mapped-files, etc...
+//!
+//!This node allocator shares a segregated storage between all instances
+//!of adaptive_pool with equal sizeof(T) placed in the same segment
+//!group. NodesPerChunk is the number of nodes allocated at once when the allocator
+//!needs runs out of nodes. MaxFreeChunks is the maximum number of totally free chunks
+//!that the adaptive node pool will hold. The rest of the totally free chunks will be
+//!deallocated with the segment manager.
+//!
+//!OverheadPercent is the (approximated) maximum size overhead (1-20%) of the allocator:
+//!(memory usable for nodes / total memory allocated from the segment manager)
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
+ >
+class adaptive_pool
+ /// @cond
+ : public detail::adaptive_pool_base
+ < 2
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+ /// @endcond
+{
+
+ #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ typedef detail::adaptive_pool_base
+ < 2, T, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> base_t;
+ public:
+ typedef detail::version_type<adaptive_pool, 2> version;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ adaptive_pool(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ adaptive_pool
+ (const adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : base_t(other)
+ {}
+
+ #else //BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ public:
+ typedef implementation_defined::segment_manager segment_manager;
+ typedef segment_manager::void_pointer void_pointer;
+ typedef implementation_defined::pointer pointer;
+ typedef implementation_defined::const_pointer const_pointer;
+ typedef T value_type;
+ typedef typename detail::add_reference
+ <value_type>::type reference;
+ typedef typename detail::add_reference
+ <const value_type>::type const_reference;
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+
+ //!Obtains adaptive_pool from
+ //!adaptive_pool
+ template<class T2>
+ struct rebind
+ {
+ typedef adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ private:
+ //!Not assignable from
+ //!related adaptive_pool
+ template<class T2, class SegmentManager2, std::size_t N2, std::size_t F2, unsigned char OP2>
+ adaptive_pool& operator=
+ (const adaptive_pool<T2, SegmentManager2, N2, F2, OP2>&);
+
+ //!Not assignable from
+ //!other adaptive_pool
+ adaptive_pool& operator=(const adaptive_pool&);
+
+ public:
+ //!Constructor from a segment manager. If not present, constructs a node
+ //!pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ adaptive_pool(segment_manager *segment_mngr);
+
+ //!Copy constructor from other adaptive_pool. Increments the reference
+ //!count of the associated node pool. Never throws
+ adaptive_pool(const adaptive_pool &other);
+
+ //!Copy constructor from related adaptive_pool. If not present, constructs
+ //!a node pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ template<class T2>
+ adaptive_pool
+ (const adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other);
+
+ //!Destructor, removes node_pool_t from memory
+ //!if its reference count reaches to zero. Never throws
+ ~adaptive_pool();
+
+ //!Returns a pointer to the node pool.
+ //!Never throws
+ node_pool_t* get_node_pool() const;
+
+ //!Returns the segment manager.
+ //!Never throws
+ segment_manager* get_segment_manager()const;
+
    //!Returns the number of elements that could be allocated.
    //!Never throws
- size_type max_size() const
- { return this->get_segment_manager()->get_size()/sizeof(value_type); }
+ size_type max_size() const;
 
    //!Allocate memory for an array of count elements.
- //!Throws boost::interprocess::bad_alloc if there is no enough memory*/
- pointer allocate(size_type count, cvoid_pointer = 0)
- {
- if(count > ((size_type)-1)/sizeof(value_type))
- throw bad_alloc();
- return pointer(static_cast<T*>(mp_node_pool->allocate(count)));
- }
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate(size_type count, cvoid_pointer hint = 0);
 
    //!Deallocate allocated memory.
    //!Never throws
- void deallocate(const pointer &ptr, size_type count)
- { mp_node_pool->deallocate(detail::get_pointer(ptr), count); }
+ void deallocate(const pointer &ptr, size_type count);
 
- //!Deallocates all free chunks of the pool
- void deallocate_free_chunks()
- { mp_node_pool->deallocate_free_chunks(); }
+ //!Deallocates all free chunks
+ //!of the pool
+ void deallocate_free_chunks();
 
    //!Swaps allocators. Does not throw. If each allocator is placed in a
    //!different memory segment, the result is undefined.
- friend void swap(self_t &alloc1, self_t &alloc2)
- { detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
-
- //These functions are obsolete. These are here to conserve
- //backwards compatibility with containers using them...
+ friend void swap(self_t &alloc1, self_t &alloc2);
 
    //!Returns address of mutable object.
    //!Never throws
- pointer address(reference value) const
- { return pointer(boost::addressof(value)); }
+ pointer address(reference value) const;
 
    //!Returns address of non mutable object.
    //!Never throws
- const_pointer address(const_reference value) const
- { return const_pointer(boost::addressof(value)); }
+ const_pointer address(const_reference value) const;
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
- void construct(const pointer &ptr)
- { new(detail::get_pointer(ptr)) value_type; }
+ //!Throws if T's default constructor throws
+ void construct(const pointer &ptr);
 
    //!Destroys object. Throws if object's
    //!destructor throws
- void destroy(const pointer &ptr)
- { BOOST_ASSERT(ptr != 0); (*ptr).~value_type(); }
-
- /// @cond
- private:
- //!Object function that creates the node allocator if it is not created and
- //!increments reference count if it is already created
- struct get_or_create_func
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
-
- //!This connects or constructs the unique instance of node_pool_t
- //!Can throw boost::interprocess::bad_alloc
- void operator()()
- {
- //Find or create the node_pool_t
- mp_node_pool = mp_named_alloc->template find_or_construct
- <node_pool_t>(unique_instance)(mp_named_alloc);
- //If valid, increment link count
- if(mp_node_pool != 0)
- mp_node_pool->inc_ref_count();
- }
-
- //!Constructor. Initializes function
- //!object parameters
- get_or_create_func(segment_manager *hdr) : mp_named_alloc(hdr){}
-
- node_pool_t *mp_node_pool;
- segment_manager *mp_named_alloc;
- };
-
- //!Initialization function, creates an executes atomically the
- //!initialization object functions. Can throw boost::interprocess::bad_alloc
- node_pool_t *priv_get_or_create(segment_manager *named_alloc)
- {
- get_or_create_func func(named_alloc);
- named_alloc->atomic_func(func);
- return func.mp_node_pool;
- }
-
- //!Object function that decrements the reference count. If the count
- //!reaches to zero destroys the node allocator from memory.
- //!Never throws
- struct destroy_if_last_link_func
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
-
- //!Decrements reference count and destroys the object if there is no
- //!more attached allocators. Never throws
- void operator()()
- {
- //If not the last link return
- if(mp_node_pool->dec_ref_count() != 0) return;
-
- //Last link, let's destroy the segment_manager
- mp_named_alloc->template destroy<node_pool_t>(unique_instance);
- }
-
- //!Constructor. Initializes function
- //!object parameters
- destroy_if_last_link_func(segment_manager *nhdr,
- node_pool_t *phdr)
- : mp_named_alloc(nhdr), mp_node_pool(phdr){}
-
- segment_manager *mp_named_alloc;
- node_pool_t *mp_node_pool;
- };
+ void destroy(const pointer &ptr);
 
- //!Destruction function, initializes and executes destruction function
- //!object. Never throws
- void priv_destroy_if_last_link()
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
- //Get segment manager
- segment_manager *named_segment_mngr = this->get_segment_manager();
- //Execute destruction functor atomically
- destroy_if_last_link_func func(named_segment_mngr, detail::get_pointer(mp_node_pool));
- named_segment_mngr->atomic_func(func);
- }
-
- private:
- node_pool_ptr mp_node_pool;
- /// @endcond
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const;
+
+ std::pair<pointer, bool>
+ allocation_command(allocation_type command,
+ size_type limit_size,
+ size_type preferred_size,
+ size_type &received_size, const pointer &reuse = 0);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements);
+
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it);
+
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate_one();
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ multiallocation_iterator allocate_individual(std::size_t num_elements);
+
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
+ void deallocate_one(const pointer &p);
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it);
+ #endif
 };
 
+#ifdef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+
 //!Equality test for same type
 //!of adaptive_pool
-template<class T, class S, std::size_t NodesPerChunk, std::size_t F> inline
-bool operator==(const adaptive_pool<T, S, NodesPerChunk, F> &alloc1,
- const adaptive_pool<T, S, NodesPerChunk, F> &alloc2)
- { return alloc1.get_node_pool() == alloc2.get_node_pool(); }
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator==(const adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc1,
+ const adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc2);
 
 //!Inequality test for same type
 //!of adaptive_pool
-template<class T, class S, std::size_t NodesPerChunk, std::size_t F> inline
-bool operator!=(const adaptive_pool<T, S, NodesPerChunk, F> &alloc1,
- const adaptive_pool<T, S, NodesPerChunk, F> &alloc2)
- { return alloc1.get_node_pool() != alloc2.get_node_pool(); }
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc1,
+ const adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc2);
 
+#endif
 
 } //namespace interprocess {
 } //namespace boost {

Modified: branches/proto/v3/boost/interprocess/allocators/allocation_type.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/allocation_type.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/allocation_type.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/allocators/allocator.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/allocator.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/allocator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -51,13 +51,6 @@
    /// @cond
    private:
 
- struct cast_functor
- {
- typedef typename detail::add_reference<T>::type result_type;
- result_type operator()(char &ptr) const
- { return *static_cast<T*>(static_cast<void*>(&ptr)); }
- };
-
    //Self type
    typedef allocator<T, SegmentManager> self_t;
 
@@ -108,7 +101,13 @@
    typedef transform_iterator
       < typename SegmentManager::
          multiallocation_iterator
- , cast_functor> multiallocation_iterator;
+ , detail::cast_functor <T> > multiallocation_iterator;
+ typedef detail::multiallocation_chain_adaptor
+ <typename SegmentManager::
+ multiallocation_chain
+ , T> multiallocation_chain;
+// typedef typename SegmentManager::
+// multiallocation_chain multiallocation_chain;
 
    /// @endcond
 
@@ -146,7 +145,7 @@
    pointer allocate(size_type count, cvoid_ptr hint = 0)
    {
       (void)hint;
- if(count > ((size_type)-1)/sizeof(T))
+ if(count > this->max_size())
          throw bad_alloc();
       return pointer((value_type*)mp_mngr->allocate(count*sizeof(T)));
    }
@@ -166,7 +165,13 @@
    friend void swap(self_t &alloc1, self_t &alloc2)
    { detail::do_swap(alloc1.mp_mngr, alloc2.mp_mngr); }
 
- //Experimental version 2 allocator functions
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const
+ {
+ return (size_type)mp_mngr->size(detail::get_pointer(p))/sizeof(T);
+ }
 
    std::pair<pointer, bool>
       allocation_command(allocation_type command,
@@ -178,23 +183,42 @@
          (command, limit_size, preferred_size, received_size, detail::get_pointer(reuse));
    }
 
- //!Returns maximum the number of objects the previously allocated memory
- //!pointed by p can hold.
- size_type size(const pointer &p) const
- {
- return (size_type)mp_mngr->size(detail::get_pointer(p))/sizeof(T);
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements)
+ {
+ return multiallocation_iterator
+ (mp_mngr->allocate_many(sizeof(T)*elem_size, num_elements));
    }
 
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements)
+ {
+ return multiallocation_iterator
+ (mp_mngr->allocate_many(elem_sizes, n_elements, sizeof(T)));
+ }
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it)
+ { return mp_mngr->deallocate_many(it.base()); }
+
    //!Allocates just one object. Memory allocated with this function
    //!must be deallocated only with deallocate_one().
    //!Throws boost::interprocess::bad_alloc if there is no enough memory
    pointer allocate_one()
    { return this->allocate(1); }
 
- /// @cond
-
- //Experimental. Don't use.
-
    //!Allocates many elements of size == 1 in a contiguous chunk
    //!of memory. The minimum number to be allocated is min_elements,
    //!the preferred and maximum number is
@@ -204,41 +228,20 @@
    multiallocation_iterator allocate_individual(std::size_t num_elements)
    { return this->allocate_many(1, num_elements); }
 
- /// @endcond
-
    //!Deallocates memory previously allocated with allocate_one().
    //!You should never use deallocate_one to deallocate memory allocated
    //!with other functions different from allocate_one(). Never throws
    void deallocate_one(const pointer &p)
    { return this->deallocate(p, 1); }
 
- /// @cond
-
- //!Allocates many elements of size elem_size in a contiguous chunk
+ //!Allocates many elements of size == 1 in a contiguous chunk
    //!of memory. The minimum number to be allocated is min_elements,
    //!the preferred and maximum number is
    //!preferred_elements. The number of actually allocated elements is
- //!will be assigned to received_size. The elements must be deallocated
- //!with deallocate(...)
- multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements)
- {
- return multiallocation_iterator
- (mp_mngr->allocate_many(sizeof(T)*elem_size, num_elements));
- }
-
- //!Allocates n_elements elements, each one of size elem_sizes[i]in a
- //!contiguous chunk
- //!of memory. The elements must be deallocated
- multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements)
- {
- return multiallocation_iterator
- (mp_mngr->allocate_many(elem_sizes, n_elements, sizeof(T)));
- }
-
- /// @endcond
-
- //These functions are obsolete. These are here to conserve
- //backwards compatibility with containers using them...
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it)
+ { return this->deallocate_many(it); }
 
    //!Returns address of mutable object.
    //!Never throws
@@ -251,7 +254,7 @@
    { return const_pointer(boost::addressof(value)); }
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
+ //!Throws if T's default constructor throws
    void construct(const pointer &ptr)
    { new(detail::get_pointer(ptr)) value_type; }
 

Modified: branches/proto/v3/boost/interprocess/allocators/cached_adaptive_pool.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/cached_adaptive_pool.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/cached_adaptive_pool.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -19,56 +19,155 @@
 #include <boost/interprocess/detail/workaround.hpp>
 
 #include <boost/interprocess/interprocess_fwd.hpp>
-#include <boost/interprocess/detail/utilities.hpp>
-#include <boost/assert.hpp>
-#include <boost/utility/addressof.hpp>
 #include <boost/interprocess/allocators/detail/adaptive_node_pool.hpp>
+#include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
-#include <boost/interprocess/exceptions.hpp>
+#include <boost/interprocess/detail/version_type.hpp>
 #include <boost/interprocess/allocators/detail/node_tools.hpp>
-#include <memory>
-#include <algorithm>
 #include <cstddef>
 
 //!\file
-//!Describes cached_cached_node_allocator pooled shared memory STL compatible allocator
+//!Describes cached_adaptive_pool pooled shared memory STL compatible allocator
 
 namespace boost {
 namespace interprocess {
 
+/// @cond
+
+namespace detail {
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk = 64
+ , std::size_t MaxFreeChunks = 2
+ , unsigned char OverheadPercent = 5
+ >
+class cached_adaptive_pool_v1
+ : public detail::cached_allocator_impl
+ < T
+ , detail::shared_adaptive_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+ , 1>
+{
+ public:
+ typedef detail::cached_allocator_impl
+ < T
+ , detail::shared_adaptive_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+ , 1> base_t;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef cached_adaptive_pool_v1
+ <T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ cached_adaptive_pool_v1(SegmentManager *segment_mngr,
+ std::size_t max_cached_nodes = base_t::DEFAULT_MAX_CACHED_NODES)
+ : base_t(segment_mngr, max_cached_nodes)
+ {}
+
+ template<class T2>
+ cached_adaptive_pool_v1
+ (const cached_adaptive_pool_v1
+ <T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : base_t(other)
+ {}
+};
+
+} //namespace detail{
+
+/// @endcond
+
 //!An STL node allocator that uses a segment manager as memory
 //!source. The internal pointer type will of the same type (raw, smart) as
 //!"typename SegmentManager::void_pointer" type. This allows
 //!placing the allocator in shared memory, memory mapped-files, etc...
+//!
 //!This node allocator shares a segregated storage between all instances of
-//!cached_adaptive_pool with equal sizeof(T) placed in the same fixed size
+//!cached_adaptive_pool with equal sizeof(T) placed in the same
 //!memory segment. But also caches some nodes privately to
 //!avoid some synchronization overhead.
-template<class T, class SegmentManager, std::size_t NodesPerChunk, std::size_t MaxFreeChunks>
+//!
+//!NodesPerChunk is the minimum number of nodes of nodes allocated at once when
+//!the allocator needs runs out of nodes. MaxFreeChunks is the maximum number of totally free chunks
+//!that the adaptive node pool will hold. The rest of the totally free chunks will be
+//!deallocated with the segment manager.
+//!
+//!OverheadPercent is the (approximated) maximum size overhead (1-20%) of the allocator:
+//!(memory usable for nodes / total memory allocated from the segment manager)
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
+ >
 class cached_adaptive_pool
-{
    /// @cond
- typedef typename SegmentManager::void_pointer void_pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const void>::type cvoid_pointer;
- typedef SegmentManager segment_manager;
- typedef typename detail::
- pointer_to_other<void_pointer, char>::type char_pointer;
- typedef typename SegmentManager::mutex_family::mutex_type mutex_type;
- typedef cached_adaptive_pool
- <T, SegmentManager, NodesPerChunk, MaxFreeChunks> self_t;
- enum { DEFAULT_MAX_CACHED_NODES = 64 };
-
- typedef typename detail::node_slist<void_pointer>::node_t node_t;
- typedef typename detail::node_slist<void_pointer>::node_slist_t cached_list_t;
+ : public detail::cached_allocator_impl
+ < T
+ , detail::shared_adaptive_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+ , 2>
    /// @endcond
+{
+
+ #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ public:
+ typedef detail::cached_allocator_impl
+ < T
+ , detail::shared_adaptive_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+ , 2> base_t;
 
    public:
- //-------
- typedef typename detail::
- pointer_to_other<void_pointer, T>::type pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const T>::type const_pointer;
+ typedef detail::version_type<cached_adaptive_pool, 2> version;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef cached_adaptive_pool
+ <T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ cached_adaptive_pool(SegmentManager *segment_mngr,
+ std::size_t max_cached_nodes = base_t::DEFAULT_MAX_CACHED_NODES)
+ : base_t(segment_mngr, max_cached_nodes)
+ {}
+
+ template<class T2>
+ cached_adaptive_pool
+ (const cached_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : base_t(other)
+ {}
+
+ #else
+ public:
+ typedef implementation_defined::segment_manager segment_manager;
+ typedef segment_manager::void_pointer void_pointer;
+ typedef implementation_defined::pointer pointer;
+ typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
    typedef typename detail::add_reference
                      <value_type>::type reference;
@@ -76,312 +175,178 @@
                      <const value_type>::type const_reference;
    typedef std::size_t size_type;
    typedef std::ptrdiff_t difference_type;
- typedef detail::shared_adaptive_node_pool
- < SegmentManager, mutex_type
- , sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
- typedef typename detail::
- pointer_to_other<void_pointer, node_pool_t>::type node_pool_ptr;
 
- //!Obtains cached_adaptive_pool from other
+ //!Obtains cached_adaptive_pool from
    //!cached_adaptive_pool
    template<class T2>
    struct rebind
    {
- typedef cached_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks> other;
+ typedef cached_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
    };
 
- /// @cond
    private:
-
- //!Not assignable from related cached_adaptive_pool
- template<class T2, class SegmentManager2, std::size_t N2, std::size_t MaxFreeChunks2>
+ //!Not assignable from
+ //!related cached_adaptive_pool
+ template<class T2, class SegmentManager2, std::size_t N2, std::size_t F2, unsigned char OP2>
    cached_adaptive_pool& operator=
- (const cached_adaptive_pool<T2, SegmentManager2, N2, MaxFreeChunks2>&);
+ (const cached_adaptive_pool<T2, SegmentManager2, N2, F2, OP2>&);
 
- //!Not assignable from other cached_adaptive_pool
+ //!Not assignable from
+ //!other cached_adaptive_pool
    cached_adaptive_pool& operator=(const cached_adaptive_pool&);
- /// @endcond
-
+
    public:
- //!Constructor from a segment manager. If not present, constructs
- //!a node pool. Increments the reference count of the node pool.
+ //!Constructor from a segment manager. If not present, constructs a node
+ //!pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
- cached_adaptive_pool(segment_manager *segment_mngr,
- std::size_t max_cached_nodes = DEFAULT_MAX_CACHED_NODES)
- : mp_node_pool(priv_get_or_create(segment_mngr)),
- m_max_cached_nodes(max_cached_nodes)
- {}
+ cached_adaptive_pool(segment_manager *segment_mngr);
 
- //!Copy constructor from other cached_adaptive_pool. Increments the
- //!reference count of the associated node pool. Never throws
- cached_adaptive_pool(const cached_adaptive_pool &other)
- : mp_node_pool(other.get_node_pool()),
- m_max_cached_nodes(other.get_max_cached_nodes())
- { mp_node_pool->inc_ref_count(); }
+ //!Copy constructor from other cached_adaptive_pool. Increments the reference
+ //!count of the associated node pool. Never throws
+ cached_adaptive_pool(const cached_adaptive_pool &other);
 
    //!Copy constructor from related cached_adaptive_pool. If not present, constructs
    //!a node pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
    template<class T2>
    cached_adaptive_pool
- (const cached_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks> &other)
- : mp_node_pool(priv_get_or_create(other.get_segment_manager())),
- m_max_cached_nodes(other.get_max_cached_nodes())
- { }
+ (const cached_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other);
 
    //!Destructor, removes node_pool_t from memory
    //!if its reference count reaches to zero. Never throws
- ~cached_adaptive_pool()
- {
- priv_deallocate_all_cached_nodes();
- priv_destroy_if_last_link();
- }
+ ~cached_adaptive_pool();
 
    //!Returns a pointer to the node pool.
    //!Never throws
- node_pool_t* get_node_pool() const
- { return detail::get_pointer(mp_node_pool); }
+ node_pool_t* get_node_pool() const;
 
    //!Returns the segment manager.
    //!Never throws
- segment_manager* get_segment_manager()const
- { return mp_node_pool->get_segment_manager(); }
-
- //!Sets the new max cached nodes value. This can provoke deallocations
- //!if "newmax" is less than current cached nodes. Never throws
- void set_max_cached_nodes(std::size_t newmax)
- {
- m_max_cached_nodes = newmax;
- priv_deallocate_remaining_nodes();
- }
+ segment_manager* get_segment_manager()const;
 
- //!Returns the max cached nodes parameter.
+ //!Returns the number of elements that could be allocated.
    //!Never throws
- std::size_t get_max_cached_nodes() const
- { return m_max_cached_nodes; }
-
- //!Returns the number of elements that could be
- //!allocated. Never throws
- size_type max_size() const
- { return this->get_segment_manager()->get_size()/sizeof(value_type); }
+ size_type max_size() const;
 
    //!Allocate memory for an array of count elements.
    //!Throws boost::interprocess::bad_alloc if there is no enough memory
- pointer allocate(size_type count, cvoid_pointer hint = 0)
- {
- (void)hint;
- if(count > ((size_type)-1)/sizeof(value_type))
- throw bad_alloc();
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
-
- void * ret;
-
- if(count == 1){
- //If don't have any cached node, we have to get a new list of free nodes from the pool
- if(m_cached_nodes.empty()){
- mp_node_pool->allocate_nodes(m_max_cached_nodes/2, m_cached_nodes);
- }
- ret = &m_cached_nodes.front();
- m_cached_nodes.pop_front();
- }
- else{
- ret = mp_node_pool->allocate(count);
- }
- return pointer(static_cast<T*>(ret));
- }
-
- //!Deallocate allocated memory. Never throws
- void deallocate(const pointer &ptr, size_type count)
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
-
- if(count == 1){
- //Check if cache is full
- if(m_cached_nodes.size() >= m_max_cached_nodes){
- //This only occurs if this allocator deallocate memory allocated
- //with other equal allocator. Since the cache is full, and more
- //deallocations are probably coming, we'll make some room in cache
- //in a single, efficient multi node deallocation.
- priv_deallocate_n_nodes(m_cached_nodes.size() - m_max_cached_nodes/2);
- }
- m_cached_nodes.push_front(*(node_t*)detail::char_ptr_cast(detail::get_pointer(ptr)));
- }
- else{
- mp_node_pool->deallocate(detail::get_pointer(ptr), count);
- }
- }
-
- //!Deallocates all free chunks of the pool
- void deallocate_free_chunks()
- { mp_node_pool->deallocate_free_chunks(); }
+ pointer allocate(size_type count, cvoid_pointer hint = 0);
 
- //!Swaps allocators. Does not throw. If each allocator is placed in a
- //!different shared memory segments, the result is undefined.
- friend void swap(self_t &alloc1, self_t &alloc2)
- {
- detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool);
- alloc1.m_cached_nodes.swap(alloc2.m_cached_nodes);
- detail::do_swap(alloc1.m_max_cached_nodes, alloc2.m_max_cached_nodes);
- }
+ //!Deallocate allocated memory.
+ //!Never throws
+ void deallocate(const pointer &ptr, size_type count);
 
- void deallocate_cache()
- { this->priv_deallocate_all_cached_nodes(); }
+ //!Deallocates all free chunks
+ //!of the pool
+ void deallocate_free_chunks();
 
- //These functions are obsolete. These are here to conserve
- //backwards compatibility with containers using them...
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different memory segment, the result is undefined.
+ friend void swap(self_t &alloc1, self_t &alloc2);
 
    //!Returns address of mutable object.
    //!Never throws
- pointer address(reference value) const
- { return pointer(boost::addressof(value)); }
+ pointer address(reference value) const;
 
    //!Returns address of non mutable object.
    //!Never throws
- const_pointer address(const_reference value) const
- { return const_pointer(boost::addressof(value)); }
+ const_pointer address(const_reference value) const;
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
- void construct(const pointer &ptr)
- { new(detail::get_pointer(ptr)) value_type; }
+ //!Throws if T's default constructor throws
+ void construct(const pointer &ptr);
 
    //!Destroys object. Throws if object's
    //!destructor throws
- void destroy(const pointer &ptr)
- { BOOST_ASSERT(ptr != 0); (*ptr).~value_type(); }
-
- /// @cond
- private:
+ void destroy(const pointer &ptr);
 
- //!Object function that creates the node allocator if it is not created and
- //!increments reference count if it is already created
- struct get_or_create_func
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
-
- //!This connects or constructs the unique instance of node_pool_t
- //!Can throw boost::interprocess::bad_alloc
- void operator()()
- {
- //Find or create the node_pool_t
- mp_node_pool = mp_named_alloc->template find_or_construct
- <node_pool_t>(unique_instance)(mp_named_alloc);
- //If valid, increment link count
- if(mp_node_pool != 0)
- mp_node_pool->inc_ref_count();
- }
-
- //!Constructor. Initializes function
- //!object parameters
- get_or_create_func(segment_manager *hdr) : mp_named_alloc(hdr){}
-
- node_pool_t *mp_node_pool;
- segment_manager *mp_named_alloc;
- };
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const;
+
+ std::pair<pointer, bool>
+ allocation_command(allocation_type command,
+ size_type limit_size,
+ size_type preferred_size,
+ size_type &received_size, const pointer &reuse = 0);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements);
+
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it);
 
- //!Frees all cached nodes.
- //!Never throws
- void priv_deallocate_all_cached_nodes()
- {
- if(m_cached_nodes.empty()) return;
- mp_node_pool->deallocate_nodes(m_cached_nodes);
- }
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate_one();
 
- //!Frees all cached nodes at once.
- //!Never throws
- void priv_deallocate_remaining_nodes()
- {
- if(m_cached_nodes.size() > m_max_cached_nodes){
- priv_deallocate_n_nodes(m_cached_nodes.size()-m_max_cached_nodes);
- }
- }
-
- //!Frees n cached nodes at once. Never throws
- void priv_deallocate_n_nodes(std::size_t n)
- {
- //Deallocate all new linked list at once
- mp_node_pool->deallocate_nodes(m_cached_nodes, n);
- }
-
- //!Initialization function, creates an executes atomically the
- //!initialization object functions. Can throw boost::interprocess::bad_alloc
- node_pool_t *priv_get_or_create(segment_manager *named_alloc)
- {
- get_or_create_func func(named_alloc);
- named_alloc->atomic_func(func);
- return func.mp_node_pool;
- }
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ multiallocation_iterator allocate_individual(std::size_t num_elements);
+
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
+ void deallocate_one(const pointer &p);
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it);
+ //!Sets the new max cached nodes value. This can provoke deallocations
+ //!if "newmax" is less than current cached nodes. Never throws
+ void set_max_cached_nodes(std::size_t newmax);
 
- //!Object function that decrements the reference count. If the count
- //!reaches to zero destroys the node allocator from memory.
+ //!Returns the max cached nodes parameter.
    //!Never throws
- struct destroy_if_last_link_func
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
-
- //!Decrements reference count and destroys the object if there is no
- //!more attached allocators. Never throws
- void operator()()
- {
- //If not the last link return
- if(mp_node_pool->dec_ref_count() != 0) return;
-
- //Last link, let's destroy the segment_manager
- mp_named_alloc->template destroy<node_pool_t>(unique_instance);
- }
-
- //!Constructor. Initializes function
- //!object parameters
- destroy_if_last_link_func(segment_manager *nhdr,
- node_pool_t *phdr)
- : mp_named_alloc(nhdr), mp_node_pool(phdr){}
-
- segment_manager *mp_named_alloc;
- node_pool_t *mp_node_pool;
- };
+ std::size_t get_max_cached_nodes() const;
+ #endif
+};
 
- //!Destruction function, initializes and executes destruction function
- //!object. Never throws
- void priv_destroy_if_last_link()
- {
- typedef detail::shared_adaptive_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk, MaxFreeChunks> node_pool_t;
- //Get segment manager
- segment_manager *segment_mngr = this->get_segment_manager();
- //Execute destruction functor atomically
- destroy_if_last_link_func func(segment_mngr, detail::get_pointer(mp_node_pool));
- segment_mngr->atomic_func(func);
- }
+#ifdef BOOST_INTERPROCESS_DOXYGEN_INVOKED
 
- private:
- node_pool_ptr mp_node_pool;
- cached_list_t m_cached_nodes;
- std::size_t m_max_cached_nodes;
- /// @endcond
-};
+//!Equality test for same type
+//!of cached_adaptive_pool
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, std::size_t OP> inline
+bool operator==(const cached_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc1,
+ const cached_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc2);
+
+//!Inequality test for same type
+//!of cached_adaptive_pool
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, std::size_t OP> inline
+bool operator!=(const cached_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc1,
+ const cached_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc2);
 
-//!Equality test for same type of
-//!cached_adaptive_pool
-template<class T, class S, std::size_t NodesPerChunk, std::size_t M> inline
-bool operator==(const cached_adaptive_pool<T, S, NodesPerChunk, M> &alloc1,
- const cached_adaptive_pool<T, S, NodesPerChunk, M> &alloc2)
- { return alloc1.get_node_pool() == alloc2.get_node_pool(); }
-
-//!Inequality test for same type of
-//!cached_adaptive_pool
-template<class T, class S, std::size_t NodesPerChunk, std::size_t M> inline
-bool operator!=(const cached_adaptive_pool<T, S, NodesPerChunk, M> &alloc1,
- const cached_adaptive_pool<T, S, NodesPerChunk, M> &alloc2)
- { return alloc1.get_node_pool() != alloc2.get_node_pool(); }
+#endif
 
 } //namespace interprocess {
-
 } //namespace boost {
 
+
 #include <boost/interprocess/detail/config_end.hpp>
 
 #endif //#ifndef BOOST_INTERPROCESS_CACHED_ADAPTIVE_POOL_HPP

Modified: branches/proto/v3/boost/interprocess/allocators/cached_node_allocator.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/cached_node_allocator.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/cached_node_allocator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -19,14 +19,11 @@
 #include <boost/interprocess/detail/workaround.hpp>
 
 #include <boost/interprocess/interprocess_fwd.hpp>
-#include <boost/interprocess/detail/utilities.hpp>
-#include <boost/assert.hpp>
-#include <boost/utility/addressof.hpp>
 #include <boost/interprocess/allocators/detail/node_pool.hpp>
+#include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
-#include <boost/interprocess/exceptions.hpp>
-#include <memory>
-#include <algorithm>
+#include <boost/interprocess/detail/version_type.hpp>
+#include <boost/interprocess/allocators/detail/node_tools.hpp>
 #include <cstddef>
 
 //!\file
@@ -35,37 +32,113 @@
 namespace boost {
 namespace interprocess {
 
-//!An STL node allocator that uses a segment manager as memory
-//!source. The internal pointer type will of the same type (raw, smart) as
-//!"typename SegmentManager::void_pointer" type. This allows
-//!placing the allocator in shared memory, memory mapped-files, etc...
-//!This node allocator shares a segregated storage between all instances of
-//!cached_node_allocator with equal sizeof(T) placed in the same fixed size
-//!memory segment. But also caches some nodes privately to
-//!avoid some synchronization overhead.
-template<class T, class SegmentManager, std::size_t NodesPerChunk>
-class cached_node_allocator
+
+/// @cond
+
+namespace detail {
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk = 64
+ >
+class cached_node_allocator_v1
+ : public detail::cached_allocator_impl
+ < T
+ , detail::shared_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ >
+ , 1>
 {
+ public:
+ typedef detail::cached_allocator_impl
+ < T
+ , detail::shared_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ >
+ , 1> base_t;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef cached_node_allocator_v1
+ <T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ cached_node_allocator_v1(SegmentManager *segment_mngr,
+ std::size_t max_cached_nodes = base_t::DEFAULT_MAX_CACHED_NODES)
+ : base_t(segment_mngr, max_cached_nodes)
+ {}
+
+ template<class T2>
+ cached_node_allocator_v1
+ (const cached_node_allocator_v1
+ <T2, SegmentManager, NodesPerChunk> &other)
+ : base_t(other)
+ {}
+};
+
+} //namespace detail{
+
+/// @endcond
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ >
+class cached_node_allocator
    /// @cond
- typedef typename SegmentManager::void_pointer void_pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const void>::type cvoid_pointer;
- typedef SegmentManager segment_manager;
- typedef typename detail::
- pointer_to_other<void_pointer, char>::type char_pointer;
- typedef typename SegmentManager::mutex_family::mutex_type mutex_type;
- typedef cached_node_allocator<T, SegmentManager, NodesPerChunk> self_t;
- enum { DEFAULT_MAX_CACHED_NODES = 64 };
- typedef typename detail::node_slist<void_pointer>::node_t node_t;
- typedef typename detail::node_slist<void_pointer>::node_slist_t cached_list_t;
+ : public detail::cached_allocator_impl
+ < T
+ , detail::shared_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ >
+ , 2>
    /// @endcond
+{
+
+ #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ public:
+ typedef detail::cached_allocator_impl
+ < T
+ , detail::shared_node_pool
+ < SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ >
+ , 2> base_t;
 
    public:
- //-------
- typedef typename detail::
- pointer_to_other<void_pointer, T>::type pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const T>::type const_pointer;
+ typedef detail::version_type<cached_node_allocator, 2> version;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef cached_node_allocator<T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ cached_node_allocator(SegmentManager *segment_mngr,
+ std::size_t max_cached_nodes = base_t::DEFAULT_MAX_CACHED_NODES)
+ : base_t(segment_mngr, max_cached_nodes)
+ {}
+
+ template<class T2>
+ cached_node_allocator
+ (const cached_node_allocator<T2, SegmentManager, NodesPerChunk> &other)
+ : base_t(other)
+ {}
+
+ #else
+ public:
+ typedef implementation_defined::segment_manager segment_manager;
+ typedef segment_manager::void_pointer void_pointer;
+ typedef implementation_defined::pointer pointer;
+ typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
    typedef typename detail::add_reference
                      <value_type>::type reference;
@@ -73,302 +146,173 @@
                      <const value_type>::type const_reference;
    typedef std::size_t size_type;
    typedef std::ptrdiff_t difference_type;
- typedef detail::shared_node_pool
- < SegmentManager, mutex_type
- , sizeof(T), NodesPerChunk> node_pool_t;
- typedef typename detail::
- pointer_to_other<void_pointer, node_pool_t>::type node_pool_ptr;
 
- //!Obtains cached_node_allocator from other cached_node_allocator
+ //!Obtains cached_node_allocator from
+ //!cached_node_allocator
    template<class T2>
    struct rebind
    {
- typedef cached_node_allocator<T2, SegmentManager, NodesPerChunk> other;
+ typedef cached_node_allocator<T2, SegmentManager> other;
    };
 
- /// @cond
    private:
-
- //!Not assignable from related cached_node_allocator
+ //!Not assignable from
+ //!related cached_node_allocator
    template<class T2, class SegmentManager2, std::size_t N2>
    cached_node_allocator& operator=
       (const cached_node_allocator<T2, SegmentManager2, N2>&);
 
- //!Not assignable from other cached_node_allocator
+ //!Not assignable from
+ //!other cached_node_allocator
    cached_node_allocator& operator=(const cached_node_allocator&);
- /// @endcond
 
    public:
- //!Constructor from a segment manager. If not present, constructs
- //!a node pool. Increments the reference count of the node pool.
+ //!Constructor from a segment manager. If not present, constructs a node
+ //!pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
- cached_node_allocator(segment_manager *segment_mngr,
- std::size_t max_cached_nodes = DEFAULT_MAX_CACHED_NODES)
- : mp_node_pool(priv_get_or_create(segment_mngr)),
- m_max_cached_nodes(max_cached_nodes)
- {}
+ cached_node_allocator(segment_manager *segment_mngr);
 
- //!Copy constructor from other cached_node_allocator. Increments the
- //!reference count of the associated node pool. Never throws
- cached_node_allocator(const cached_node_allocator &other)
- : mp_node_pool(other.get_node_pool()),
- m_max_cached_nodes(other.get_max_cached_nodes())
- { mp_node_pool->inc_ref_count(); }
+ //!Copy constructor from other cached_node_allocator. Increments the reference
+ //!count of the associated node pool. Never throws
+ cached_node_allocator(const cached_node_allocator &other);
 
    //!Copy constructor from related cached_node_allocator. If not present, constructs
    //!a node pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
    template<class T2>
    cached_node_allocator
- (const cached_node_allocator<T2, SegmentManager, NodesPerChunk> &other)
- : mp_node_pool(priv_get_or_create(other.get_segment_manager())),
- m_max_cached_nodes(other.get_max_cached_nodes())
- { }
+ (const cached_node_allocator<T2, SegmentManager, NodesPerChunk> &other);
 
    //!Destructor, removes node_pool_t from memory
    //!if its reference count reaches to zero. Never throws
- ~cached_node_allocator()
- {
- priv_deallocate_all_cached_nodes();
- priv_destroy_if_last_link();
- }
+ ~cached_node_allocator();
 
    //!Returns a pointer to the node pool.
    //!Never throws
- node_pool_t* get_node_pool() const
- { return detail::get_pointer(mp_node_pool); }
+ node_pool_t* get_node_pool() const;
 
    //!Returns the segment manager.
    //!Never throws
- segment_manager* get_segment_manager()const
- { return mp_node_pool->get_segment_manager(); }
-
- //!Sets the new max cached nodes value. This can provoke deallocations
- //!if "newmax" is less than current cached nodes. Never throws
- void set_max_cached_nodes(std::size_t newmax)
- {
- m_max_cached_nodes = newmax;
- priv_deallocate_remaining_nodes();
- }
+ segment_manager* get_segment_manager()const;
 
- //!Returns the max cached nodes parameter.
+ //!Returns the number of elements that could be allocated.
    //!Never throws
- std::size_t get_max_cached_nodes() const
- { return m_max_cached_nodes; }
-
- //!Returns the number of elements that could be allocated. Never throws
- size_type max_size() const
- { return this->get_segment_manager()->get_size()/sizeof(value_type); }
+ size_type max_size() const;
 
    //!Allocate memory for an array of count elements.
    //!Throws boost::interprocess::bad_alloc if there is no enough memory
- pointer allocate(size_type count, cvoid_pointer hint = 0)
- {
- (void)hint;
- if(count > ((size_type)-1)/sizeof(value_type))
- throw bad_alloc();
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk> node_pool_t;
-
- void * ret;
-
- if(count == 1){
- //If don't have any cached node, we have to get a new list of free nodes from the pool
- if(m_cached_nodes.empty()){
- mp_node_pool->allocate_nodes(m_max_cached_nodes/2, m_cached_nodes);
- }
- ret = &m_cached_nodes.front();
- m_cached_nodes.pop_front();
- }
- else{
- ret = mp_node_pool->allocate(count);
- }
- return pointer(static_cast<T*>(ret));
- }
+ pointer allocate(size_type count, cvoid_pointer hint = 0);
 
    //!Deallocate allocated memory.
    //!Never throws
- void deallocate(const pointer &ptr, size_type count)
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk> node_pool_t;
-
- if(count == 1){
- //Check if cache is full
- if(m_cached_nodes.size() >= m_max_cached_nodes){
- //This only occurs if this allocator deallocate memory allocated
- //with other equal allocator. Since the cache is full, and more
- //deallocations are probably coming, we'll make some room in cache
- //in a single, efficient multi node deallocation.
- priv_deallocate_n_nodes(m_cached_nodes.size() - m_max_cached_nodes/2);
- }
- m_cached_nodes.push_front(*(node_t*)detail::char_ptr_cast(detail::get_pointer(ptr)));
- }
- else{
- mp_node_pool->deallocate(detail::get_pointer(ptr), count);
- }
- }
+ void deallocate(const pointer &ptr, size_type count);
 
- //!Swaps allocators. Does not throw. If each allocator is placed in a
- //!different shared memory segments, the result is undefined.
- friend void swap(self_t &alloc1, self_t &alloc2)
- {
- detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool);
- alloc1.m_cached_nodes.swap(alloc2.m_cached_nodes);
- detail::do_swap(alloc1.m_max_cached_nodes, alloc2.m_max_cached_nodes);
- }
-
- //!Returns the cached nodes to the shared pool
- void deallocate_cache()
- { this->priv_deallocate_all_cached_nodes(); }
-
- //!Deallocates all free chunks of the pool
- void deallocate_free_chunks()
- { mp_node_pool->deallocate_free_chunks(); }
+ //!Deallocates all free chunks
+ //!of the pool
+ void deallocate_free_chunks();
 
- //These functions are obsolete. These are here to conserve
- //backwards compatibility with containers using them...
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different memory segment, the result is undefined.
+ friend void swap(self_t &alloc1, self_t &alloc2);
 
    //!Returns address of mutable object.
    //!Never throws
- pointer address(reference value) const
- { return pointer(boost::addressof(value)); }
+ pointer address(reference value) const;
 
    //!Returns address of non mutable object.
    //!Never throws
- const_pointer address(const_reference value) const
- { return const_pointer(boost::addressof(value)); }
+ const_pointer address(const_reference value) const;
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
- void construct(const pointer &ptr)
- { new(detail::get_pointer(ptr)) value_type; }
+ //!Throws if T's default constructor throws
+ void construct(const pointer &ptr);
 
    //!Destroys object. Throws if object's
    //!destructor throws
- void destroy(const pointer &ptr)
- { BOOST_ASSERT(ptr != 0); (*ptr).~value_type(); }
+ void destroy(const pointer &ptr);
 
- /// @cond
- private:
-
- //!Object function that creates the node allocator if it is not created and
- //!increments reference count if it is already created
- struct get_or_create_func
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk> node_pool_t;
-
- //!This connects or constructs the unique instance of node_pool_t
- //!Can throw boost::interprocess::bad_alloc
- void operator()()
- {
- //Find or create the node_pool_t
- mp_node_pool = mp_named_alloc->template find_or_construct
- <node_pool_t>(unique_instance)(mp_named_alloc);
- //If valid, increment link count
- if(mp_node_pool != 0)
- mp_node_pool->inc_ref_count();
- }
-
- //!Constructor. Initializes function
- //!object parameters
- get_or_create_func(segment_manager *hdr) : mp_named_alloc(hdr){}
-
- node_pool_t *mp_node_pool;
- segment_manager *mp_named_alloc;
- };
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const;
+
+ std::pair<pointer, bool>
+ allocation_command(allocation_type command,
+ size_type limit_size,
+ size_type preferred_size,
+ size_type &received_size, const pointer &reuse = 0);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements);
+
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it);
 
- //!Frees all cached nodes.
- //!Never throws
- void priv_deallocate_all_cached_nodes()
- { mp_node_pool->deallocate_nodes(m_cached_nodes); }
-
- //!Frees all cached nodes at once.
- //!Never throws
- void priv_deallocate_remaining_nodes()
- {
- if(m_cached_nodes.size() > m_max_cached_nodes){
- priv_deallocate_n_nodes(m_cached_nodes.size()-m_max_cached_nodes);
- }
- }
-
- //!Frees n cached nodes at once.
- //!Never throws
- void priv_deallocate_n_nodes(std::size_t n)
- { mp_node_pool->deallocate_nodes(m_cached_nodes, n); }
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate_one();
 
- //!Initialization function, creates an executes atomically the
- //!initialization object functions. Can throw boost::interprocess::bad_alloc
- node_pool_t *priv_get_or_create(segment_manager *named_alloc)
- {
- get_or_create_func func(named_alloc);
- named_alloc->atomic_func(func);
- return func.mp_node_pool;
- }
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ multiallocation_iterator allocate_individual(std::size_t num_elements);
+
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
+ void deallocate_one(const pointer &p);
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it);
+ //!Sets the new max cached nodes value. This can provoke deallocations
+ //!if "newmax" is less than current cached nodes. Never throws
+ void set_max_cached_nodes(std::size_t newmax);
 
- //!Object function that decrements the reference count. If the count
- //!reaches to zero destroys the node allocator from memory.
+ //!Returns the max cached nodes parameter.
    //!Never throws
- struct destroy_if_last_link_func
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk> node_pool_t;
-
- //!Decrements reference count and destroys the object if there is no
- //!more attached allocators. Never throws
- void operator()()
- {
- //If not the last link return
- if(mp_node_pool->dec_ref_count() != 0) return;
-
- //Last link, let's destroy the segment_manager
- mp_named_alloc->template destroy<node_pool_t>(unique_instance);
- }
-
- //!Constructor. Initializes function object
- //!parameters
- destroy_if_last_link_func(segment_manager *nhdr,
- node_pool_t *phdr)
- : mp_named_alloc(nhdr), mp_node_pool(phdr){}
-
- segment_manager *mp_named_alloc;
- node_pool_t *mp_node_pool;
- };
-
- //!Destruction function, initializes and executes destruction function
- //!object. Never throws
- void priv_destroy_if_last_link()
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk> node_pool_t;
- //Get segment manager
- segment_manager *segment_mngr = this->get_segment_manager();
- //Execute destruction functor atomically
- destroy_if_last_link_func func(segment_mngr, detail::get_pointer(mp_node_pool));
- segment_mngr->atomic_func(func);
- }
-
- private:
- node_pool_ptr mp_node_pool;
- cached_list_t m_cached_nodes;
- std::size_t m_max_cached_nodes;
- /// @endcond
+ std::size_t get_max_cached_nodes() const;
+ #endif
 };
 
-//!Equality test for same type of
-//!cached_node_allocator
+#ifdef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+
+//!Equality test for same type
+//!of cached_node_allocator
 template<class T, class S, std::size_t NodesPerChunk> inline
 bool operator==(const cached_node_allocator<T, S, NodesPerChunk> &alloc1,
- const cached_node_allocator<T, S, NodesPerChunk> &alloc2)
- { return alloc1.get_node_pool() == alloc2.get_node_pool(); }
+ const cached_node_allocator<T, S, NodesPerChunk> &alloc2);
 
-//!Inequality test for same type of
-//!cached_node_allocator
+//!Inequality test for same type
+//!of cached_node_allocator
 template<class T, class S, std::size_t NodesPerChunk> inline
 bool operator!=(const cached_node_allocator<T, S, NodesPerChunk> &alloc1,
- const cached_node_allocator<T, S, NodesPerChunk> &alloc2)
- { return alloc1.get_node_pool() != alloc2.get_node_pool(); }
+ const cached_node_allocator<T, S, NodesPerChunk> &alloc2);
+
+#endif
 
 } //namespace interprocess {
 } //namespace boost {

Modified: branches/proto/v3/boost/interprocess/allocators/detail/adaptive_node_pool.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/detail/adaptive_node_pool.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/detail/adaptive_node_pool.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -17,20 +17,21 @@
 
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
+#include <boost/interprocess/interprocess_fwd.hpp>
 #include <boost/interprocess/sync/interprocess_mutex.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/detail/min_max.hpp>
 #include <boost/interprocess/detail/math_functions.hpp>
 #include <boost/interprocess/exceptions.hpp>
-#include <boost/intrusive/list.hpp>
+#include <boost/intrusive/set.hpp>
 #include <boost/intrusive/slist.hpp>
 #include <boost/math/common_factor_ct.hpp>
 #include <boost/interprocess/detail/type_traits.hpp>
 #include <boost/interprocess/allocators/detail/node_tools.hpp>
+#include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <cstddef>
 #include <cmath>
 #include <cassert>
-#include <cassert>
 
 //!\file
 //!Describes the real adaptive pool shared by many Interprocess pool allocators
@@ -39,10 +40,6 @@
 namespace interprocess {
 namespace detail {
 
-//!Pooled shared memory allocator using an smart adaptive pool. Includes
-//!a reference count but the class does not delete itself, this is
-//!responsibility of user classes. Node size (NodeSize) and the number of
-//!nodes allocated per chunk (NodesPerChunk) are known at compile time.
 template<class SegmentManagerBase>
 class private_adaptive_node_pool_impl
 {
@@ -56,19 +53,85 @@
    public:
    typedef typename node_slist<void_pointer>::node_t node_t;
    typedef typename node_slist<void_pointer>::node_slist_t free_nodes_t;
+ typedef typename SegmentManagerBase::multiallocation_iterator multiallocation_iterator;
+ typedef typename SegmentManagerBase::multiallocation_chain multiallocation_chain;
 
    private:
- //This hook will be used to chain the memory chunks
- typedef typename bi::make_list_base_hook
- <bi::void_pointer<void_pointer>, bi::link_mode<bi::normal_link> >::type list_hook_t;
+ typedef typename bi::make_set_base_hook
+ < bi::void_pointer<void_pointer>
+ , bi::optimize_size<true>
+ , bi::constant_time_size<false>
+ , bi::link_mode<bi::normal_link> >::type multiset_hook_t;
+
+ struct hdr_offset_holder
+ {
+ hdr_offset_holder(std::size_t offset = 0)
+ : hdr_offset(offset)
+ {}
+ std::size_t hdr_offset;
+ };
 
    struct chunk_info_t
- : public list_hook_t
+ :
+ public hdr_offset_holder,
+ public multiset_hook_t
    {
       //An intrusive list of free node from this chunk
       free_nodes_t free_nodes;
+ friend bool operator <(const chunk_info_t &l, const chunk_info_t &r)
+ {
+// { return l.free_nodes.size() < r.free_nodes.size(); }
+ //Let's order blocks first by free nodes and then by address
+ //so that highest address fully free chunks are deallocated.
+ //This improves returning memory to the OS (trimming).
+ const bool is_less = l.free_nodes.size() < r.free_nodes.size();
+ const bool is_equal = l.free_nodes.size() == r.free_nodes.size();
+ return is_less || (is_equal && (&l < &r));
+ }
    };
- typedef typename bi::make_list<chunk_info_t, bi::base_hook<list_hook_t> >::type chunk_list_t;
+ typedef typename bi::make_multiset
+ <chunk_info_t, bi::base_hook<multiset_hook_t> >::type chunk_multiset_t;
+ typedef typename chunk_multiset_t::iterator chunk_iterator;
+
+ static const std::size_t MaxAlign = alignment_of<node_t>::value;
+ static const std::size_t HdrSize = ((sizeof(chunk_info_t)-1)/MaxAlign+1)*MaxAlign;
+ static const std::size_t HdrOffsetSize = ((sizeof(hdr_offset_holder)-1)/MaxAlign+1)*MaxAlign;
+ static std::size_t calculate_alignment
+ (std::size_t overhead_percent, std::size_t real_node_size)
+ {
+ //to-do: handle real_node_size != node_size
+ const std::size_t divisor = overhead_percent*real_node_size;
+ const std::size_t dividend = HdrOffsetSize*100;
+ std::size_t elements_per_subchunk = (dividend - 1)/divisor + 1;
+ std::size_t candidate_power_of_2 =
+ upper_power_of_2(elements_per_subchunk*real_node_size + HdrOffsetSize);
+ bool overhead_satisfied = false;
+ while(!overhead_satisfied){
+ elements_per_subchunk = (candidate_power_of_2 - HdrOffsetSize)/real_node_size;
+ std::size_t overhead_size = candidate_power_of_2 - elements_per_subchunk*real_node_size;
+ if(overhead_size*100/candidate_power_of_2 < overhead_percent){
+ overhead_satisfied = true;
+ }
+ else{
+ candidate_power_of_2 <<= 1;
+ }
+ }
+ return candidate_power_of_2;
+ }
+
+ static void calculate_num_subchunks
+ (std::size_t alignment, std::size_t real_node_size, std::size_t elements_per_chunk
+ ,std::size_t &num_subchunks, std::size_t &real_num_node)
+ {
+ std::size_t elements_per_subchunk = (alignment - HdrOffsetSize)/real_node_size;
+ std::size_t possible_num_subchunk = (elements_per_chunk - 1)/elements_per_subchunk + 1;
+ std::size_t hdr_subchunk_elements = (alignment - HdrSize - SegmentManagerBase::PayloadPerAllocation)/real_node_size;
+ while(((possible_num_subchunk-1)*elements_per_subchunk + hdr_subchunk_elements) < elements_per_chunk){
+ ++possible_num_subchunk;
+ }
+ num_subchunks = possible_num_subchunk;
+ real_num_node = (possible_num_subchunk-1)*elements_per_subchunk + hdr_subchunk_elements;
+ }
 
    public:
    //!Segment manager typedef
@@ -77,26 +140,25 @@
    //!Constructor from a segment manager. Never throws
    private_adaptive_node_pool_impl
       ( segment_manager_base_type *segment_mngr_base, std::size_t node_size
- , std::size_t nodes_per_chunk, std::size_t max_free_chunks)
- : m_node_size(node_size)
- , m_max_free_chunks(max_free_chunks)
- , m_real_node_size(lcm(m_node_size, sizeof(node_t)))
- , m_header_size(min_value(get_rounded_size(sizeof(chunk_info_t), alignment_of<max_align>::value)
- ,get_rounded_size(sizeof(chunk_info_t), m_real_node_size)))
- //Round the size to a power of two value.
- //This is the total memory size (including payload) that we want to
- //allocate from the general-purpose allocator
- , m_real_chunk_alignment(upper_power_of_2(m_header_size + m_real_node_size*nodes_per_chunk))
+ , std::size_t nodes_per_chunk, std::size_t max_free_chunks
+ , unsigned char overhead_percent
+ )
+ : m_max_free_chunks(max_free_chunks)
+ , m_real_node_size(lcm(node_size, std::size_t(alignment_of<node_t>::value)))
+ //Round the size to a power of two value.
+ //This is the total memory size (including payload) that we want to
+ //allocate from the general-purpose allocator
+ , m_real_chunk_alignment(calculate_alignment(overhead_percent, m_real_node_size))
       //This is the real number of nodes per chunk
- , m_real_num_node((m_real_chunk_alignment - SegmentManagerBase::PayloadPerAllocation - m_header_size)/m_real_node_size)
+ , m_num_subchunks(0)
+ , m_real_num_node(0)
       //General purpose allocator
    , mp_segment_mngr_base(segment_mngr_base)
- , m_chunklist()
- , m_first_free_chunk(m_chunklist.end())
- //Debug node count
- , m_allocated(0)
- , m_free_chunks(0)
- {}
+ , m_chunk_multiset()
+ , m_totally_free_chunks(0)
+ {
+ calculate_num_subchunks(m_real_chunk_alignment, m_real_node_size, nodes_per_chunk, m_num_subchunks, m_real_num_node);
+ }
 
    //!Destructor. Deallocates all allocated chunks. Never throws
    ~private_adaptive_node_pool_impl()
@@ -110,60 +172,93 @@
    { return detail::get_pointer(mp_segment_mngr_base); }
 
    //!Allocates array of count elements. Can throw boost::interprocess::bad_alloc
- void *allocate(std::size_t count)
+ void *allocate_node()
    {
- std::size_t bytes = count*m_node_size;
- if(bytes > m_real_node_size){//Normal allocation, no pooling used
- void *addr = mp_segment_mngr_base->allocate(bytes);
- if(!addr) throw bad_alloc();
- return addr;
+ priv_invariants();
+ //If there are no free nodes we allocate a new block
+ if (m_chunk_multiset.empty()){
+ priv_alloc_chunk(1);
       }
- else //Node allocation, pooling used
- return priv_alloc_node();
+ //We take the first free node the multiset can't be empty
+ return priv_take_first_node();
    }
-
+
    //!Deallocates an array pointed by ptr. Never throws
- void deallocate(void *ptr, std::size_t count)
+ void deallocate_node(void *pElem)
    {
- std::size_t bytes = count*m_node_size;
- if(bytes > m_real_node_size)//Normal allocation was used
- mp_segment_mngr_base->deallocate(ptr);
- else //Node allocation was used
- priv_dealloc_node(ptr);
+ this->priv_reinsert_nodes_in_chunk
+ (multiallocation_iterator::create_simple_range(pElem));
+ //Update free chunk count
+ if(m_totally_free_chunks > m_max_free_chunks){
+ this->priv_deallocate_free_chunks(m_max_free_chunks);
+ }
+ priv_invariants();
    }
 
    //!Allocates a singly linked list of n nodes ending in null pointer.
    //!can throw boost::interprocess::bad_alloc
- void allocate_nodes(const std::size_t n, free_nodes_t &nodes)
+ void allocate_nodes(multiallocation_chain &nodes, const std::size_t n)
    {
- std::size_t i = 0;
       try{
- for(; i < n; ++i){
- nodes.push_front(*priv_alloc_node());
+ priv_invariants();
+ for(std::size_t i = 0; i != n; ++i){
+ //If there are no free nodes we allocate all needed chunks
+ if (m_chunk_multiset.empty()){
+ priv_alloc_chunk(((n - i) - 1)/m_real_num_node + 1);
+ }
+ nodes.push_front(priv_take_first_node());
          }
       }
       catch(...){
- priv_deallocate_nodes(nodes, i);
+ this->deallocate_nodes(nodes, nodes.size());
+ this->priv_deallocate_free_chunks(m_max_free_chunks);
          throw;
       }
+ priv_invariants();
+ }
+
+ //!Allocates n nodes, pointed by the multiallocation_iterator.
+ //!Can throw boost::interprocess::bad_alloc
+ multiallocation_iterator allocate_nodes(const std::size_t n)
+ {
+ multiallocation_chain chain;
+ this->allocate_nodes(chain, n);
+ return chain.get_it();
    }
 
    //!Deallocates a linked list of nodes. Never throws
- void deallocate_nodes(free_nodes_t &nodes)
- { priv_deallocate_nodes(nodes, nodes.size()); }
+ void deallocate_nodes(multiallocation_chain &nodes)
+ {
+ this->deallocate_nodes(nodes.get_it());
+ nodes.reset();
+ }
 
    //!Deallocates the first n nodes of a linked list of nodes. Never throws
- void deallocate_nodes(free_nodes_t &nodes, std::size_t n)
- { priv_deallocate_nodes(nodes, n); }
+ void deallocate_nodes(multiallocation_chain &nodes, std::size_t n)
+ {
+ assert(nodes.size() >= n);
+ for(std::size_t i = 0; i < n; ++i){
+ this->deallocate_node(nodes.pop_front());
+ }
+ }
+
+ //!Deallocates the nodes pointed by the multiallocation iterator. Never throws
+ void deallocate_nodes(multiallocation_iterator it)
+ {
+ this->priv_reinsert_nodes_in_chunk(it);
+ if(m_totally_free_chunks > m_max_free_chunks){
+ this->priv_deallocate_free_chunks(m_max_free_chunks);
+ }
+ }
 
    void deallocate_free_chunks()
- { priv_deallocate_free_chunks(0); }
+ { this->priv_deallocate_free_chunks(0); }
 
    std::size_t num_free_nodes()
    {
- typedef typename chunk_list_t::const_iterator citerator;
+ typedef typename chunk_multiset_t::const_iterator citerator;
       std::size_t count = 0;
- citerator it (m_first_free_chunk), itend(m_chunklist.end());
+ citerator it (m_chunk_multiset.begin()), itend(m_chunk_multiset.end());
       for(; it != itend; ++it){
          count += it->free_nodes.size();
       }
@@ -172,23 +267,98 @@
 
    void swap(private_adaptive_node_pool_impl &other)
    {
+ assert(m_max_free_chunks == other.m_max_free_chunks);
+ assert(m_real_node_size == other.m_real_node_size);
+ assert(m_real_chunk_alignment == other.m_real_chunk_alignment);
+ assert(m_real_num_node == other.m_real_num_node);
       std::swap(mp_segment_mngr_base, other.mp_segment_mngr_base);
- m_chunklist.swap(other.m_chunklist);
- std::swap(m_first_free_chunk, other.m_first_free_chunk);
- std::swap(m_allocated, other.m_allocated);
- std::swap(m_free_chunks, other.m_allocated);
+ std::swap(m_totally_free_chunks, other.m_totally_free_chunks);
+ m_chunk_multiset.swap(other.m_chunk_multiset);
    }
 
    private:
+ void priv_deallocate_free_chunks(std::size_t max_free_chunks)
+ {
+ priv_invariants();
+ //Now check if we've reached the free nodes limit
+ //and check if we have free chunks. If so, deallocate as much
+ //as we can to stay below the limit
+ for( chunk_iterator itend = m_chunk_multiset.end()
+ ; m_totally_free_chunks > max_free_chunks
+ ; --m_totally_free_chunks
+ ){
+ assert(!m_chunk_multiset.empty());
+ chunk_iterator it = itend;
+ --it;
+ std::size_t num_nodes = it->free_nodes.size();
+ assert(num_nodes == m_real_num_node);
+ (void)num_nodes;
+ m_chunk_multiset.erase_and_dispose
+ (it, chunk_destroyer(this));
+ }
+ }
 
- void priv_deallocate_nodes(free_nodes_t &nodes, const std::size_t num)
+ void priv_reinsert_nodes_in_chunk(multiallocation_iterator it)
+ {
+ multiallocation_iterator itend;
+ chunk_iterator chunk_it(m_chunk_multiset.end());
+ while(it != itend){
+ void *pElem = &*it;
+ ++it;
+ priv_invariants();
+ chunk_info_t *chunk_info = this->priv_chunk_from_node(pElem);
+ assert(chunk_info->free_nodes.size() < m_real_num_node);
+ //We put the node at the beginning of the free node list
+ node_t * to_deallocate = static_cast<node_t*>(pElem);
+ chunk_info->free_nodes.push_front(*to_deallocate);
+
+ chunk_iterator this_chunk(chunk_multiset_t::s_iterator_to(*chunk_info));
+ chunk_iterator next_chunk(this_chunk);
+ ++next_chunk;
+
+ //Cache the free nodes from the chunk
+ std::size_t this_chunk_free_nodes = this_chunk->free_nodes.size();
+
+ if(this_chunk_free_nodes == 1){
+ m_chunk_multiset.insert(m_chunk_multiset.begin(), *chunk_info);
+ }
+ else{
+ chunk_iterator next_chunk(this_chunk);
+ ++next_chunk;
+ if(next_chunk != chunk_it){
+ std::size_t next_free_nodes = next_chunk->free_nodes.size();
+ if(this_chunk_free_nodes > next_free_nodes){
+ //Now move the chunk to the new position
+ m_chunk_multiset.erase(this_chunk);
+ m_chunk_multiset.insert(*chunk_info);
+ }
+ }
+ }
+ //Update free chunk count
+ if(this_chunk_free_nodes == m_real_num_node){
+ ++m_totally_free_chunks;
+ }
+ priv_invariants();
+ }
+ }
+
+ node_t *priv_take_first_node()
    {
- assert(nodes.size() >= num);
- for(std::size_t i = 0; i < num; ++i){
- node_t *to_deallocate = &nodes.front();
- nodes.pop_front();
- deallocate(to_deallocate, 1);
+ assert(m_chunk_multiset.begin() != m_chunk_multiset.end());
+ //We take the first free node the multiset can't be empty
+ free_nodes_t &free_nodes = m_chunk_multiset.begin()->free_nodes;
+ node_t *first_node = &free_nodes.front();
+ const std::size_t free_nodes_count = free_nodes.size();
+ assert(0 != free_nodes_count);
+ free_nodes.pop_front();
+ if(free_nodes_count == 1){
+ m_chunk_multiset.erase(m_chunk_multiset.begin());
+ }
+ else if(free_nodes_count == m_real_num_node){
+ --m_totally_free_chunks;
       }
+ priv_invariants();
+ return first_node;
    }
 
    class chunk_destroyer;
@@ -197,71 +367,75 @@
    class chunk_destroyer
    {
       public:
- chunk_destroyer(segment_manager_base_type *mngr, std::size_t real_num_node)
- : mngr_(mngr), m_real_num_node(real_num_node)
+ chunk_destroyer(const private_adaptive_node_pool_impl *impl)
+ : mp_impl(impl)
       {}
 
- void operator()(typename chunk_list_t::pointer to_deallocate)
+ void operator()(typename chunk_multiset_t::pointer to_deallocate)
       {
          std::size_t free_nodes = to_deallocate->free_nodes.size();
          (void)free_nodes;
- assert(free_nodes == m_real_num_node);
- mngr_->deallocate(detail::get_pointer(to_deallocate));
+ assert(free_nodes == mp_impl->m_real_num_node);
+ assert(0 == to_deallocate->hdr_offset);
+ hdr_offset_holder *hdr_off_holder = mp_impl->priv_first_subchunk_from_chunk((chunk_info_t*)detail::get_pointer(to_deallocate));
+ mp_impl->mp_segment_mngr_base->deallocate(hdr_off_holder);
       }
- segment_manager_base_type *mngr_;
- const std::size_t m_real_num_node;
+ const private_adaptive_node_pool_impl *mp_impl;
    };
 
    //This macro will activate invariant checking. Slow, but helpful for debugging the code.
- //#define BOOST_INTERPROCESS_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS
+ #define BOOST_INTERPROCESS_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS
    void priv_invariants()
    #ifdef BOOST_INTERPROCESS_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS
    #undef BOOST_INTERPROCESS_ADAPTIVE_NODE_POOL_CHECK_INVARIANTS
    {
- typedef typename chunk_list_t::iterator chunk_iterator;
- //We iterate though the chunk list to free the memory
- chunk_iterator it(m_chunklist.begin()),
- itend(m_chunklist.end()), to_deallocate;
- for(++it; it != itend; ++it){
- chunk_iterator prev(it);
- --prev;
- std::size_t sp = prev->free_nodes.size(),
- si = it->free_nodes.size();
- assert(sp <= si);
- (void)sp; (void)si;
- }
-
- //Check that the total free nodes are correct
- it = m_chunklist.begin();
- itend = m_chunklist.end();
- std::size_t total_free = 0;
- for(; it != itend; ++it){
- total_free += it->free_nodes.size();
+ //We iterate through the chunk list to free the memory
+ chunk_iterator it(m_chunk_multiset.begin()),
+ itend(m_chunk_multiset.end()), to_deallocate;
+ if(it != itend){
+ for(++it; it != itend; ++it){
+ chunk_iterator prev(it);
+ --prev;
+ std::size_t sp = prev->free_nodes.size(),
+ si = it->free_nodes.size();
+ assert(sp <= si);
+ (void)sp; (void)si;
+ }
       }
- assert(total_free >= m_free_chunks*m_real_num_node);
 
- //Check that the total totally free chunks are correct
- it = m_chunklist.begin();
- itend = m_chunklist.end();
- total_free = 0;
- for(; it != itend; ++it){
- total_free += it->free_nodes.size() == m_real_num_node;
- }
- assert(total_free >= m_free_chunks);
-
- //The chunk pointed by m_first_free_chunk should point
- //to end or to a non-empty chunk
- if(m_first_free_chunk != m_chunklist.end()){
- std::size_t s = m_first_free_chunk->free_nodes.size();
- assert(s != 0);
+ {
+ //Check that the total free nodes are correct
+ it = m_chunk_multiset.begin();
+ itend = m_chunk_multiset.end();
+ std::size_t total_free_nodes = 0;
+ for(; it != itend; ++it){
+ total_free_nodes += it->free_nodes.size();
+ }
+ assert(total_free_nodes >= m_totally_free_chunks*m_real_num_node);
       }
 
- //All previous nodes of m_first_free_chunk should be 0
- it = m_chunklist.begin();
- itend = m_first_free_chunk;
+ {
+ //Check that the total totally free chunks are correct
+ it = m_chunk_multiset.begin();
+ itend = m_chunk_multiset.end();
+ std::size_t total_free_chunks = 0;
+ for(; it != itend; ++it){
+ total_free_chunks += (it->free_nodes.size() == m_real_num_node);
+ }
+ assert(total_free_chunks == m_totally_free_chunks);
+ }
+ {
+ //Check that header offsets are correct
+ it = m_chunk_multiset.begin();
       for(; it != itend; ++it){
- std::size_t s = it->free_nodes.size();
- assert(s == 0);
+ hdr_offset_holder *hdr_off_holder = priv_first_subchunk_from_chunk(&*it);
+ for(std::size_t i = 0, max = m_num_subchunks; i < max; ++i){
+ assert(hdr_off_holder->hdr_offset == std::size_t((char*)&*it- (char*)hdr_off_holder));
+ assert(0 == ((std::size_t)hdr_off_holder & (m_real_chunk_alignment - 1)));
+ assert(0 == (hdr_off_holder->hdr_offset & (m_real_chunk_alignment - 1)));
+ hdr_off_holder = (hdr_offset_holder *)((char*)hdr_off_holder + m_real_chunk_alignment);
+ }
+ }
       }
    }
    #else
@@ -271,165 +445,115 @@
    //!Deallocates all used memory. Never throws
    void priv_clear()
    {
- //Check for memory leaks
- assert(m_allocated==0);
- priv_invariants();
- m_first_free_chunk = m_chunklist.end();
- m_chunklist.clear_and_dispose
- (chunk_destroyer(detail::get_pointer(mp_segment_mngr_base), m_real_num_node));
- m_free_chunks = 0;
- }
-
- chunk_info_t *priv_chunk_from_node(void *node)
- {
- return (chunk_info_t *)((std::size_t)node & std::size_t(~(m_real_chunk_alignment - 1)));
- }
-
- //!Allocates one node, using the adaptive pool algorithm.
- //!Never throws
- node_t *priv_alloc_node()
- {
- priv_invariants();
- //If there are no free nodes we allocate a new block
- if (m_first_free_chunk == m_chunklist.end()){
- priv_alloc_chunk();
- --m_first_free_chunk;
- }
- //We take the first free node since m_first_free_chunk can't be end()
- chunk_info_t &chunk_info = *m_first_free_chunk;
- assert(!chunk_info.free_nodes.empty());
- node_t *first_node = &chunk_info.free_nodes.front();
- if(chunk_info.free_nodes.size() == 1){
- ++m_first_free_chunk;
- }
- else if(chunk_info.free_nodes.size() == m_real_num_node){
- --m_free_chunks;
- }
- chunk_info.free_nodes.pop_front();
- ++m_allocated;
- priv_invariants();
- return detail::get_pointer(first_node);
- }
-
- //!Deallocates one node, using the adaptive pool algorithm.
- //!Never throws
- void priv_dealloc_node(void *pElem)
- {
- typedef typename chunk_list_t::iterator chunk_iterator;
- priv_invariants();
- chunk_info_t *chunk_info = priv_chunk_from_node(pElem);
- assert(chunk_info->free_nodes.size() < m_real_num_node);
- //We put the node at the beginning of the free node list
- node_t * to_deallocate = static_cast<node_t*>(pElem);
- chunk_info->free_nodes.push_front(*to_deallocate);
- chunk_iterator this_chunk(chunk_list_t::s_iterator_to(*chunk_info));
- chunk_iterator next_chunk(this_chunk);
- ++next_chunk;
-
- //If this chunk has more free nodes than the next ones,
- //we have to move the chunk in the list to maintain it ordered.
- //Check if we have to move it
- while(next_chunk != m_chunklist.end() &&
- this_chunk->free_nodes.size() > next_chunk->free_nodes.size()){
- ++next_chunk;
- }
- //Check if the chunk must be moved
- if(++chunk_iterator(this_chunk) != next_chunk){
- //Update m_first_free_chunk iterator if it was pointing to this_chunk
- if(m_first_free_chunk == this_chunk){
- ++m_first_free_chunk;
- }
- //Update m_first_free_chunk if the moved chunk crosses the empty boundary
- else if(this_chunk->free_nodes.size() == 1){
- m_first_free_chunk = chunk_list_t::s_iterator_to(*chunk_info);
- }
- //Now move the chunk to the new position
- m_chunklist.erase(this_chunk);
- m_chunklist.insert(next_chunk, *chunk_info);
- }
- //Update m_first_free_chunk if the chunk crosses the empty boundary
- else if(this_chunk->free_nodes.size() == 1){
- --m_first_free_chunk;
- }
-
- if(this_chunk->free_nodes.size() == m_real_num_node){
- ++m_free_chunks;
+ #ifndef NDEBUG
+ chunk_iterator it = m_chunk_multiset.begin();
+ chunk_iterator itend = m_chunk_multiset.end();
+ std::size_t num_free_nodes = 0;
+ for(; it != itend; ++it){
+ //Check for memory leak
+ assert(it->free_nodes.size() == m_real_num_node);
+ ++num_free_nodes;
       }
-
- assert(m_allocated>0);
- --m_allocated;
+ assert(num_free_nodes == m_totally_free_chunks);
+ #endif
       priv_invariants();
- priv_deallocate_free_chunks(m_max_free_chunks);
- priv_invariants();
- }
-
- void priv_deallocate_free_chunks(std::size_t max_free_chunks)
- {
- typedef typename chunk_list_t::iterator chunk_iterator;
- //Now check if we've reached the free nodes limit
- //and check if we have free chunks. If so, deallocate as much
- //as we can to stay below the limit
- while(m_free_chunks > max_free_chunks &&
- m_chunklist.back().free_nodes.size() == m_real_num_node){
- chunk_iterator it(--m_chunklist.end());
- if(it == m_first_free_chunk)
- ++m_first_free_chunk; //m_first_free_chunk is now equal to end()
- m_chunklist.erase_and_dispose(it, chunk_destroyer(detail::get_pointer(mp_segment_mngr_base),m_real_num_node));
- --m_free_chunks;
- }
- }
-
- //!Allocates a chunk of nodes. Can throw boost::interprocess::bad_alloc
- void priv_alloc_chunk()
- {
- //We allocate a new NodeBlock and put it as first
- //element in the free Node list
- std::size_t real_chunk_size = m_real_chunk_alignment - SegmentManagerBase::PayloadPerAllocation;
- char *pNode = detail::char_ptr_cast
- (mp_segment_mngr_base->allocate_aligned(real_chunk_size, m_real_chunk_alignment));
- if(!pNode) throw bad_alloc();
- chunk_info_t *c_info = new(pNode)chunk_info_t;
- m_chunklist.push_back(*c_info);
-
- pNode += m_header_size;
- //We initialize all Nodes in Node Block to insert
- //them in the free Node list
- for(std::size_t i = 0; i < m_real_num_node; ++i){
- c_info->free_nodes.push_front(*new (pNode) node_t);
- pNode += m_real_node_size;
+ m_chunk_multiset.clear_and_dispose
+ (chunk_destroyer(this));
+ m_totally_free_chunks = 0;
+ }
+
+ chunk_info_t *priv_chunk_from_node(void *node) const
+ {
+ hdr_offset_holder *hdr_off_holder =
+ (hdr_offset_holder*)((std::size_t)node & std::size_t(~(m_real_chunk_alignment - 1)));
+ assert(0 == ((std::size_t)hdr_off_holder & (m_real_chunk_alignment - 1)));
+ assert(0 == (hdr_off_holder->hdr_offset & (m_real_chunk_alignment - 1)));
+ chunk_info_t *chunk = (chunk_info_t *)(((char*)hdr_off_holder) + hdr_off_holder->hdr_offset);
+ assert(chunk->hdr_offset == 0);
+ return chunk;
+ }
+
+ hdr_offset_holder *priv_first_subchunk_from_chunk(chunk_info_t *chunk) const
+ {
+ hdr_offset_holder *hdr_off_holder = (hdr_offset_holder*)
+ (((char*)chunk) - (m_num_subchunks-1)*m_real_chunk_alignment);
+ assert(hdr_off_holder->hdr_offset == std::size_t((char*)chunk - (char*)hdr_off_holder));
+ assert(0 == ((std::size_t)hdr_off_holder & (m_real_chunk_alignment - 1)));
+ assert(0 == (hdr_off_holder->hdr_offset & (m_real_chunk_alignment - 1)));
+ return hdr_off_holder;
+ }
+
+ //!Allocates a several chunks of nodes. Can throw boost::interprocess::bad_alloc
+ void priv_alloc_chunk(std::size_t n)
+ {
+ std::size_t real_chunk_size = m_real_chunk_alignment*m_num_subchunks - SegmentManagerBase::PayloadPerAllocation;
+ std::size_t elements_per_subchunk = (m_real_chunk_alignment - HdrOffsetSize)/m_real_node_size;
+ std::size_t hdr_subchunk_elements = (m_real_chunk_alignment - HdrSize - SegmentManagerBase::PayloadPerAllocation)/m_real_node_size;
+
+ for(std::size_t i = 0; i != n; ++i){
+ //We allocate a new NodeBlock and put it the last
+ //element of the tree
+ char *mem_address = detail::char_ptr_cast
+ (mp_segment_mngr_base->allocate_aligned(real_chunk_size, m_real_chunk_alignment));
+ if(!mem_address) throw std::bad_alloc();
+ ++m_totally_free_chunks;
+
+ //First initialize header information on the last subchunk
+ char *hdr_addr = mem_address + m_real_chunk_alignment*(m_num_subchunks-1);
+ chunk_info_t *c_info = new(hdr_addr)chunk_info_t;
+ //Some structural checks
+ assert(static_cast<void*>(&static_cast<hdr_offset_holder*>(c_info)->hdr_offset) ==
+ static_cast<void*>(c_info));
+ typename free_nodes_t::iterator prev_insert_pos = c_info->free_nodes.before_begin();
+ for( std::size_t subchunk = 0, maxsubchunk = m_num_subchunks - 1
+ ; subchunk < maxsubchunk
+ ; ++subchunk, mem_address += m_real_chunk_alignment){
+ //Initialize header offset mark
+ new(mem_address) hdr_offset_holder(std::size_t(hdr_addr - mem_address));
+ char *pNode = mem_address + HdrOffsetSize;
+ for(std::size_t i = 0; i < elements_per_subchunk; ++i){
+ prev_insert_pos = c_info->free_nodes.insert_after(prev_insert_pos, *new (pNode) node_t);
+ pNode += m_real_node_size;
+ }
+ }
+ {
+ char *pNode = hdr_addr + HdrSize;
+ //We initialize all Nodes in Node Block to insert
+ //them in the free Node list
+ for(std::size_t i = 0; i < hdr_subchunk_elements; ++i){
+ prev_insert_pos = c_info->free_nodes.insert_after(prev_insert_pos, *new (pNode) node_t);
+ pNode += m_real_node_size;
+ }
+ }
+ //Insert the chunk after the free node list is full
+ m_chunk_multiset.insert(m_chunk_multiset.end(), *c_info);
       }
- ++m_free_chunks;
    }
 
    private:
    typedef typename pointer_to_other
       <void_pointer, segment_manager_base_type>::type segment_mngr_base_ptr_t;
 
- const std::size_t m_node_size;
    const std::size_t m_max_free_chunks;
    const std::size_t m_real_node_size;
- const std::size_t m_header_size;
    //Round the size to a power of two value.
    //This is the total memory size (including payload) that we want to
    //allocate from the general-purpose allocator
    const std::size_t m_real_chunk_alignment;
+ std::size_t m_num_subchunks;
    //This is the real number of nodes per chunk
- const std::size_t m_real_num_node;
+ //const
+ std::size_t m_real_num_node;
    segment_mngr_base_ptr_t mp_segment_mngr_base;//Segment manager
- chunk_list_t m_chunklist; //Intrusive chunk list
- typename chunk_list_t::iterator m_first_free_chunk; //Iterator to the active chunk
- std::size_t m_allocated; //Used nodes for debugging
- std::size_t m_free_chunks; //Free chunks
+ chunk_multiset_t m_chunk_multiset; //Intrusive chunk list
+ std::size_t m_totally_free_chunks; //Free chunks
 };
 
-//!Pooled shared memory allocator using an smart adaptive pool. Includes
-//!a reference count but the class does not delete itself, this is
-//!responsibility of user classes. Node size (NodeSize) and the number of
-//!nodes allocated per chunk (NodesPerChunk) are known at compile time.
 template< class SegmentManager
         , std::size_t NodeSize
         , std::size_t NodesPerChunk
         , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
>
 class private_adaptive_node_pool
    : public private_adaptive_node_pool_impl
@@ -448,8 +572,8 @@
    static const std::size_t nodes_per_chunk = NodesPerChunk;
 
    //!Constructor from a segment manager. Never throws
- private_adaptive_node_pool(segment_manager *segmeng_mngr)
- : base_t(segmeng_mngr, NodeSize, NodesPerChunk, MaxFreeChunks)
+ private_adaptive_node_pool(segment_manager *segment_mngr)
+ : base_t(segment_mngr, NodeSize, NodesPerChunk, MaxFreeChunks, OverheadPercent)
    {}
 
    //!Returns the segment manager. Never throws
@@ -462,117 +586,25 @@
 //!responsibility of user classes. Node size (NodeSize) and the number of
 //!nodes allocated per chunk (NodesPerChunk) are known at compile time
 template< class SegmentManager
- , class Mutex
         , std::size_t NodeSize
         , std::size_t NodesPerChunk
         , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
>
 class shared_adaptive_node_pool
- : public private_adaptive_node_pool
- <SegmentManager, NodeSize, NodesPerChunk, MaxFreeChunks>
+ : public detail::shared_pool_impl
+ < private_adaptive_node_pool
+ <SegmentManager, NodeSize, NodesPerChunk, MaxFreeChunks, OverheadPercent>
+ >
 {
- private:
- typedef typename SegmentManager::void_pointer void_pointer;
- typedef private_adaptive_node_pool
- <SegmentManager,
- NodeSize, NodesPerChunk, MaxFreeChunks> private_node_allocator_t;
- public:
- //!Segment manager typedef
- typedef SegmentManager segment_manager;
- typedef typename private_node_allocator_t::free_nodes_t free_nodes_t;
-
- //!Constructor from a segment manager. Never throws
- shared_adaptive_node_pool(segment_manager *segment_mgnr)
- : private_node_allocator_t(segment_mgnr){}
-
- //!Destructor. Deallocates all allocated chunks. Never throws
- ~shared_adaptive_node_pool()
+ typedef detail::shared_pool_impl
+ < private_adaptive_node_pool
+ <SegmentManager, NodeSize, NodesPerChunk, MaxFreeChunks, OverheadPercent>
+ > base_t;
+ public:
+ shared_adaptive_node_pool(SegmentManager *segment_mgnr)
+ : base_t(segment_mgnr)
    {}
-
- //!Allocates array of count elements. Can throw boost::interprocess::bad_alloc
- void *allocate(std::size_t count)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- return private_node_allocator_t::allocate(count);
- }
-
- //!Deallocates an array pointed by ptr. Never throws
- void deallocate(void *ptr, std::size_t count)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate(ptr, count);
- }
-
- //!Allocates a singly linked list of n nodes ending in null pointer.
- //!can throw boost::interprocess::bad_alloc
- void allocate_nodes(std::size_t n, free_nodes_t &nodes)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- return private_node_allocator_t::allocate_nodes(n, nodes);
- }
-
- //!Deallocates a linked list of nodes ending in null pointer. Never throws
- void deallocate_nodes(free_nodes_t &nodes, std::size_t num)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate_nodes(nodes, num);
- }
-
- //!Deallocates a linked list of nodes ending in null pointer. Never throws
- void deallocate_nodes(free_nodes_t &nodes)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate_nodes(nodes);
- }
-
- //!Deallocates all the free chunks of memory. Never throws
- void deallocate_free_chunks()
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate_free_chunks();
- }
-
- //!Increments internal reference count and returns new count. Never throws
- std::size_t inc_ref_count()
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- return ++m_header.m_usecount;
- }
-
- //!Decrements internal reference count and returns new count. Never throws
- std::size_t dec_ref_count()
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- assert(m_header.m_usecount > 0);
- return --m_header.m_usecount;
- }
-
- private:
- //!This struct includes needed data and derives from
- //!interprocess_mutex to allow EBO when using null_mutex
- struct header_t : Mutex
- {
- std::size_t m_usecount; //Number of attached allocators
-
- header_t()
- : m_usecount(0) {}
- } m_header;
 };
 
 } //namespace detail {

Modified: branches/proto/v3/boost/interprocess/allocators/detail/node_pool.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/detail/node_pool.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/detail/node_pool.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -24,7 +24,9 @@
 #include <boost/intrusive/slist.hpp>
 #include <boost/math/common_factor_ct.hpp>
 #include <boost/interprocess/detail/math_functions.hpp>
+#include <boost/interprocess/detail/type_traits.hpp>
 #include <boost/interprocess/allocators/detail/node_tools.hpp>
+#include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <cstddef>
 #include <functional>
 #include <algorithm>
@@ -51,10 +53,14 @@
    typedef typename node_slist<void_pointer>::slist_hook_t slist_hook_t;
    typedef typename node_slist<void_pointer>::node_t node_t;
    typedef typename node_slist<void_pointer>::node_slist_t free_nodes_t;
+ typedef typename SegmentManagerBase::multiallocation_iterator multiallocation_iterator;
+ typedef typename SegmentManagerBase::multiallocation_chain multiallocation_chain;
 
    private:
- typedef typename bi::make_slist < node_t, bi::base_hook<slist_hook_t>
- , bi::constant_time_size<false> >::type chunkslist_t;
+ typedef typename bi::make_slist
+ < node_t, bi::base_hook<slist_hook_t>
+ , bi::linear<true>
+ , bi::constant_time_size<false> >::type chunkslist_t;
    public:
 
    //!Segment manager typedef
@@ -62,10 +68,8 @@
 
    //!Constructor from a segment manager. Never throws
    private_node_pool_impl(segment_manager_base_type *segment_mngr_base, std::size_t node_size, std::size_t nodes_per_chunk)
- : m_node_size(node_size)
- , m_nodes_per_chunk(nodes_per_chunk)
- , m_real_node_size(detail::lcm(node_size, sizeof(node_t)))
- , m_block_size(detail::get_rounded_size(m_real_node_size*m_nodes_per_chunk, sizeof(node_t)))
+ : m_nodes_per_chunk(nodes_per_chunk)
+ , m_real_node_size(detail::lcm(node_size, std::size_t(alignment_of<node_t>::value)))
       //General purpose allocator
    , mp_segment_mngr_base(segment_mngr_base)
    , m_chunklist()
@@ -76,7 +80,7 @@
 
    //!Destructor. Deallocates all allocated chunks. Never throws
    ~private_node_pool_impl()
- { priv_clear(); }
+ { this->purge_chunks(); }
 
    std::size_t get_real_num_node() const
    { return m_nodes_per_chunk; }
@@ -86,116 +90,91 @@
    { return detail::get_pointer(mp_segment_mngr_base); }
 
    //!Allocates array of count elements. Can throw boost::interprocess::bad_alloc
- void *allocate(std::size_t count)
+ void *allocate_node()
    {
- std::size_t bytes = count*m_node_size;
- if(bytes > m_real_node_size){//Normal allocation, no pooling used
- void *addr = mp_segment_mngr_base->allocate(bytes);
- if(!addr) throw bad_alloc();
- return addr;
- }
- else //Node allocation, pooling used
- return priv_alloc_node();
+ //If there are no free nodes we allocate a new block
+ if (m_freelist.empty())
+ priv_alloc_chunk();
+ //We take the first free node
+ node_t *n = (node_t*)&m_freelist.front();
+ m_freelist.pop_front();
+ ++m_allocated;
+ return n;
    }
    
    //!Deallocates an array pointed by ptr. Never throws
- void deallocate(void *ptr, std::size_t count)
+ void deallocate_node(void *ptr)
    {
- std::size_t bytes = count*m_node_size;
- if(bytes > m_real_node_size)//Normal allocation was used
- mp_segment_mngr_base->deallocate(ptr);
- else //Node allocation was used
- priv_dealloc_node(ptr);
+ //We put the node at the beginning of the free node list
+ node_t * to_deallocate = static_cast<node_t*>(ptr);
+ m_freelist.push_front(*to_deallocate);
+ assert(m_allocated>0);
+ --m_allocated;
    }
 
- //!Allocates a singly linked list of n nodes ending in null pointer.
+ //!Allocates a singly linked list of n nodes ending in null pointer and pushes them in the chain.
    //!can throw boost::interprocess::bad_alloc
- void allocate_nodes(const std::size_t n, free_nodes_t &nodes)
+ void allocate_nodes(multiallocation_chain &nodes, const std::size_t n)
    {
       std::size_t i = 0;
       try{
          for(; i < n; ++i){
- nodes.push_front(*priv_alloc_node());
+ nodes.push_front(this->allocate_node());
          }
       }
       catch(...){
- priv_deallocate_nodes(nodes, i);
+ this->deallocate_nodes(nodes, i);
          throw;
       }
    }
 
- //!Deallocates a linked list of nodes. Never throws
- void deallocate_nodes(free_nodes_t &nodes)
- { priv_deallocate_nodes(nodes, nodes.size()); }
-
- //!Deallocates the first n nodes of a linked list of nodes. Never throws
- void deallocate_nodes(free_nodes_t &nodes, std::size_t n)
- { priv_deallocate_nodes(nodes, n); }
-
- //!Deallocates all the free chunks of memory. Never throws
- void deallocate_free_chunks()
- { priv_deallocate_free_chunks(); }
-
- std::size_t num_free_nodes()
- { return m_freelist.size(); }
-
- void swap(private_node_pool_impl &other)
+ //!Allocates a singly linked list of n nodes ending in null pointer
+ //!can throw boost::interprocess::bad_alloc
+ multiallocation_iterator allocate_nodes(const std::size_t n)
    {
- std::swap(mp_segment_mngr_base, other.mp_segment_mngr_base);
- m_chunklist.swap(other.m_chunklist);
- m_freelist.swap(other.m_freelist);
- std::swap(m_allocated, other.m_allocated);
+ multiallocation_chain nodes;
+ std::size_t i = 0;
+ try{
+ for(; i < n; ++i){
+ nodes.push_front(this->allocate_node());
+ }
+ }
+ catch(...){
+ this->deallocate_nodes(nodes, i);
+ throw;
+ }
+ return nodes.get_it();
    }
 
- private:
+ //!Deallocates a linked list of nodes. Never throws
+ void deallocate_nodes(multiallocation_chain &nodes)
+ {
+ this->deallocate_nodes(nodes.get_it());
+ nodes.reset();
+ }
 
- void priv_deallocate_nodes(free_nodes_t &nodes, const std::size_t num)
+ //!Deallocates the first n nodes of a linked list of nodes. Never throws
+ void deallocate_nodes(multiallocation_chain &nodes, std::size_t num)
    {
       assert(nodes.size() >= num);
       for(std::size_t i = 0; i < num; ++i){
- node_t *to_deallocate = &nodes.front();
- nodes.pop_front();
- deallocate(to_deallocate, 1);
+ deallocate_node(nodes.pop_front());
       }
    }
 
- struct push_in_list
- {
- push_in_list(free_nodes_t &l, typename free_nodes_t::iterator &it)
- : slist_(l), last_it_(it)
- {}
-
- void operator()(typename free_nodes_t::pointer p) const
- {
- slist_.push_front(*p);
- if(slist_.size() == 1){ //Cache last element
- ++last_it_ = slist_.begin();
- }
- }
-
- private:
- free_nodes_t &slist_;
- typename free_nodes_t::iterator &last_it_;
- };
-
- struct is_between
- : std::unary_function<typename free_nodes_t::value_type, bool>
+ //!Deallocates the nodes pointed by the multiallocation iterator. Never throws
+ void deallocate_nodes(multiallocation_iterator it)
    {
- is_between(const void *addr, std::size_t size)
- : beg_((const char *)addr), end_(beg_+size)
- {}
-
- bool operator()(typename free_nodes_t::const_reference v) const
- {
- return (beg_ <= (const char *)&v &&
- end_ > (const char *)&v);
+ multiallocation_iterator itend;
+ while(it != itend){
+ void *addr = &*it;
+ ++it;
+ deallocate_node(addr);
       }
- private:
- const char * beg_;
- const char * end_;
- };
+ }
 
- void priv_deallocate_free_chunks()
+ //!Deallocates all the free chunks of memory. Never throws
+ void deallocate_free_chunks()
    {
       typedef typename free_nodes_t::iterator nodelist_iterator;
       typename chunkslist_t::iterator bit(m_chunklist.before_begin()),
@@ -204,16 +183,19 @@
       free_nodes_t backup_list;
       nodelist_iterator backup_list_last = backup_list.before_begin();
 
+ //Execute the algorithm and get an iterator to the last value
+ std::size_t blocksize = detail::get_rounded_size
+ (m_real_node_size*m_nodes_per_chunk, alignment_of<node_t>::value);
+
       while(it != itend){
          //Collect all the nodes from the chunk pointed by it
          //and push them in the list
          free_nodes_t free_nodes;
          nodelist_iterator last_it = free_nodes.before_begin();
- const void *addr = get_chunk_from_hook(&*it);
+ const void *addr = get_chunk_from_hook(&*it, blocksize);
 
- //Execute the algorithm and get an iterator to the last value
          m_freelist.remove_and_dispose_if
- (is_between(addr, m_block_size), push_in_list(free_nodes, last_it));
+ (is_between(addr, blocksize), push_in_list(free_nodes, last_it));
 
          //If the number of nodes is equal to m_nodes_per_chunk
          //this means that the block can be deallocated
@@ -253,57 +235,88 @@
          , backup_list.size());
    }
 
- //!Deallocates all used memory. Never throws
- void priv_clear()
+ std::size_t num_free_nodes()
+ { return m_freelist.size(); }
+
+ //!Deallocates all used memory. Precondition: all nodes allocated from this pool should
+ //!already be deallocated. Otherwise, undefined behaviour. Never throws
+ void purge_chunks()
    {
       //check for memory leaks
       assert(m_allocated==0);
-
+ std::size_t blocksize = detail::get_rounded_size
+ (m_real_node_size*m_nodes_per_chunk, alignment_of<node_t>::value);
       typename chunkslist_t::iterator
          it(m_chunklist.begin()), itend(m_chunklist.end()), aux;
 
       //We iterate though the NodeBlock list to free the memory
       while(!m_chunklist.empty()){
- void *addr = get_chunk_from_hook(&m_chunklist.front());
+ void *addr = get_chunk_from_hook(&m_chunklist.front(), blocksize);
          m_chunklist.pop_front();
          mp_segment_mngr_base->deallocate(addr);
- }
+ }
+ //Just clear free node list
+ m_freelist.clear();
    }
 
- //!Allocates one node, using single segregated storage algorithm.
- //!Never throws
- node_t *priv_alloc_node()
+ void swap(private_node_pool_impl &other)
    {
- //If there are no free nodes we allocate a new block
- if (m_freelist.empty())
- priv_alloc_chunk();
- //We take the first free node
- node_t *n = (node_t*)&m_freelist.front();
- m_freelist.pop_front();
- ++m_allocated;
- return n;
+ std::swap(mp_segment_mngr_base, other.mp_segment_mngr_base);
+ m_chunklist.swap(other.m_chunklist);
+ m_freelist.swap(other.m_freelist);
+ std::swap(m_allocated, other.m_allocated);
    }
 
- //!Deallocates one node, using single segregated storage algorithm.
- //!Never throws
- void priv_dealloc_node(void *pElem)
+ private:
+
+ struct push_in_list
    {
- //We put the node at the beginning of the free node list
- node_t * to_deallocate = static_cast<node_t*>(pElem);
- m_freelist.push_front(*to_deallocate);
- assert(m_allocated>0);
- --m_allocated;
- }
+ push_in_list(free_nodes_t &l, typename free_nodes_t::iterator &it)
+ : slist_(l), last_it_(it)
+ {}
+
+ void operator()(typename free_nodes_t::pointer p) const
+ {
+ slist_.push_front(*p);
+ if(slist_.size() == 1){ //Cache last element
+ ++last_it_ = slist_.begin();
+ }
+ }
+
+ private:
+ free_nodes_t &slist_;
+ typename free_nodes_t::iterator &last_it_;
+ };
+
+ struct is_between
+ : std::unary_function<typename free_nodes_t::value_type, bool>
+ {
+ is_between(const void *addr, std::size_t size)
+ : beg_((const char *)addr), end_(beg_+size)
+ {}
+
+ bool operator()(typename free_nodes_t::const_reference v) const
+ {
+ return (beg_ <= (const char *)&v &&
+ end_ > (const char *)&v);
+ }
+ private:
+ const char * beg_;
+ const char * end_;
+ };
 
    //!Allocates a chunk of nodes. Can throw boost::interprocess::bad_alloc
    void priv_alloc_chunk()
    {
       //We allocate a new NodeBlock and put it as first
       //element in the free Node list
- char *pNode = detail::char_ptr_cast(mp_segment_mngr_base->allocate(m_block_size + sizeof(node_t)));
+ std::size_t blocksize =
+ detail::get_rounded_size(m_real_node_size*m_nodes_per_chunk, alignment_of<node_t>::value);
+ char *pNode = detail::char_ptr_cast
+ (mp_segment_mngr_base->allocate(blocksize + sizeof(node_t)));
       if(!pNode) throw bad_alloc();
       char *pBlock = pNode;
- m_chunklist.push_front(get_chunk_hook(pBlock));
+ m_chunklist.push_front(get_chunk_hook(pBlock, blocksize));
 
       //We initialize all Nodes in Node Block to insert
       //them in the free Node list
@@ -314,26 +327,24 @@
 
    private:
    //!Returns a reference to the chunk hook placed in the end of the chunk
- inline node_t & get_chunk_hook (void *chunk)
+ static inline node_t & get_chunk_hook (void *chunk, std::size_t blocksize)
    {
       return *static_cast<node_t*>(
- static_cast<void*>((detail::char_ptr_cast(chunk)+m_block_size)));
+ static_cast<void*>((detail::char_ptr_cast(chunk) + blocksize)));
    }
 
    //!Returns the starting address of the chunk reference to the chunk hook placed in the end of the chunk
- inline void *get_chunk_from_hook (node_t *hook)
+ inline void *get_chunk_from_hook (node_t *hook, std::size_t blocksize)
    {
- return static_cast<void*>((detail::char_ptr_cast(hook) - m_block_size));
+ return static_cast<void*>((detail::char_ptr_cast(hook) - blocksize));
    }
 
    private:
    typedef typename pointer_to_other
       <void_pointer, segment_manager_base_type>::type segment_mngr_base_ptr_t;
 
- const std::size_t m_node_size;
    const std::size_t m_nodes_per_chunk;
    const std::size_t m_real_node_size;
- const std::size_t m_block_size;
    segment_mngr_base_ptr_t mp_segment_mngr_base; //Segment manager
    chunkslist_t m_chunklist; //Intrusive container of chunks
    free_nodes_t m_freelist; //Intrusive container of free nods
@@ -376,114 +387,28 @@
 //!a reference count but the class does not delete itself, this is
 //!responsibility of user classes. Node size (NodeSize) and the number of
 //!nodes allocated per chunk (NodesPerChunk) are known at compile time
+//!Pooled shared memory allocator using adaptive pool. Includes
+//!a reference count but the class does not delete itself, this is
+//!responsibility of user classes. Node size (NodeSize) and the number of
+//!nodes allocated per chunk (NodesPerChunk) are known at compile time
 template< class SegmentManager
- , class Mutex
         , std::size_t NodeSize
         , std::size_t NodesPerChunk
>
 class shared_node_pool
- : public private_node_pool<SegmentManager, NodeSize, NodesPerChunk>
+ : public detail::shared_pool_impl
+ < private_node_pool
+ <SegmentManager, NodeSize, NodesPerChunk>
+ >
 {
- private:
- typedef typename SegmentManager::void_pointer void_pointer;
- typedef private_node_pool
- <SegmentManager, NodeSize, NodesPerChunk> private_node_allocator_t;
-
+ typedef detail::shared_pool_impl
+ < private_node_pool
+ <SegmentManager, NodeSize, NodesPerChunk>
+ > base_t;
    public:
- typedef SegmentManager segment_manager;
- typedef typename private_node_allocator_t::free_nodes_t free_nodes_t;
-
- //!Constructor from a segment manager. Never throws
- shared_node_pool(segment_manager *segment_mngr)
- : private_node_allocator_t(segment_mngr){}
-
- //!Destructor. Deallocates all allocated chunks. Never throws
- ~shared_node_pool()
+ shared_node_pool(SegmentManager *segment_mgnr)
+ : base_t(segment_mgnr)
    {}
-
- //!Allocates array of count elements. Can throw boost::interprocess::bad_alloc
- void *allocate(std::size_t count)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- return private_node_allocator_t::allocate(count);
- }
-
- //!Deallocates an array pointed by ptr. Never throws
- void deallocate(void *ptr, std::size_t count)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate(ptr, count);
- }
-
- //!Allocates a singly linked list of n nodes ending in null pointer.
- //!can throw boost::interprocess::bad_alloc
- void allocate_nodes(const std::size_t n, free_nodes_t &nodes)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::allocate_nodes(n, nodes);
- }
-
- //!Deallocates a linked list of nodes ending in null pointer. Never throws
- void deallocate_nodes(free_nodes_t &nodes, std::size_t n)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate_nodes(nodes, n);
- }
-
- void deallocate_nodes(free_nodes_t &nodes)
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate_nodes(nodes);
- }
-
- //!Deallocates all the free chunks of memory. Never throws
- void deallocate_free_chunks()
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- private_node_allocator_t::deallocate_free_chunks();
- }
-
- //!Increments internal reference count and returns new count. Never throws
- std::size_t inc_ref_count()
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- return ++m_header.m_usecount;
- }
-
- //!Decrements internal reference count and returns new count. Never throws
- std::size_t dec_ref_count()
- {
- //-----------------------
- boost::interprocess::scoped_lock<Mutex> guard(m_header);
- //-----------------------
- assert(m_header.m_usecount > 0);
- return --m_header.m_usecount;
- }
-
- private:
- //!This struct includes needed data and derives from
- //!interprocess_mutex to allow EBO when using null_mutex
- struct header_t : Mutex
- {
- std::size_t m_usecount; //Number of attached allocators
-
- header_t()
- : m_usecount(0) {}
- } m_header;
 };
 
 } //namespace detail {

Modified: branches/proto/v3/boost/interprocess/allocators/detail/node_tools.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/detail/node_tools.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/detail/node_tools.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2007-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -37,7 +37,8 @@
       : public slist_hook_t
    {};
 
- typedef typename bi::make_slist<node_t, bi::base_hook<slist_hook_t> >::type node_slist_t;
+ typedef typename bi::make_slist
+ <node_t, bi::linear<true>, bi::base_hook<slist_hook_t> >::type node_slist_t;
 };
 
 } //namespace detail {

Modified: branches/proto/v3/boost/interprocess/allocators/node_allocator.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/node_allocator.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/node_allocator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -8,8 +8,8 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 
-#ifndef BOOST_INTERPROCESS_POOLED_NODE_ALLOCATOR_HPP
-#define BOOST_INTERPROCESS_POOLED_NODE_ALLOCATOR_HPP
+#ifndef BOOST_INTERPROCESS_NODE_ALLOCATOR_HPP
+#define BOOST_INTERPROCESS_NODE_ALLOCATOR_HPP
 
 #if (defined _MSC_VER) && (_MSC_VER >= 1200)
 # pragma once
@@ -22,9 +22,10 @@
 #include <boost/assert.hpp>
 #include <boost/utility/addressof.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
+#include <boost/interprocess/detail/type_traits.hpp>
 #include <boost/interprocess/allocators/detail/node_pool.hpp>
 #include <boost/interprocess/exceptions.hpp>
+#include <boost/interprocess/allocators/detail/allocator_common.hpp>
 #include <memory>
 #include <algorithm>
 #include <cstddef>
@@ -35,6 +36,177 @@
 namespace boost {
 namespace interprocess {
 
+/// @cond
+
+namespace detail{
+
+template < unsigned int Version
+ , class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ >
+class node_allocator_base
+ : public node_pool_allocation_impl
+ < node_allocator_base
+ < Version, T, SegmentManager, NodesPerChunk>
+ , Version
+ , T
+ , SegmentManager
+ >
+{
+ public:
+ typedef typename SegmentManager::void_pointer void_pointer;
+ typedef SegmentManager segment_manager;
+ typedef node_allocator_base
+ <Version, T, SegmentManager, NodesPerChunk> self_t;
+ typedef detail::shared_node_pool
+ < SegmentManager, sizeof(T), NodesPerChunk> node_pool_t;
+ typedef typename detail::
+ pointer_to_other<void_pointer, node_pool_t>::type node_pool_ptr;
+
+ BOOST_STATIC_ASSERT((Version <=2));
+
+ public:
+ //-------
+ typedef typename detail::
+ pointer_to_other<void_pointer, T>::type pointer;
+ typedef typename detail::
+ pointer_to_other<void_pointer, const T>::type const_pointer;
+ typedef T value_type;
+ typedef typename detail::add_reference
+ <value_type>::type reference;
+ typedef typename detail::add_reference
+ <const value_type>::type const_reference;
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+
+ typedef detail::version_type<node_allocator_base, Version> version;
+ typedef transform_iterator
+ < typename SegmentManager::
+ multiallocation_iterator
+ , detail::cast_functor <T> > multiallocation_iterator;
+ typedef typename SegmentManager::
+ multiallocation_chain multiallocation_chain;
+
+ //!Obtains node_allocator_base from
+ //!node_allocator_base
+ template<class T2>
+ struct rebind
+ {
+ typedef node_allocator_base<Version, T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ /// @cond
+ private:
+ //!Not assignable from related node_allocator_base
+ template<unsigned int Version2, class T2, class SegmentManager2, std::size_t N2>
+ node_allocator_base& operator=
+ (const node_allocator_base<Version2, T2, SegmentManager2, N2>&);
+
+ //!Not assignable from other node_allocator_base
+ node_allocator_base& operator=(const node_allocator_base&);
+ /// @endcond
+
+ public:
+ //!Constructor from a segment manager. If not present, constructs a node
+ //!pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ node_allocator_base(segment_manager *segment_mngr)
+ : mp_node_pool(detail::get_or_create_node_pool<node_pool_t>(segment_mngr)) { }
+
+ //!Copy constructor from other node_allocator_base. Increments the reference
+ //!count of the associated node pool. Never throws
+ node_allocator_base(const node_allocator_base &other)
+ : mp_node_pool(other.get_node_pool())
+ {
+ mp_node_pool->inc_ref_count();
+ }
+
+ //!Copy constructor from related node_allocator_base. If not present, constructs
+ //!a node pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ template<class T2>
+ node_allocator_base
+ (const node_allocator_base<Version, T2, SegmentManager, NodesPerChunk> &other)
+ : mp_node_pool(detail::get_or_create_node_pool<node_pool_t>(other.get_segment_manager())) { }
+
+ //!Destructor, removes node_pool_t from memory
+ //!if its reference count reaches to zero. Never throws
+ ~node_allocator_base()
+ { detail::destroy_node_pool_if_last_link(detail::get_pointer(mp_node_pool)); }
+
+ //!Returns a pointer to the node pool.
+ //!Never throws
+ node_pool_t* get_node_pool() const
+ { return detail::get_pointer(mp_node_pool); }
+
+ //!Returns the segment manager.
+ //!Never throws
+ segment_manager* get_segment_manager()const
+ { return mp_node_pool->get_segment_manager(); }
+
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different memory segment, the result is undefined.
+ friend void swap(self_t &alloc1, self_t &alloc2)
+ { detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
+
+ /// @cond
+ private:
+ node_pool_ptr mp_node_pool;
+ /// @endcond
+};
+
+//!Equality test for same type
+//!of node_allocator_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk> inline
+bool operator==(const node_allocator_base<V, T, S, NodesPerChunk> &alloc1,
+ const node_allocator_base<V, T, S, NodesPerChunk> &alloc2)
+ { return alloc1.get_node_pool() == alloc2.get_node_pool(); }
+
+//!Inequality test for same type
+//!of node_allocator_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const node_allocator_base<V, T, S, NodesPerChunk> &alloc1,
+ const node_allocator_base<V, T, S, NodesPerChunk> &alloc2)
+ { return alloc1.get_node_pool() != alloc2.get_node_pool(); }
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk = 64
+ >
+class node_allocator_v1
+ : public node_allocator_base
+ < 1
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ >
+{
+ public:
+ typedef detail::node_allocator_base
+ < 1, T, SegmentManager, NodesPerChunk> base_t;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef node_allocator_v1<T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ node_allocator_v1(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ node_allocator_v1
+ (const node_allocator_v1<T2, SegmentManager, NodesPerChunk> &other)
+ : base_t(other)
+ {}
+};
+
+} //namespace detail{
+
+/// @endcond
+
 //!An STL node allocator that uses a segment manager as memory
 //!source. The internal pointer type will of the same type (raw, smart) as
 //!"typename SegmentManager::void_pointer" type. This allows
@@ -43,25 +215,49 @@
 //!of node_allocator with equal sizeof(T) placed in the same segment
 //!group. NodesPerChunk is the number of nodes allocated at once when the allocator
 //!needs runs out of nodes
-template<class T, class SegmentManager, std::size_t NodesPerChunk>
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ >
 class node_allocator
+ /// @cond
+ : public detail::node_allocator_base
+ < 2
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ >
+ /// @endcond
 {
+
+ #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ typedef detail::node_allocator_base
+ < 2, T, SegmentManager, NodesPerChunk> base_t;
    public:
- typedef typename SegmentManager::void_pointer void_pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const void>::type cvoid_pointer;
- typedef SegmentManager segment_manager;
- typedef typename SegmentManager::
- mutex_family::mutex_type mutex_type;
- typedef node_allocator
- <T, SegmentManager, NodesPerChunk> self_t;
+ typedef detail::version_type<node_allocator, 2> version;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef node_allocator<T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ node_allocator(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
 
+ template<class T2>
+ node_allocator
+ (const node_allocator<T2, SegmentManager, NodesPerChunk> &other)
+ : base_t(other)
+ {}
+
+ #else //BOOST_INTERPROCESS_DOXYGEN_INVOKED
    public:
- //-------
- typedef typename detail::
- pointer_to_other<void_pointer, T>::type pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const T>::type const_pointer;
+ typedef implementation_defined::segment_manager segment_manager;
+ typedef segment_manager::void_pointer void_pointer;
+ typedef implementation_defined::pointer pointer;
+ typedef implementation_defined::const_pointer const_pointer;
    typedef T value_type;
    typedef typename detail::add_reference
                      <value_type>::type reference;
@@ -69,225 +265,170 @@
                      <const value_type>::type const_reference;
    typedef std::size_t size_type;
    typedef std::ptrdiff_t difference_type;
- typedef detail::shared_node_pool
- < SegmentManager, mutex_type
- , sizeof(T), NodesPerChunk> node_pool_t;
- typedef typename detail::
- pointer_to_other<void_pointer, node_pool_t>::type node_pool_ptr;
 
- //!Obtains node_allocator from other
+ //!Obtains node_allocator from
    //!node_allocator
    template<class T2>
    struct rebind
    {
- typedef node_allocator<T2, SegmentManager, NodesPerChunk> other;
+ typedef node_allocator<T2, SegmentManager, NodesPerChunk> other;
    };
 
- /// @cond
    private:
- //!Not assignable from related
- //!node_allocator
+ //!Not assignable from
+ //!related node_allocator
    template<class T2, class SegmentManager2, std::size_t N2>
    node_allocator& operator=
       (const node_allocator<T2, SegmentManager2, N2>&);
 
- //!Not assignable from other
- //!node_allocator
+ //!Not assignable from
+ //!other node_allocator
    node_allocator& operator=(const node_allocator&);
- /// @endcond
 
    public:
-
    //!Constructor from a segment manager. If not present, constructs a node
    //!pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
- node_allocator(segment_manager *segment_mngr)
- : mp_node_pool(priv_get_or_create(segment_mngr))
- {}
+ node_allocator(segment_manager *segment_mngr);
 
    //!Copy constructor from other node_allocator. Increments the reference
    //!count of the associated node pool. Never throws
- node_allocator(const node_allocator &other)
- : mp_node_pool(other.get_node_pool())
- { mp_node_pool->inc_ref_count(); }
+ node_allocator(const node_allocator &other);
 
    //!Copy constructor from related node_allocator. If not present, constructs
    //!a node pool. Increments the reference count of the associated node pool.
    //!Can throw boost::interprocess::bad_alloc
    template<class T2>
    node_allocator
- (const node_allocator<T2, SegmentManager, NodesPerChunk> &other)
- : mp_node_pool(priv_get_or_create(other.get_segment_manager()))
- {}
+ (const node_allocator<T2, SegmentManager, NodesPerChunk> &other);
 
    //!Destructor, removes node_pool_t from memory
    //!if its reference count reaches to zero. Never throws
- ~node_allocator()
- { priv_destroy_if_last_link(); }
+ ~node_allocator();
 
    //!Returns a pointer to the node pool.
    //!Never throws
- node_pool_t* get_node_pool() const
- { return detail::get_pointer(mp_node_pool); }
+ node_pool_t* get_node_pool() const;
 
    //!Returns the segment manager.
    //!Never throws
- segment_manager* get_segment_manager()const
- { return mp_node_pool->get_segment_manager(); }
+ segment_manager* get_segment_manager()const;
 
- //!Returns the number of elements that could be allocated. Never throws
- size_type max_size() const
- { return this->get_segment_manager()->get_size()/sizeof(value_type); }
+ //!Returns the number of elements that could be allocated.
+ //!Never throws
+ size_type max_size() const;
 
    //!Allocate memory for an array of count elements.
    //!Throws boost::interprocess::bad_alloc if there is no enough memory
- pointer allocate(size_type count, cvoid_pointer = 0)
- {
- if(count > ((size_type)-1)/sizeof(value_type))
- throw bad_alloc();
- return pointer(static_cast<T*>(mp_node_pool->allocate(count)));
- }
+ pointer allocate(size_type count, cvoid_pointer hint = 0);
 
    //!Deallocate allocated memory.
    //!Never throws
- void deallocate(const pointer &ptr, size_type count)
- { mp_node_pool->deallocate(detail::get_pointer(ptr), count); }
+ void deallocate(const pointer &ptr, size_type count);
 
- //!Deallocates all free chunks of the pool
- void deallocate_free_chunks()
- { mp_node_pool->deallocate_free_chunks(); }
+ //!Deallocates all free chunks
+ //!of the pool
+ void deallocate_free_chunks();
 
    //!Swaps allocators. Does not throw. If each allocator is placed in a
    //!different memory segment, the result is undefined.
- friend void swap(self_t &alloc1, self_t &alloc2)
- { detail::do_swap(alloc1.mp_node_pool, alloc2.mp_node_pool); }
-
- //These functions are obsolete. These are here to conserve
- //backwards compatibility with containers using them...
+ friend void swap(self_t &alloc1, self_t &alloc2);
 
    //!Returns address of mutable object.
    //!Never throws
- pointer address(reference value) const
- { return pointer(boost::addressof(value)); }
+ pointer address(reference value) const;
 
    //!Returns address of non mutable object.
    //!Never throws
- const_pointer address(const_reference value) const
- { return const_pointer(boost::addressof(value)); }
+ const_pointer address(const_reference value) const;
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
- void construct(const pointer &ptr)
- { new(detail::get_pointer(ptr)) value_type; }
+ //!Throws if T's default constructor throws
+ void construct(const pointer &ptr);
 
    //!Destroys object. Throws if object's
    //!destructor throws
- void destroy(const pointer &ptr)
- { BOOST_ASSERT(ptr != 0); (*ptr).~value_type(); }
-
- /// @cond
- private:
- //!Object function that creates the node allocator if it is not created and
- //!increments reference count if it is already created
- struct get_or_create_func
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type, sizeof(T), NodesPerChunk> node_pool_t;
-
- //!This connects or constructs the unique instance of node_pool_t
- //!Can throw boost::interprocess::bad_alloc
- void operator()()
- {
- //Find or create the node_pool_t
- mp_node_pool = mp_named_alloc->template find_or_construct
- <node_pool_t>(unique_instance)(mp_named_alloc);
- //If valid, increment link count
- if(mp_node_pool != 0)
- mp_node_pool->inc_ref_count();
- }
-
- //!Constructor. Initializes function
- //!object parameters
- get_or_create_func(segment_manager *hdr) : mp_named_alloc(hdr){}
-
- node_pool_t *mp_node_pool;
- segment_manager *mp_named_alloc;
- };
-
- //!Initialization function, creates an executes atomically the
- //!initialization object functions. Can throw boost::interprocess::bad_alloc
- node_pool_t *priv_get_or_create(segment_manager *named_alloc)
- {
- get_or_create_func func(named_alloc);
- named_alloc->atomic_func(func);
- return func.mp_node_pool;
- }
-
- //!Object function that decrements the reference count. If the count
- //!reaches to zero destroys the node allocator from memory.
- //!Never throws
- struct destroy_if_last_link_func
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk> node_pool_t;
-
- //!Decrements reference count and destroys the object if there is no
- //!more attached allocators. Never throws
- void operator()()
- {
- //If not the last link return
- if(mp_node_pool->dec_ref_count() != 0) return;
-
- //Last link, let's destroy the segment_manager
- mp_named_alloc->template destroy<node_pool_t>(unique_instance);
- }
-
- //!Constructor. Initializes function
- //!object parameters
- destroy_if_last_link_func(segment_manager *nhdr,
- node_pool_t *phdr)
- : mp_named_alloc(nhdr), mp_node_pool(phdr)
- {}
+ void destroy(const pointer &ptr);
 
- segment_manager *mp_named_alloc;
- node_pool_t *mp_node_pool;
- };
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const;
+
+ std::pair<pointer, bool>
+ allocation_command(allocation_type command,
+ size_type limit_size,
+ size_type preferred_size,
+ size_type &received_size, const pointer &reuse = 0);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements);
+
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it);
 
- //!Destruction function, initializes and executes destruction function
- //!object. Never throws
- void priv_destroy_if_last_link()
- {
- typedef detail::shared_node_pool
- <SegmentManager, mutex_type,sizeof(T), NodesPerChunk> node_pool_t;
- //Get segment manager
- segment_manager *named_segment_mngr = this->get_segment_manager();
- //Execute destruction functor atomically
- destroy_if_last_link_func func(named_segment_mngr, detail::get_pointer(mp_node_pool));
- named_segment_mngr->atomic_func(func);
- }
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate_one();
 
- private:
- node_pool_ptr mp_node_pool;
- /// @endcond
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ multiallocation_iterator allocate_individual(std::size_t num_elements);
+
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
+ void deallocate_one(const pointer &p);
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it);
+ #endif
 };
 
-//!Equality test for same type of
-//!node_allocator
-template<class T, class S, std::size_t NodesPerChunk> inline
-bool operator==(const node_allocator<T, S, NodesPerChunk> &alloc1,
- const node_allocator<T, S, NodesPerChunk> &alloc2)
- { return alloc1.get_node_pool() == alloc2.get_node_pool(); }
+#ifdef BOOST_INTERPROCESS_DOXYGEN_INVOKED
 
-//!Inequality test for same type of
-//!node_allocator
-template<class T, class S, std::size_t NodesPerChunk> inline
-bool operator!=(const node_allocator<T, S, NodesPerChunk> &alloc1,
- const node_allocator<T, S, NodesPerChunk> &alloc2)
- { return alloc1.get_node_pool() != alloc2.get_node_pool(); }
+//!Equality test for same type
+//!of node_allocator
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator==(const node_allocator<T, S, NodesPerChunk, F, OP> &alloc1,
+ const node_allocator<T, S, NodesPerChunk, F, OP> &alloc2);
+
+//!Inequality test for same type
+//!of node_allocator
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const node_allocator<T, S, NodesPerChunk, F, OP> &alloc1,
+ const node_allocator<T, S, NodesPerChunk, F, OP> &alloc2);
+
+#endif
 
 } //namespace interprocess {
 } //namespace boost {
 
 #include <boost/interprocess/detail/config_end.hpp>
 
-#endif //#ifndef BOOST_INTERPROCESS_POOLED_NODE_ALLOCATOR_HPP
+#endif //#ifndef BOOST_INTERPROCESS_NODE_ALLOCATOR_HPP

Modified: branches/proto/v3/boost/interprocess/allocators/private_adaptive_pool.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/private_adaptive_pool.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/private_adaptive_pool.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -30,38 +30,47 @@
 #include <cstddef>
 
 //!\file
-//!Describes private_adaptive_pool pooled shared memory STL compatible allocator
+//!Describes private_adaptive_pool_base pooled shared memory STL compatible allocator
 
 namespace boost {
 namespace interprocess {
 
-//!An STL node allocator that uses a segment manager as memory
-//!source. The internal pointer type will of the same type (raw, smart) as
-//!"typename SegmentManager::void_pointer" type. This allows
-//!placing the allocator in shared memory, memory mapped-files, etc...
-//!This allocator has its own node pool. NodesPerChunk is the minimum number of nodes
-//!allocated at once when the allocator needs runs out of nodes.
-template<class T, class SegmentManager, std::size_t NodesPerChunk, std::size_t MaxFreeChunks>
-class private_adaptive_pool
+/// @cond
+
+namespace detail {
+
+template < unsigned int Version
+ , class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
+ >
+class private_adaptive_pool_base
+ : public node_pool_allocation_impl
+ < private_adaptive_pool_base < Version, T, SegmentManager, NodesPerChunk
+ , MaxFreeChunks, OverheadPercent>
+ , Version
+ , T
+ , SegmentManager
+ >
 {
    /// @cond
    private:
    typedef typename SegmentManager::void_pointer void_pointer;
- typedef typename detail::
- pointer_to_other<void_pointer, const void>::type cvoid_pointer;
    typedef SegmentManager segment_manager;
- typedef typename detail::
- pointer_to_other<void_pointer, char>::type char_pointer;
- typedef typename detail::pointer_to_other
- <void_pointer, segment_manager>::type segment_mngr_ptr_t;
- typedef typename SegmentManager::
- mutex_family::mutex_type mutex_type;
- typedef private_adaptive_pool
- <T, SegmentManager, NodesPerChunk, MaxFreeChunks> self_t;
+ typedef private_adaptive_pool_base
+ < Version, T, SegmentManager, NodesPerChunk
+ , MaxFreeChunks, OverheadPercent> self_t;
    typedef detail::private_adaptive_node_pool
- <SegmentManager, sizeof(T)
- , NodesPerChunk, MaxFreeChunks> priv_node_pool_t;
+ <SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ > node_pool_t;
 
+ BOOST_STATIC_ASSERT((Version <=2));
 
    /// @endcond
 
@@ -77,120 +86,358 @@
                      <const value_type>::type const_reference;
    typedef std::size_t size_type;
    typedef std::ptrdiff_t difference_type;
+ typedef detail::version_type
+ <private_adaptive_pool_base, Version> version;
+ typedef transform_iterator
+ < typename SegmentManager::
+ multiallocation_iterator
+ , detail::cast_functor <T> > multiallocation_iterator;
+ typedef typename SegmentManager::
+ multiallocation_chain multiallocation_chain;
 
    //!Obtains node_allocator from other node_allocator
    template<class T2>
    struct rebind
    {
- typedef private_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks> other;
+ typedef private_adaptive_pool_base
+ <Version, T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
    };
 
    /// @cond
    private:
- //!Not assignable from related private_adaptive_pool
- template<class T2, class MemoryAlgorithm2, std::size_t N2, std::size_t F2>
- private_adaptive_pool& operator=
- (const private_adaptive_pool<T2, MemoryAlgorithm2, N2, F2>&);
+ //!Not assignable from related private_adaptive_pool_base
+ template<unsigned int Version2, class T2, class MemoryAlgorithm2, std::size_t N2, std::size_t F2, unsigned char OP2>
+ private_adaptive_pool_base& operator=
+ (const private_adaptive_pool_base<Version2, T2, MemoryAlgorithm2, N2, F2, OP2>&);
 
- //!Not assignable from other private_adaptive_pool
- private_adaptive_pool& operator=(const private_adaptive_pool&);
+ //!Not assignable from other private_adaptive_pool_base
+ private_adaptive_pool_base& operator=(const private_adaptive_pool_base&);
    /// @endcond
 
    public:
    //!Constructor from a segment manager
- private_adaptive_pool(segment_manager *segment_mngr)
+ private_adaptive_pool_base(segment_manager *segment_mngr)
       : m_node_pool(segment_mngr)
    {}
 
- //!Copy constructor from other private_adaptive_pool. Never throws
- private_adaptive_pool(const private_adaptive_pool &other)
+ //!Copy constructor from other private_adaptive_pool_base. Never throws
+ private_adaptive_pool_base(const private_adaptive_pool_base &other)
       : m_node_pool(other.get_segment_manager())
    {}
 
- //!Copy constructor from related private_adaptive_pool. Never throws.
+ //!Copy constructor from related private_adaptive_pool_base. Never throws.
    template<class T2>
- private_adaptive_pool
- (const private_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks> &other)
+ private_adaptive_pool_base
+ (const private_adaptive_pool_base
+ <Version, T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
       : m_node_pool(other.get_segment_manager())
    {}
 
    //!Destructor, frees all used memory. Never throws
- ~private_adaptive_pool()
+ ~private_adaptive_pool_base()
    {}
 
    //!Returns the segment manager. Never throws
    segment_manager* get_segment_manager()const
    { return m_node_pool.get_segment_manager(); }
 
- //!Returns the number of elements that could be allocated. Never throws
- size_type max_size() const
- { return this->get_segment_manager()/sizeof(value_type); }
-
- //!Allocate memory for an array of count elements.
- //!Throws boost::interprocess::bad_alloc if there is no enough memory
- pointer allocate(size_type count, cvoid_pointer hint = 0)
- {
- (void)hint;
- if(count > ((size_type)-1)/sizeof(value_type))
- throw bad_alloc();
- return pointer(static_cast<value_type*>(m_node_pool.allocate(count)));
- }
-
- //!Deallocate allocated memory. Never throws
- void deallocate(const pointer &ptr, size_type count)
- { m_node_pool.deallocate(detail::get_pointer(ptr), count); }
-
- //!Deallocates all free chunks of the pool
- void deallocate_free_chunks()
- { m_node_pool.deallocate_free_chunks(); }
+ //!Returns the internal node pool. Never throws
+ node_pool_t* get_node_pool() const
+ { return const_cast<node_pool_t*>(&m_node_pool); }
 
    //!Swaps allocators. Does not throw. If each allocator is placed in a
- //!different shared memory segments, the result is undefined.*/
+ //!different shared memory segments, the result is undefined.
    friend void swap(self_t &alloc1,self_t &alloc2)
    { alloc1.m_node_pool.swap(alloc2.m_node_pool); }
 
- //These functions are obsolete. These are here to conserve
- //backwards compatibility with containers using them...
+ /// @cond
+ private:
+ node_pool_t m_node_pool;
+ /// @endcond
+};
+
+//!Equality test for same type of private_adaptive_pool_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator==(const private_adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc1,
+ const private_adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc2)
+{ return &alloc1 == &alloc2; }
+
+//!Inequality test for same type of private_adaptive_pool_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const private_adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc1,
+ const private_adaptive_pool_base<V, T, S, NodesPerChunk, F, OP> &alloc2)
+{ return &alloc1 != &alloc2; }
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk = 64
+ , std::size_t MaxFreeChunks = 2
+ , unsigned char OverheadPercent = 5
+ >
+class private_adaptive_pool_v1
+ : public private_adaptive_pool_base
+ < 1
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+{
+ public:
+ typedef detail::private_adaptive_pool_base
+ < 1, T, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> base_t;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef private_adaptive_pool_v1<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ private_adaptive_pool_v1(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ private_adaptive_pool_v1
+ (const private_adaptive_pool_v1<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : base_t(other)
+ {}
+};
+
+} //namespace detail {
+
+/// @endcond
+
+//!An STL node allocator that uses a segment manager as memory
+//!source. The internal pointer type will of the same type (raw, smart) as
+//!"typename SegmentManager::void_pointer" type. This allows
+//!placing the allocator in shared memory, memory mapped-files, etc...
+//!This allocator has its own node pool.
+//!
+//!NodesPerChunk is the minimum number of nodes of nodes allocated at once when
+//!the allocator needs runs out of nodes. MaxFreeChunks is the maximum number of totally free chunks
+//!that the adaptive node pool will hold. The rest of the totally free chunks will be
+//!deallocated with the segment manager.
+//!
+//!OverheadPercent is the (approximated) maximum size overhead (1-20%) of the allocator:
+//!(memory usable for nodes / total memory allocated from the segment manager)
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ , std::size_t MaxFreeChunks
+ , unsigned char OverheadPercent
+ >
+class private_adaptive_pool
+ /// @cond
+ : public detail::private_adaptive_pool_base
+ < 2
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ , MaxFreeChunks
+ , OverheadPercent
+ >
+ /// @endcond
+{
+
+ #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ typedef detail::private_adaptive_pool_base
+ < 2, T, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> base_t;
+ public:
+ typedef detail::version_type<private_adaptive_pool, 2> version;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef private_adaptive_pool
+ <T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ private_adaptive_pool(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ private_adaptive_pool
+ (const private_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other)
+ : base_t(other)
+ {}
+
+ #else
+ public:
+ typedef implementation_defined::segment_manager segment_manager;
+ typedef segment_manager::void_pointer void_pointer;
+ typedef implementation_defined::pointer pointer;
+ typedef implementation_defined::const_pointer const_pointer;
+ typedef T value_type;
+ typedef typename detail::add_reference
+ <value_type>::type reference;
+ typedef typename detail::add_reference
+ <const value_type>::type const_reference;
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+
+ //!Obtains private_adaptive_pool from
+ //!private_adaptive_pool
+ template<class T2>
+ struct rebind
+ {
+ typedef private_adaptive_pool
+ <T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> other;
+ };
+
+ private:
+ //!Not assignable from
+ //!related private_adaptive_pool
+ template<class T2, class SegmentManager2, std::size_t N2, std::size_t F2, unsigned char OP2>
+ private_adaptive_pool& operator=
+ (const private_adaptive_pool<T2, SegmentManager2, N2, F2>&);
+
+ //!Not assignable from
+ //!other private_adaptive_pool
+ private_adaptive_pool& operator=(const private_adaptive_pool&);
+
+ public:
+ //!Constructor from a segment manager. If not present, constructs a node
+ //!pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ private_adaptive_pool(segment_manager *segment_mngr);
+
+ //!Copy constructor from other private_adaptive_pool. Increments the reference
+ //!count of the associated node pool. Never throws
+ private_adaptive_pool(const private_adaptive_pool &other);
+
+ //!Copy constructor from related private_adaptive_pool. If not present, constructs
+ //!a node pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ template<class T2>
+ private_adaptive_pool
+ (const private_adaptive_pool<T2, SegmentManager, NodesPerChunk, MaxFreeChunks, OverheadPercent> &other);
+
+ //!Destructor, removes node_pool_t from memory
+ //!if its reference count reaches to zero. Never throws
+ ~private_adaptive_pool();
+
+ //!Returns a pointer to the node pool.
+ //!Never throws
+ node_pool_t* get_node_pool() const;
+
+ //!Returns the segment manager.
+ //!Never throws
+ segment_manager* get_segment_manager()const;
+
+ //!Returns the number of elements that could be allocated.
+ //!Never throws
+ size_type max_size() const;
+
+ //!Allocate memory for an array of count elements.
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate(size_type count, cvoid_pointer hint = 0);
+
+ //!Deallocate allocated memory.
+ //!Never throws
+ void deallocate(const pointer &ptr, size_type count);
+
+ //!Deallocates all free chunks
+ //!of the pool
+ void deallocate_free_chunks();
+
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different memory segment, the result is undefined.
+ friend void swap(self_t &alloc1, self_t &alloc2);
 
    //!Returns address of mutable object.
    //!Never throws
- pointer address(reference value) const
- { return pointer(boost::addressof(value)); }
+ pointer address(reference value) const;
 
    //!Returns address of non mutable object.
    //!Never throws
- const_pointer address(const_reference value) const
- { return const_pointer(boost::addressof(value)); }
+ const_pointer address(const_reference value) const;
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
- void construct(const pointer &ptr)
- { new(detail::get_pointer(ptr)) value_type; }
+ //!Throws if T's default constructor throws
+ void construct(const pointer &ptr);
 
    //!Destroys object. Throws if object's
    //!destructor throws
- void destroy(const pointer &ptr)
- { BOOST_ASSERT(ptr != 0); (*ptr).~value_type(); }
+ void destroy(const pointer &ptr);
 
- /// @cond
- private:
- priv_node_pool_t m_node_pool;
- /// @endcond
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const;
+
+ std::pair<pointer, bool>
+ allocation_command(allocation_type command,
+ size_type limit_size,
+ size_type preferred_size,
+ size_type &received_size, const pointer &reuse = 0);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements);
+
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it);
+
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate_one();
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ multiallocation_iterator allocate_individual(std::size_t num_elements);
+
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
+ void deallocate_one(const pointer &p);
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it);
+ #endif
 };
 
-//!Equality test for same type of private_adaptive_pool
-template<class T, class S, std::size_t NodesPerChunk, std::size_t F> inline
-bool operator==(const private_adaptive_pool<T, S, NodesPerChunk, F> &alloc1,
- const private_adaptive_pool<T, S, NodesPerChunk, F> &alloc2)
-{ return &alloc1 == &alloc2; }
+#ifdef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+
+//!Equality test for same type
+//!of private_adaptive_pool
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator==(const private_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc1,
+ const private_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc2);
+
+//!Inequality test for same type
+//!of private_adaptive_pool
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const private_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc1,
+ const private_adaptive_pool<T, S, NodesPerChunk, F, OP> &alloc2);
 
-//!Inequality test for same type of private_adaptive_pool
-template<class T, class S, std::size_t NodesPerChunk, std::size_t F> inline
-bool operator!=(const private_adaptive_pool<T, S, NodesPerChunk, F> &alloc1,
- const private_adaptive_pool<T, S, NodesPerChunk, F> &alloc2)
-{
- return &alloc1 != &alloc2;
-}
+#endif
 
 } //namespace interprocess {
 } //namespace boost {

Modified: branches/proto/v3/boost/interprocess/allocators/private_node_allocator.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/allocators/private_node_allocator.hpp (original)
+++ branches/proto/v3/boost/interprocess/allocators/private_node_allocator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,13 +1,13 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
 // See http://www.boost.org/libs/interprocess for documentation.
 //
 //////////////////////////////////////////////////////////////////////////////
-
+/*
 #ifndef BOOST_INTERPROCESS_PRIVATE_NODE_ALLOCATOR_HPP
 #define BOOST_INTERPROCESS_PRIVATE_NODE_ALLOCATOR_HPP
 
@@ -50,12 +50,8 @@
    typedef typename detail::
       pointer_to_other<void_pointer, const void>::type cvoid_pointer;
    typedef SegmentManager segment_manager;
- typedef typename detail::
- pointer_to_other<void_pointer, char>::type char_pointer;
    typedef typename detail::pointer_to_other
       <void_pointer, segment_manager>::type segment_mngr_ptr_t;
- typedef typename SegmentManager::
- mutex_family::mutex_type mutex_type;
    typedef private_node_allocator
       <T, SegmentManager, NodesPerChunk> self_t;
    typedef detail::private_node_pool
@@ -128,21 +124,30 @@
    pointer allocate(size_type count, cvoid_pointer hint = 0)
    {
       (void)hint;
- if(count > ((size_type)-1)/sizeof(value_type))
+ if(count > this->max_size())
          throw bad_alloc();
- return pointer(static_cast<value_type*>(m_node_pool.allocate(count)));
+ else if(count == 1)
+ return pointer(static_cast<value_type*>(m_node_pool.allocate_node()));
+ else
+ return pointer(static_cast<value_type*>
+ (m_node_pool.get_segment_manager()->allocate(sizeof(T)*count)));
    }
 
    //!Deallocate allocated memory. Never throws
    void deallocate(const pointer &ptr, size_type count)
- { m_node_pool.deallocate(detail::get_pointer(ptr), count); }
+ {
+ if(count == 1)
+ m_node_pool.deallocate_node(detail::get_pointer(ptr));
+ else
+ m_node_pool.get_segment_manager()->deallocate(detail::get_pointer(ptr));
+ }
 
    //!Deallocates all free chunks of the pool
    void deallocate_free_chunks()
    { m_node_pool.deallocate_free_chunks(); }
 
    //!Swaps allocators. Does not throw. If each allocator is placed in a
- //!different shared memory segments, the result is undefined.*/
+ //!different shared memory segments, the result is undefined.
    friend void swap(self_t &alloc1,self_t &alloc2)
    { alloc1.m_node_pool.swap(alloc2.m_node_pool); }
 
@@ -160,7 +165,7 @@
    { return const_pointer(boost::addressof(value)); }
 
    //!Default construct an object.
- //!Throws if T's default constructor throws*/
+ //!Throws if T's default constructor throws
    void construct(const pointer &ptr)
    { new(detail::get_pointer(ptr)) value_type; }
 
@@ -196,3 +201,432 @@
 
 #endif //#ifndef BOOST_INTERPROCESS_PRIVATE_NODE_ALLOCATOR_HPP
 
+*/
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/interprocess for documentation.
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef BOOST_INTERPROCESS_PRIVATE_NODE_ALLOCATOR_HPP
+#define BOOST_INTERPROCESS_PRIVATE_NODE_ALLOCATOR_HPP
+
+#if (defined _MSC_VER) && (_MSC_VER >= 1200)
+# pragma once
+#endif
+
+#include <boost/interprocess/detail/config_begin.hpp>
+#include <boost/interprocess/detail/workaround.hpp>
+
+#include <boost/interprocess/interprocess_fwd.hpp>
+#include <boost/assert.hpp>
+#include <boost/utility/addressof.hpp>
+#include <boost/interprocess/allocators/detail/node_pool.hpp>
+#include <boost/interprocess/exceptions.hpp>
+#include <boost/interprocess/detail/utilities.hpp>
+#include <boost/interprocess/detail/workaround.hpp>
+#include <memory>
+#include <algorithm>
+#include <cstddef>
+
+//!\file
+//!Describes private_node_allocator_base pooled shared memory STL compatible allocator
+
+namespace boost {
+namespace interprocess {
+
+/// @cond
+
+namespace detail {
+
+template < unsigned int Version
+ , class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ >
+class private_node_allocator_base
+ : public node_pool_allocation_impl
+ < private_node_allocator_base < Version, T, SegmentManager, NodesPerChunk>
+ , Version
+ , T
+ , SegmentManager
+ >
+{
+ /// @cond
+ private:
+ typedef typename SegmentManager::void_pointer void_pointer;
+ typedef SegmentManager segment_manager;
+ typedef private_node_allocator_base
+ < Version, T, SegmentManager, NodesPerChunk> self_t;
+ typedef detail::private_node_pool
+ <SegmentManager
+ , sizeof(T)
+ , NodesPerChunk
+ > node_pool_t;
+
+ BOOST_STATIC_ASSERT((Version <=2));
+
+ /// @endcond
+
+ public:
+ typedef typename detail::
+ pointer_to_other<void_pointer, T>::type pointer;
+ typedef typename detail::
+ pointer_to_other<void_pointer, const T>::type const_pointer;
+ typedef T value_type;
+ typedef typename detail::add_reference
+ <value_type>::type reference;
+ typedef typename detail::add_reference
+ <const value_type>::type const_reference;
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef detail::version_type
+ <private_node_allocator_base, Version> version;
+ typedef transform_iterator
+ < typename SegmentManager::
+ multiallocation_iterator
+ , detail::cast_functor <T> > multiallocation_iterator;
+ typedef typename SegmentManager::
+ multiallocation_chain multiallocation_chain;
+
+ //!Obtains node_allocator from other node_allocator
+ template<class T2>
+ struct rebind
+ {
+ typedef private_node_allocator_base
+ <Version, T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ /// @cond
+ private:
+ //!Not assignable from related private_node_allocator_base
+ template<unsigned int Version2, class T2, class MemoryAlgorithm2, std::size_t N2>
+ private_node_allocator_base& operator=
+ (const private_node_allocator_base<Version2, T2, MemoryAlgorithm2, N2>&);
+
+ //!Not assignable from other private_node_allocator_base
+ private_node_allocator_base& operator=(const private_node_allocator_base&);
+ /// @endcond
+
+ public:
+ //!Constructor from a segment manager
+ private_node_allocator_base(segment_manager *segment_mngr)
+ : m_node_pool(segment_mngr)
+ {}
+
+ //!Copy constructor from other private_node_allocator_base. Never throws
+ private_node_allocator_base(const private_node_allocator_base &other)
+ : m_node_pool(other.get_segment_manager())
+ {}
+
+ //!Copy constructor from related private_node_allocator_base. Never throws.
+ template<class T2>
+ private_node_allocator_base
+ (const private_node_allocator_base
+ <Version, T2, SegmentManager, NodesPerChunk> &other)
+ : m_node_pool(other.get_segment_manager())
+ {}
+
+ //!Destructor, frees all used memory. Never throws
+ ~private_node_allocator_base()
+ {}
+
+ //!Returns the segment manager. Never throws
+ segment_manager* get_segment_manager()const
+ { return m_node_pool.get_segment_manager(); }
+
+ //!Returns the internal node pool. Never throws
+ node_pool_t* get_node_pool() const
+ { return const_cast<node_pool_t*>(&m_node_pool); }
+
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different shared memory segments, the result is undefined.
+ friend void swap(self_t &alloc1,self_t &alloc2)
+ { alloc1.m_node_pool.swap(alloc2.m_node_pool); }
+
+ /// @cond
+ private:
+ node_pool_t m_node_pool;
+ /// @endcond
+};
+
+//!Equality test for same type of private_node_allocator_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk> inline
+bool operator==(const private_node_allocator_base<V, T, S, NodesPerChunk> &alloc1,
+ const private_node_allocator_base<V, T, S, NodesPerChunk> &alloc2)
+{ return &alloc1 == &alloc2; }
+
+//!Inequality test for same type of private_node_allocator_base
+template<unsigned int V, class T, class S, std::size_t NodesPerChunk> inline
+bool operator!=(const private_node_allocator_base<V, T, S, NodesPerChunk> &alloc1,
+ const private_node_allocator_base<V, T, S, NodesPerChunk> &alloc2)
+{ return &alloc1 != &alloc2; }
+
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk = 64
+ >
+class private_node_allocator_v1
+ : public private_node_allocator_base
+ < 1
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ >
+{
+ public:
+ typedef detail::private_node_allocator_base
+ < 1, T, SegmentManager, NodesPerChunk> base_t;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef private_node_allocator_v1<T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ private_node_allocator_v1(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ private_node_allocator_v1
+ (const private_node_allocator_v1<T2, SegmentManager, NodesPerChunk> &other)
+ : base_t(other)
+ {}
+};
+
+} //namespace detail {
+
+/// @endcond
+
+//!An STL node allocator that uses a segment manager as memory
+//!source. The internal pointer type will of the same type (raw, smart) as
+//!"typename SegmentManager::void_pointer" type. This allows
+//!placing the allocator in shared memory, memory mapped-files, etc...
+//!This allocator has its own node pool. NodesPerChunk is the number of nodes allocated
+//!at once when the allocator needs runs out of nodes
+template < class T
+ , class SegmentManager
+ , std::size_t NodesPerChunk
+ >
+class private_node_allocator
+ /// @cond
+ : public detail::private_node_allocator_base
+ < 2
+ , T
+ , SegmentManager
+ , NodesPerChunk
+ >
+ /// @endcond
+{
+
+ #ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+ typedef detail::private_node_allocator_base
+ < 2, T, SegmentManager, NodesPerChunk> base_t;
+ public:
+ typedef detail::version_type<private_node_allocator, 2> version;
+
+ template<class T2>
+ struct rebind
+ {
+ typedef private_node_allocator
+ <T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ private_node_allocator(SegmentManager *segment_mngr)
+ : base_t(segment_mngr)
+ {}
+
+ template<class T2>
+ private_node_allocator
+ (const private_node_allocator<T2, SegmentManager, NodesPerChunk> &other)
+ : base_t(other)
+ {}
+
+ #else
+ public:
+ typedef implementation_defined::segment_manager segment_manager;
+ typedef segment_manager::void_pointer void_pointer;
+ typedef implementation_defined::pointer pointer;
+ typedef implementation_defined::const_pointer const_pointer;
+ typedef T value_type;
+ typedef typename detail::add_reference
+ <value_type>::type reference;
+ typedef typename detail::add_reference
+ <const value_type>::type const_reference;
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+
+ //!Obtains private_node_allocator from
+ //!private_node_allocator
+ template<class T2>
+ struct rebind
+ {
+ typedef private_node_allocator
+ <T2, SegmentManager, NodesPerChunk> other;
+ };
+
+ private:
+ //!Not assignable from
+ //!related private_node_allocator
+ template<class T2, class SegmentManager2, std::size_t N2>
+ private_node_allocator& operator=
+ (const private_node_allocator<T2, SegmentManager2, N2>&);
+
+ //!Not assignable from
+ //!other private_node_allocator
+ private_node_allocator& operator=(const private_node_allocator&);
+
+ public:
+ //!Constructor from a segment manager. If not present, constructs a node
+ //!pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ private_node_allocator(segment_manager *segment_mngr);
+
+ //!Copy constructor from other private_node_allocator. Increments the reference
+ //!count of the associated node pool. Never throws
+ private_node_allocator(const private_node_allocator &other);
+
+ //!Copy constructor from related private_node_allocator. If not present, constructs
+ //!a node pool. Increments the reference count of the associated node pool.
+ //!Can throw boost::interprocess::bad_alloc
+ template<class T2>
+ private_node_allocator
+ (const private_node_allocator<T2, SegmentManager, NodesPerChunk> &other);
+
+ //!Destructor, removes node_pool_t from memory
+ //!if its reference count reaches to zero. Never throws
+ ~private_node_allocator();
+
+ //!Returns a pointer to the node pool.
+ //!Never throws
+ node_pool_t* get_node_pool() const;
+
+ //!Returns the segment manager.
+ //!Never throws
+ segment_manager* get_segment_manager()const;
+
+ //!Returns the number of elements that could be allocated.
+ //!Never throws
+ size_type max_size() const;
+
+ //!Allocate memory for an array of count elements.
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate(size_type count, cvoid_pointer hint = 0);
+
+ //!Deallocate allocated memory.
+ //!Never throws
+ void deallocate(const pointer &ptr, size_type count);
+
+ //!Deallocates all free chunks
+ //!of the pool
+ void deallocate_free_chunks();
+
+ //!Swaps allocators. Does not throw. If each allocator is placed in a
+ //!different memory segment, the result is undefined.
+ friend void swap(self_t &alloc1, self_t &alloc2);
+
+ //!Returns address of mutable object.
+ //!Never throws
+ pointer address(reference value) const;
+
+ //!Returns address of non mutable object.
+ //!Never throws
+ const_pointer address(const_reference value) const;
+
+ //!Default construct an object.
+ //!Throws if T's default constructor throws
+ void construct(const pointer &ptr);
+
+ //!Destroys object. Throws if object's
+ //!destructor throws
+ void destroy(const pointer &ptr);
+
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold. This size only works for memory allocated with
+ //!allocate, allocation_command and allocate_many.
+ size_type size(const pointer &p) const;
+
+ std::pair<pointer, bool>
+ allocation_command(allocation_type command,
+ size_type limit_size,
+ size_type preferred_size,
+ size_type &received_size, const pointer &reuse = 0);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ multiallocation_iterator allocate_many(size_type elem_size, std::size_t num_elements);
+
+ //!Allocates n_elements elements, each one of size elem_sizes[i]in a
+ //!contiguous chunk
+ //!of memory. The elements must be deallocated
+ multiallocation_iterator allocate_many(const size_type *elem_sizes, size_type n_elements);
+
+ //!Allocates many elements of size elem_size in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. The elements must be deallocated
+ //!with deallocate(...)
+ void deallocate_many(multiallocation_iterator it);
+
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
+ pointer allocate_one();
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ multiallocation_iterator allocate_individual(std::size_t num_elements);
+
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
+ void deallocate_one(const pointer &p);
+
+ //!Allocates many elements of size == 1 in a contiguous chunk
+ //!of memory. The minimum number to be allocated is min_elements,
+ //!the preferred and maximum number is
+ //!preferred_elements. The number of actually allocated elements is
+ //!will be assigned to received_size. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ void deallocate_individual(multiallocation_iterator it);
+ #endif
+};
+
+#ifdef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+
+//!Equality test for same type
+//!of private_node_allocator
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator==(const private_node_allocator<T, S, NodesPerChunk, F, OP> &alloc1,
+ const private_node_allocator<T, S, NodesPerChunk, F, OP> &alloc2);
+
+//!Inequality test for same type
+//!of private_node_allocator
+template<class T, class S, std::size_t NodesPerChunk, std::size_t F, unsigned char OP> inline
+bool operator!=(const private_node_allocator<T, S, NodesPerChunk, F, OP> &alloc1,
+ const private_node_allocator<T, S, NodesPerChunk, F, OP> &alloc2);
+
+#endif
+
+} //namespace interprocess {
+} //namespace boost {
+
+#include <boost/interprocess/detail/config_end.hpp>
+
+#endif //#ifndef BOOST_INTERPROCESS_PRIVATE_NODE_ALLOCATOR_HPP
+

Modified: branches/proto/v3/boost/interprocess/containers/deque.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/deque.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/deque.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1359,9 +1359,9 @@
       size_type new_nodes = (new_elems + this->s_buffer_size() - 1) /
                               this->s_buffer_size();
       this->priv_reserve_map_at_front(new_nodes);
- size_type i;
+ size_type i = 1;
       BOOST_TRY {
- for (i = 1; i <= new_nodes; ++i)
+ for (; i <= new_nodes; ++i)
             *(this->members_.m_start.m_node - i) = this->priv_allocate_node();
       }
       BOOST_CATCH(...) {
@@ -1453,6 +1453,7 @@
          for(;first2 != mid2; ++first2){
             detail::get_pointer(&*first2)->~value_type();
          }
+ BOOST_RETHROW
       }
       BOOST_CATCH_END
    }

Modified: branches/proto/v3/boost/interprocess/containers/detail/flat_tree.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/detail/flat_tree.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/detail/flat_tree.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/containers/detail/node_alloc_holder.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/detail/node_alloc_holder.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/detail/node_alloc_holder.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -74,6 +74,9 @@
    typedef detail::integral_constant<unsigned,
       boost::interprocess::detail::
          version<NodeAlloc>::value> alloc_version;
+ typedef typename ICont::iterator icont_iterator;
+ typedef typename ICont::const_iterator icont_citerator;
+ typedef allocator_destroyer<NodeAlloc> Destroyer;
 
    node_alloc_holder(const ValAlloc &a)
       : members_(a)
@@ -173,7 +176,7 @@
       BOOST_CATCH(...){
          valueptr->first.~first_type();
          static_cast<hook_type*>(nodeptr)->~hook_type();
- throw;
+ BOOST_RETHROW
       }
       BOOST_CATCH_END
    }
@@ -198,7 +201,7 @@
       BOOST_CATCH(...){
          valueptr->first.~first_type();
          static_cast<hook_type*>(nodeptr)->~hook_type();
- throw;
+ BOOST_RETHROW
       }
       BOOST_CATCH_END
    }
@@ -292,18 +295,42 @@
          if(constructed){
             this->destroy(p);
          }
- this->deallocate_one(p);
- multiallocation_iterator itend;
- while(itbeg != itend){
- Node *n = &*itbeg;
- ++itbeg;
- this->deallocate_one(n);
- }
+ this->node_alloc().deallocate_many(itbeg);
+ BOOST_RETHROW
       }
       BOOST_CATCH_END
       return beg;
    }
 
+ void clear(allocator_v1)
+ { this->icont().clear_and_dispose(Destroyer(this->node_alloc())); }
+
+ void clear(allocator_v2)
+ {
+ allocator_multialloc_chain_node_deallocator<NodeAlloc> chain_holder(this->node_alloc());
+ this->icont().clear_and_dispose(chain_holder.get_chain_builder());
+ }
+
+ icont_iterator erase_range(icont_iterator first, icont_iterator last, allocator_v1)
+ { return this->icont().erase_and_dispose(first, last, Destroyer(this->node_alloc())); }
+
+ icont_iterator erase_range(icont_iterator first, icont_iterator last, allocator_v2)
+ {
+ allocator_multialloc_chain_node_deallocator<NodeAlloc> chain_holder(this->node_alloc());
+ return this->icont().erase_and_dispose(first, last, chain_holder.get_chain_builder());
+ }
+
+ template<class Key, class Comparator>
+ size_type erase_key(const Key& k, const Comparator &comp, allocator_v1)
+ { return this->icont().erase_and_dispose(k, comp, Destroyer(this->node_alloc())); }
+
+ template<class Key, class Comparator>
+ size_type erase_key(const Key& k, const Comparator &comp, allocator_v2)
+ {
+ allocator_multialloc_chain_node_deallocator<NodeAlloc> chain_holder(this->node_alloc());
+ return this->icont().erase_and_dispose(k, comp, chain_holder.get_chain_builder());
+ }
+
    protected:
    struct cloner
    {
@@ -359,10 +386,10 @@
    { return this->members_.m_icont; }
 
    NodeAlloc &node_alloc()
- { return this->members_; }
+ { return static_cast<NodeAlloc &>(this->members_); }
 
    const NodeAlloc &node_alloc() const
- { return this->members_; }
+ { return static_cast<const NodeAlloc &>(this->members_); }
 };
 
 } //namespace detail {

Modified: branches/proto/v3/boost/interprocess/containers/detail/tree.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/detail/tree.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/detail/tree.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -732,13 +732,13 @@
    { return iterator(this->icont().erase_and_dispose(position.get(), Destroyer(this->node_alloc()))); }
 
    size_type erase(const key_type& k)
- { return this->icont().erase_and_dispose(k, KeyNodeCompare(value_comp()), Destroyer(this->node_alloc())); }
+ { return AllocHolder::erase_key(k, KeyNodeCompare(value_comp()), alloc_version()); }
 
    iterator erase(const_iterator first, const_iterator last)
- { return iterator(this->icont().erase_and_dispose(first.get(), last.get(), Destroyer(this->node_alloc()))); }
+ { return iterator(AllocHolder::erase_range(first.get(), last.get(), alloc_version())); }
 
    void clear()
- { this->icont().clear_and_dispose(Destroyer(this->node_alloc())); }
+ { AllocHolder::clear(alloc_version()); }
 
    // set operations:
    iterator find(const key_type& k)

Modified: branches/proto/v3/boost/interprocess/containers/flat_map.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/flat_map.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/flat_map.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/containers/flat_set.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/flat_set.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/flat_set.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/containers/list.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/list.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/list.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -404,7 +404,7 @@
    //!
    //! <b>Complexity</b>: Linear to the number of elements in the list.
    void clear()
- { this->icont().clear_and_dispose(Destroyer(this->node_alloc())); }
+ { AllocHolder::clear(alloc_version()); }
 
    //! <b>Effects</b>: Returns an iterator to the first element contained in the list.
    //!
@@ -786,7 +786,7 @@
    //!
    //! <b>Complexity</b>: Linear to the distance between first and last.
    iterator erase(iterator first, iterator last)
- { return iterator(this->icont().erase_and_dispose(first.get(), last.get(), Destroyer(this->node_alloc()))); }
+ { return iterator(AllocHolder::erase_range(first.get(), last.get(), alloc_version())); }
 
    //! <b>Effects</b>: Assigns the n copies of val to *this.
    //!
@@ -1085,6 +1085,7 @@
 
    /// @cond
    private:
+
    //Iterator range version
    template<class InpIterator>
    void priv_create_and_insert_nodes
@@ -1160,7 +1161,7 @@
 
    template<class Integer>
    void priv_insert_dispatch(iterator p, Integer n, Integer x, detail::true_)
- { this->priv_create_and_insert_nodes(p, n, x); }
+ { this->insert(p, (size_type)n, x); }
 
    void priv_fill_assign(size_type n, const T& val)
    {

Modified: branches/proto/v3/boost/interprocess/containers/map.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/map.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/map.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/containers/set.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/set.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/set.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/containers/slist.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/slist.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/slist.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2004-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2004-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -8,7 +8,7 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 //
-// This file comes from SGI's stl_slist.h file. Modified by Ion Gaztanaga 2004-2007
+// This file comes from SGI's stl_slist.h file. Modified by Ion Gaztanaga 2004-2008
 // Renaming, isolating and porting to generic algorithms. Pointer typedef
 // set to allocator::pointer to allow placing it in shared memory.
 //
@@ -347,7 +347,7 @@
    slist(InpIt first, InpIt last,
          const allocator_type& a = allocator_type())
       : AllocHolder(a)
- { this->insert_after(this->end_node(), first, last); }
+ { this->insert_after(this->before_begin(), first, last); }
 
    //! <b>Effects</b>: Copy constructs a list.
    //!
@@ -804,7 +804,7 @@
    //! <b>Complexity</b>: Linear to the difference between size() and new_size.
    void resize(size_type new_size, const T& x)
    {
- typename Icont::iterator end_n(this->icont().end()), cur(end_n), cur_next;
+ typename Icont::iterator end_n(this->icont().end()), cur(this->icont().before_begin()), cur_next;
       while (++(cur_next = cur) != end_n && new_size > 0){
          --new_size;
          cur = cur_next;
@@ -823,7 +823,7 @@
    //! <b>Complexity</b>: Linear to the difference between size() and new_size.
    void resize(size_type new_size)
    {
- typename Icont::iterator end_n(this->icont().end()), cur(end_n), cur_next;
+ typename Icont::iterator end_n(this->icont().end()), cur(this->icont().before_begin()), cur_next;
       size_type len = this->size();
       size_type left = new_size;
       
@@ -835,7 +835,7 @@
          this->erase_after(iterator(cur), iterator(end_n));
       }
       else{
- this->priv_create_and_insert_nodes(this->end(), new_size - len);
+ this->priv_create_and_insert_nodes(iterator(cur), new_size - len);
       }
    }
 
@@ -1252,9 +1252,9 @@
 
    void priv_fill_assign(size_type n, const T& val)
    {
- iterator end_n(end());
- iterator prev(before_begin());
- iterator node(begin());
+ iterator end_n(this->end());
+ iterator prev(this->before_begin());
+ iterator node(this->begin());
       for ( ; node != end_n && n > 0 ; --n){
          *node = val;
          prev = node;
@@ -1274,9 +1274,9 @@
    void priv_assign_dispatch(InpIt first, InpIt last,
                            detail::false_)
    {
- iterator end_n(end());
- iterator prev(before_begin());
- iterator node(begin());
+ iterator end_n(this->end());
+ iterator prev(this->before_begin());
+ iterator node(this->begin());
       while (node != end_n && first != last){
          *node = *first;
          prev = node;
@@ -1295,7 +1295,7 @@
 
    template <class InIter>
    void priv_insert_after_range_dispatch(iterator prev_pos, InIter first, InIter last, detail::false_)
- { return priv_create_and_insert_nodes(prev_pos, first, last); }
+ { this->priv_create_and_insert_nodes(prev_pos, first, last); }
 
    //Functors for member algorithm defaults
    struct value_less

Modified: branches/proto/v3/boost/interprocess/containers/string.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/string.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/string.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -8,7 +8,7 @@
 //
 //////////////////////////////////////////////////////////////////////////////
 //
-// This file comes from SGI's string file. Modified by Ion Gaztanaga 2004-2007
+// This file comes from SGI's string file. Modified by Ion Gaztanaga 2004-2008
 // Renaming, isolating and porting to generic algorithms. Pointer typedef
 // set to allocator::pointer to allow placing it in shared memory.
 //
@@ -1684,7 +1684,7 @@
          for (; constructed--; ++dest_init){
             this->destroy(dest_init);
          }
- BOOST_RETHROW;
+ BOOST_RETHROW
       }
       BOOST_CATCH_END
       return (constructed);

Modified: branches/proto/v3/boost/interprocess/containers/vector.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/containers/vector.hpp (original)
+++ branches/proto/v3/boost/interprocess/containers/vector.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -731,7 +731,7 @@
          //There is not enough memory, allocate a new
          //buffer or expand the old one.
          bool same_buffer_start;
- size_type real_cap;
+ size_type real_cap = 0;
          std::pair<pointer, bool> ret =
             this->allocation_command
                (allocate_new | expand_fwd | expand_bwd,
@@ -740,6 +740,9 @@
          //Check for forward expansion
          same_buffer_start = ret.second && this->members_.m_start == ret.first;
          if(same_buffer_start){
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ ++this->num_expand_fwd;
+ #endif
             this->members_.m_capacity = real_cap;
          }
          //If there is no forward expansion, move objects
@@ -748,6 +751,9 @@
             copy_move_it dummy_it(detail::get_pointer(this->members_.m_start));
             //Backwards (and possibly forward) expansion
             if(ret.second){
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ ++this->num_expand_bwd;
+ #endif
                this->priv_range_insert_expand_backwards
                   ( detail::get_pointer(ret.first)
                   , real_cap
@@ -758,6 +764,9 @@
             }
             //New buffer
             else{
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ ++this->num_alloc;
+ #endif
                this->priv_range_insert_new_allocation
                   ( detail::get_pointer(ret.first)
                   , real_cap
@@ -1184,11 +1193,17 @@
          
          //If we had room or we have expanded forward
          if (same_buffer_start){
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ ++this->num_expand_fwd;
+ #endif
             this->priv_range_insert_expand_forward
                (detail::get_pointer(pos), first, last, n);
          }
          //Backwards (and possibly forward) expansion
          else if(ret.second){
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ ++this->num_expand_bwd;
+ #endif
             this->priv_range_insert_expand_backwards
                ( detail::get_pointer(ret.first)
                , real_cap
@@ -1199,6 +1214,9 @@
          }
          //New buffer
          else{
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ ++this->num_alloc;
+ #endif
             this->priv_range_insert_new_allocation
                ( detail::get_pointer(ret.first)
                , real_cap
@@ -1778,6 +1796,15 @@
       if (n >= size())
          throw std::out_of_range("vector::at");
    }
+
+ #ifdef BOOST_INTERPROCESS_VECTOR_ALLOC_STATS
+ public:
+ unsigned int num_expand_fwd;
+ unsigned int num_expand_bwd;
+ unsigned int num_alloc;
+ void reset_alloc_stats()
+ { num_expand_fwd = num_expand_bwd = num_alloc = 0; }
+ #endif
    /// @endcond
 };
 

Modified: branches/proto/v3/boost/interprocess/creation_tags.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/creation_tags.hpp (original)
+++ branches/proto/v3/boost/interprocess/creation_tags.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/algorithms.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/algorithms.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/algorithms.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 //
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at
@@ -92,7 +92,7 @@
       for (; new_count--; ++dest_init){
          detail::get_pointer(&*dest_init)->~value_type();
       }
- BOOST_RETHROW;
+ BOOST_RETHROW
    }
    BOOST_CATCH_END
    return first;

Modified: branches/proto/v3/boost/interprocess/detail/atomic.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/atomic.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/atomic.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2006-2007
+// (C) Copyright Ion Gaztanaga 2006-2008
 // (C) Copyright Markus Schoepflin 2007
 //
 // Distributed under the Boost Software License, Version 1.0. (See

Modified: branches/proto/v3/boost/interprocess/detail/cast_tags.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/cast_tags.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/cast_tags.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/config_begin.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/config_begin.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/config_begin.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,6 +9,7 @@
    #define _CRT_SECURE_NO_DEPRECATE
    #endif
    #pragma warning (push)
+ #pragma warning (disable : 4702) // unreachable code
    #pragma warning (disable : 4706) // assignment within conditional expression
    #pragma warning (disable : 4127) // conditional expression is constant
    #pragma warning (disable : 4146) // unary minus operator applied to unsigned type, result still unsigned

Modified: branches/proto/v3/boost/interprocess/detail/in_place_interface.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/in_place_interface.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/in_place_interface.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/interprocess_tester.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/interprocess_tester.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/interprocess_tester.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2007-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/iterators.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/iterators.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/iterators.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 // (C) Copyright Gennaro Prota 2003 - 2004.
 //
 // Distributed under the Boost Software License, Version 1.0.
@@ -428,6 +428,12 @@
       operator->() const
    { return operator_arrow_proxy<typename UnaryFunction::result_type>(dereference()); }
 
+ Iterator & base()
+ { return m_it; }
+
+ const Iterator & base() const
+ { return m_it; }
+
    private:
    Iterator m_it;
 

Modified: branches/proto/v3/boost/interprocess/detail/managed_memory_impl.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/managed_memory_impl.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/managed_memory_impl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/managed_open_or_create_impl.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/managed_open_or_create_impl.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/managed_open_or_create_impl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -332,7 +332,8 @@
 
             //If the following throws, we will truncate the file to 1
             mapped_region region(dev, read_write, 0, 0, addr);
- boost::uint32_t *patomic_word = static_cast<boost::uint32_t*>(region.get_address());
+ boost::uint32_t *patomic_word = 0; //avoid gcc warning
+ patomic_word = static_cast<boost::uint32_t*>(region.get_address());
             boost::uint32_t previous = detail::atomic_cas32(patomic_word, InitializingSegment, UninitializedSegment);
 
             if(previous == UninitializedSegment){

Modified: branches/proto/v3/boost/interprocess/detail/math_functions.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/math_functions.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/math_functions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 //////////////////////////////////////////////////////////////////////////////
 //
 // (C) Copyright Stephen Cleary 2000.
-// (C) Copyright Ion Gaztanaga 2007.
+// (C) Copyright Ion Gaztanaga 2007-2008.
 //
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/proto/v3/boost/interprocess/detail/min_max.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/min_max.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/min_max.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 //
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/proto/v3/boost/interprocess/detail/mpl.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/mpl.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/mpl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 //
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/proto/v3/boost/interprocess/detail/named_proxy.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/named_proxy.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/named_proxy.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/os_file_functions.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/os_file_functions.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/os_file_functions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/os_thread_functions.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/os_thread_functions.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/os_thread_functions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/pointer_type.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/pointer_type.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/pointer_type.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 // (C) Copyright Gennaro Prota 2003 - 2004.
 //
 // Distributed under the Boost Software License, Version 1.0.

Modified: branches/proto/v3/boost/interprocess/detail/posix_time_types_wrk.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/posix_time_types_wrk.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/posix_time_types_wrk.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/segment_manager_helper.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/segment_manager_helper.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/segment_manager_helper.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -210,7 +210,7 @@
    BOOST_CATCH(...){
       std::size_t destroyed = 0;
       table.destroy_n(mem, constructed, destroyed);
- BOOST_RETHROW;
+ BOOST_RETHROW
    }
    BOOST_CATCH_END
 }

Modified: branches/proto/v3/boost/interprocess/detail/tmp_dir_helpers.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/tmp_dir_helpers.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/tmp_dir_helpers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2007-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/type_traits.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/type_traits.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/type_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 // (C) Copyright John Maddock 2000.
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 //
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/proto/v3/boost/interprocess/detail/utilities.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/utilities.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/utilities.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2008.
 // (C) Copyright Gennaro Prota 2003 - 2004.
 //
 // Distributed under the Boost Software License, Version 1.0.
@@ -25,6 +25,9 @@
 #include <boost/interprocess/detail/move.hpp>
 #include <boost/type_traits/has_trivial_destructor.hpp>
 #include <boost/interprocess/detail/min_max.hpp>
+#include <boost/interprocess/detail/type_traits.hpp>
+#include <boost/interprocess/detail/iterators.hpp>
+#include <boost/interprocess/detail/version_type.hpp>
 #include <utility>
 #include <algorithm>
 
@@ -70,14 +73,27 @@
 struct scoped_ptr_dealloc_functor
 {
    typedef typename Allocator::pointer pointer;
+ typedef detail::integral_constant<unsigned,
+ boost::interprocess::detail::
+ version<Allocator>::value> alloc_version;
+ typedef detail::integral_constant<unsigned, 1> allocator_v1;
+ typedef detail::integral_constant<unsigned, 2> allocator_v2;
 
+ private:
+ void priv_deallocate(const typename Allocator::pointer &p, allocator_v1)
+ { m_alloc.deallocate(p, 1); }
+
+ void priv_deallocate(const typename Allocator::pointer &p, allocator_v2)
+ { m_alloc.deallocate_one(p); }
+
+ public:
    Allocator& m_alloc;
 
    scoped_ptr_dealloc_functor(Allocator& a)
- : m_alloc(a) {}
+ : m_alloc(a) {}
 
    void operator()(pointer ptr)
- { if (ptr) m_alloc.deallocate(ptr, 1); }
+ { if (ptr) priv_deallocate(ptr, alloc_version()); }
 };
 
 //!A deleter for scoped_ptr that deallocates the memory
@@ -86,7 +102,20 @@
 struct scoped_deallocator
 {
    typedef typename Allocator::pointer pointer;
+ typedef detail::integral_constant<unsigned,
+ boost::interprocess::detail::
+ version<Allocator>::value> alloc_version;
+ typedef detail::integral_constant<unsigned, 1> allocator_v1;
+ typedef detail::integral_constant<unsigned, 2> allocator_v2;
+
+ private:
+ void priv_deallocate(allocator_v1)
+ { m_alloc.deallocate(m_ptr, 1); }
+
+ void priv_deallocate(allocator_v2)
+ { m_alloc.deallocate_one(m_ptr); }
 
+ public:
    pointer m_ptr;
    Allocator& m_alloc;
 
@@ -94,7 +123,7 @@
       : m_ptr(p), m_alloc(a) {}
 
    ~scoped_deallocator()
- { if (m_ptr) m_alloc.deallocate(m_ptr, 1); }
+ { if (m_ptr)priv_deallocate(alloc_version()); }
 
    void release()
    { m_ptr = 0; }
@@ -189,9 +218,22 @@
 class allocator_destroyer
 {
    typedef typename A::value_type value_type;
+ typedef detail::integral_constant<unsigned,
+ boost::interprocess::detail::
+ version<A>::value> alloc_version;
+ typedef detail::integral_constant<unsigned, 1> allocator_v1;
+ typedef detail::integral_constant<unsigned, 2> allocator_v2;
+
    private:
    A & a_;
 
+ private:
+ void priv_deallocate(const typename A::pointer &p, allocator_v1)
+ { a_.deallocate(p, 1); }
+
+ void priv_deallocate(const typename A::pointer &p, allocator_v2)
+ { a_.deallocate_one(p); }
+
    public:
    allocator_destroyer(A &a)
       : a_(a)
@@ -200,35 +242,86 @@
    void operator()(const typename A::pointer &p)
    {
       detail::get_pointer(p)->~value_type();
- a_.deallocate(p, 1);
+ priv_deallocate(p, alloc_version());
    }
 };
 
-//!A class used for exception-safe multi-allocation + construction.
-template <class Allocator>
-struct multiallocation_deallocator
+template <class A>
+class allocator_destroyer_and_chain_builder
 {
- typedef typename Allocator::multiallocation_iterator multiallocation_iterator;
+ typedef typename A::value_type value_type;
+ typedef typename A::multiallocation_iterator multiallocation_iterator;
+ typedef typename A::multiallocation_chain multiallocation_chain;
 
- multiallocation_iterator m_itbeg;
- Allocator& m_alloc;
+ A & a_;
+ multiallocation_chain &c_;
 
- multiallocation_deallocator(multiallocation_iterator itbeg, Allocator& a)
- : m_itbeg(itbeg), m_alloc(a) {}
+ public:
+ allocator_destroyer_and_chain_builder(A &a, multiallocation_chain &c)
+ : a_(a), c_(c)
+ {}
+
+ void operator()(const typename A::pointer &p)
+ {
+ value_type *vp = detail::get_pointer(p);
+ vp->~value_type();
+ c_.push_back(vp);
+ }
+};
 
- ~multiallocation_deallocator()
+template <class A>
+class allocator_multialloc_chain_node_deallocator
+{
+ typedef typename A::value_type value_type;
+ typedef typename A::multiallocation_iterator multiallocation_iterator;
+ typedef typename A::multiallocation_chain multiallocation_chain;
+ typedef allocator_destroyer_and_chain_builder<A> chain_builder;
+
+ A & a_;
+ multiallocation_chain c_;
+
+ public:
+ allocator_multialloc_chain_node_deallocator(A &a)
+ : a_(a), c_()
+ {}
+
+ chain_builder get_chain_builder()
+ { return chain_builder(a_, c_); }
+
+ ~allocator_multialloc_chain_node_deallocator()
    {
- multiallocation_iterator endit;
- while(m_itbeg != endit){
- m_alloc.deallocate(&*m_itbeg, 1);
- ++m_itbeg;
- }
+ multiallocation_iterator it(c_.get_it());
+ if(it != multiallocation_iterator())
+ a_.deallocate_individual(it);
    }
-
- void increment()
- { ++m_itbeg; }
 };
 
+template <class A>
+class allocator_multialloc_chain_array_deallocator
+{
+ typedef typename A::value_type value_type;
+ typedef typename A::multiallocation_iterator multiallocation_iterator;
+ typedef typename A::multiallocation_chain multiallocation_chain;
+ typedef allocator_destroyer_and_chain_builder<A> chain_builder;
+
+ A & a_;
+ multiallocation_chain c_;
+
+ public:
+ allocator_multialloc_chain_array_deallocator(A &a)
+ : a_(a), c_()
+ {}
+
+ chain_builder get_chain_builder()
+ { return chain_builder(a_, c_); }
+
+ ~allocator_multialloc_chain_array_deallocator()
+ {
+ multiallocation_iterator it(c_.get_it());
+ if(it != multiallocation_iterator())
+ a_.deallocate_many(it);
+ }
+};
 
 //!A class used for exception-safe multi-allocation + construction.
 template <class Allocator>
@@ -577,6 +670,60 @@
 }
 #endif
 
+template<class T>
+struct cast_functor
+{
+ typedef typename detail::add_reference<T>::type result_type;
+ result_type operator()(char &ptr) const
+ { return *static_cast<T*>(static_cast<void*>(&ptr)); }
+};
+
+template<class MultiallocChain, class T>
+class multiallocation_chain_adaptor
+{
+ private:
+ MultiallocChain chain_;
+
+ multiallocation_chain_adaptor
+ (const multiallocation_chain_adaptor &);
+ multiallocation_chain_adaptor &operator=
+ (const multiallocation_chain_adaptor &);
+
+ public:
+ typedef transform_iterator
+ < typename MultiallocChain::
+ multiallocation_iterator
+ , detail::cast_functor <T> > multiallocation_iterator;
+
+ multiallocation_chain_adaptor()
+ : chain_()
+ {}
+
+ void push_back(T *mem)
+ { chain_.push_back(mem); }
+
+ void push_front(T *mem)
+ { chain_.push_front(mem); }
+
+ void swap(multiallocation_chain_adaptor &other_chain)
+ { chain_.swap(other_chain.chain_); }
+
+ void splice_back(multiallocation_chain_adaptor &other_chain)
+ { chain_.splice_back(other_chain.chain_); }
+
+ T *pop_front()
+ { return static_cast<T*>(chain_.pop_front()); }
+
+ bool empty() const
+ { return chain_.empty(); }
+
+ multiallocation_iterator get_it() const
+ { return multiallocation_iterator(chain_.get_it()); }
+
+ std::size_t size() const
+ { return chain_.size(); }
+};
+
 } //namespace detail {
 
 //!The pair is movable if any of its members is movable

Modified: branches/proto/v3/boost/interprocess/detail/version_type.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/version_type.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/version_type.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/win32_api.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/win32_api.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/win32_api.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/detail/workaround.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/workaround.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/workaround.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -19,8 +19,8 @@
 
    #if defined(_POSIX_THREAD_PROCESS_SHARED)
    # if !((_XOPEN_VERSION >= 600) && (_POSIX_THREAD_PROCESS_SHARED - 0 <= 0))
- // Cygwin defines _POSIX_THREAD_PROCESS_SHARED but does not support it.
- // Mac Os X >= Leopard defines _POSIX_THREAD_PROCESS_SHARED but it does not seem to work
+ //Cygwin defines _POSIX_THREAD_PROCESS_SHARED but does not implement it.
+ //Mac Os X >= Leopard defines _POSIX_THREAD_PROCESS_SHARED but does not seems to work.
    # if !defined(__CYGWIN__) && !defined(__APPLE__)
    # define BOOST_INTERPROCESS_POSIX_PROCESS_SHARED
    # endif

Modified: branches/proto/v3/boost/interprocess/errors.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/errors.hpp (original)
+++ branches/proto/v3/boost/interprocess/errors.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/exceptions.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/exceptions.hpp (original)
+++ branches/proto/v3/boost/interprocess/exceptions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/file_mapping.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/file_mapping.hpp (original)
+++ branches/proto/v3/boost/interprocess/file_mapping.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/indexes/flat_map_index.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/indexes/flat_map_index.hpp (original)
+++ branches/proto/v3/boost/interprocess/indexes/flat_map_index.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/indexes/iset_index.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/indexes/iset_index.hpp (original)
+++ branches/proto/v3/boost/interprocess/indexes/iset_index.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/indexes/iunordered_set_index.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/indexes/iunordered_set_index.hpp (original)
+++ branches/proto/v3/boost/interprocess/indexes/iunordered_set_index.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -289,15 +289,14 @@
       size_type cur_size = this->size();
       size_type cur_count = this->bucket_count();
       bucket_ptr old_p = this->bucket_pointer();
- size_type sug_count;
       
       if(!this->size() && old_p != bucket_ptr(&this->init_bucket)){
- sug_count = 1;
          this->rehash(bucket_traits(bucket_ptr(&this->init_bucket), 1));
          destroy_buckets(this->alloc, old_p, cur_count);
       }
       else{
- sug_count = index_type::suggested_upper_bucket_count(cur_size);
+ size_type sug_count = 0; //gcc warning
+ sug_count = index_type::suggested_upper_bucket_count(cur_size);
 
          if(sug_count >= cur_count)
             return;

Modified: branches/proto/v3/boost/interprocess/indexes/map_index.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/indexes/map_index.hpp (original)
+++ branches/proto/v3/boost/interprocess/indexes/map_index.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/indexes/null_index.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/indexes/null_index.hpp (original)
+++ branches/proto/v3/boost/interprocess/indexes/null_index.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/indexes/unordered_map_index.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/indexes/unordered_map_index.hpp (original)
+++ branches/proto/v3/boost/interprocess/indexes/unordered_map_index.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/interprocess_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/interprocess_fwd.hpp (original)
+++ branches/proto/v3/boost/interprocess/interprocess_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -129,13 +129,19 @@
 template<class T, class SegmentManager, std::size_t NodesPerChunk = 64>
 class cached_node_allocator;
 
-template<class T, class SegmentManager, std::size_t NodesPerChunk = 64, std::size_t MaxFreeChunks = 2>
+template<class T, class SegmentManager, std::size_t NodesPerChunk = 64, std::size_t MaxFreeChunks = 2
+ , unsigned char OverheadPercent = 5
+>
 class adaptive_pool;
 
-template<class T, class SegmentManager, std::size_t NodesPerChunk = 64, std::size_t MaxFreeChunks = 2>
+template<class T, class SegmentManager, std::size_t NodesPerChunk = 64, std::size_t MaxFreeChunks = 2
+ , unsigned char OverheadPercent = 5
+>
 class private_adaptive_pool;
 
-template<class T, class SegmentManager, std::size_t NodesPerChunk = 64, std::size_t MaxFreeChunks = 2>
+template<class T, class SegmentManager, std::size_t NodesPerChunk = 64, std::size_t MaxFreeChunks = 2
+ , unsigned char OverheadPercent = 5
+>
 class cached_adaptive_pool;
 
 
@@ -151,10 +157,10 @@
 //////////////////////////////////////////////////////////////////////////////
 
 //Single segment memory allocation algorithms
-template<class MutexFamily, class VoidMutex = void*>//offset_ptr<void> >
+template<class MutexFamily, class VoidMutex = offset_ptr<void> >
 class simple_seq_fit;
 
-template<class MutexFamily, class VoidMutex = offset_ptr<void> >
+template<class MutexFamily, class VoidMutex = offset_ptr<void>, std::size_t MemAlignment = 0>
 class rbtree_best_fit;
 
 //////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/boost/interprocess/ipc/message_queue.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/ipc/message_queue.hpp (original)
+++ branches/proto/v3/boost/interprocess/ipc/message_queue.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/managed_external_buffer.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/managed_external_buffer.hpp (original)
+++ branches/proto/v3/boost/interprocess/managed_external_buffer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -20,6 +20,7 @@
 #include <boost/interprocess/creation_tags.hpp>
 #include <boost/interprocess/detail/managed_memory_impl.hpp>
 #include <boost/interprocess/detail/move.hpp>
+#include <cassert>
 
 //!\file
 //!Describes a named user memory allocation user class.
@@ -49,6 +50,8 @@
    basic_managed_external_buffer
       (create_only_t, void *addr, std::size_t size)
    {
+ //Check if alignment is correct
+ assert((0 == (((std::size_t)addr) & (AllocationAlgorithm::Alignment - std::size_t(1u)))));
       if(!base_t::create_impl(addr, size)){
          throw interprocess_exception();
       }
@@ -58,6 +61,8 @@
    basic_managed_external_buffer
       (open_only_t, void *addr, std::size_t size)
    {
+ //Check if alignment is correct
+ assert((0 == (((std::size_t)addr) & (AllocationAlgorithm::Alignment - std::size_t(1u)))));
       if(!base_t::open_impl(addr, size)){
          throw interprocess_exception();
       }

Modified: branches/proto/v3/boost/interprocess/managed_heap_memory.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/managed_heap_memory.hpp (original)
+++ branches/proto/v3/boost/interprocess/managed_heap_memory.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/managed_mapped_file.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/managed_mapped_file.hpp (original)
+++ branches/proto/v3/boost/interprocess/managed_mapped_file.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/managed_shared_memory.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/managed_shared_memory.hpp (original)
+++ branches/proto/v3/boost/interprocess/managed_shared_memory.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/managed_windows_shared_memory.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/managed_windows_shared_memory.hpp (original)
+++ branches/proto/v3/boost/interprocess/managed_windows_shared_memory.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/mapped_region.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/mapped_region.hpp (original)
+++ branches/proto/v3/boost/interprocess/mapped_region.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/mem_algo/detail/mem_algo_common.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/mem_algo/detail/mem_algo_common.hpp (original)
+++ branches/proto/v3/boost/interprocess/mem_algo/detail/mem_algo_common.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -22,6 +22,7 @@
 #include <boost/interprocess/allocators/allocation_type.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/detail/type_traits.hpp>
+#include <boost/interprocess/detail/iterators.hpp>
 #include <boost/assert.hpp>
 #include <boost/static_assert.hpp>
 
@@ -100,10 +101,136 @@
    pointer operator->() const
    { return &(*(*this)); }
 
+ static basic_multiallocation_iterator create_simple_range(void *mem)
+ {
+ basic_multiallocation_iterator it;
+ typedef multi_allocation_next<VoidPointer> next_impl_t;
+ next_impl_t * tmp_mem = static_cast<next_impl_t*>(mem);
+ it = basic_multiallocation_iterator<VoidPointer>(tmp_mem);
+ tmp_mem->next_ = 0;
+ return it;
+ }
+
    private:
    multi_allocation_next<VoidPointer> next_alloc_;
 };
 
+template<class VoidPointer>
+class basic_multiallocation_chain
+{
+ private:
+ basic_multiallocation_iterator<VoidPointer> it_;
+ VoidPointer last_mem_;
+ std::size_t num_mem_;
+
+ basic_multiallocation_chain(const basic_multiallocation_chain &);
+ basic_multiallocation_chain &operator=(const basic_multiallocation_chain &);
+
+ public:
+ typedef basic_multiallocation_iterator<VoidPointer> multiallocation_iterator;
+
+ basic_multiallocation_chain()
+ : it_(0), last_mem_(0), num_mem_(0)
+ {}
+
+ void reset()
+ {
+ this->it_ = multiallocation_iterator();
+ this->last_mem_ = 0;
+ this->num_mem_ = 0;
+ }
+
+ void push_back(void *mem)
+ {
+ typedef multi_allocation_next<VoidPointer> next_impl_t;
+ next_impl_t * tmp_mem = static_cast<next_impl_t*>(mem);
+
+ if(!this->last_mem_){
+ this->it_ = basic_multiallocation_iterator<VoidPointer>(tmp_mem);
+ }
+ else{
+ static_cast<next_impl_t*>(detail::get_pointer(this->last_mem_))->next_ = tmp_mem;
+ }
+ tmp_mem->next_ = 0;
+ this->last_mem_ = tmp_mem;
+ ++num_mem_;
+ }
+
+ void push_front(void *mem)
+ {
+ typedef multi_allocation_next<VoidPointer> next_impl_t;
+ next_impl_t * tmp_mem = static_cast<next_impl_t*>(mem);
+ ++num_mem_;
+
+ if(!this->last_mem_){
+ this->it_ = basic_multiallocation_iterator<VoidPointer>(tmp_mem);
+ tmp_mem->next_ = 0;
+ this->last_mem_ = tmp_mem;
+ }
+ else{
+ next_impl_t * old_first = (next_impl_t*)(&*this->it_);
+ tmp_mem->next_ = old_first;
+ this->it_ = basic_multiallocation_iterator<VoidPointer>(tmp_mem);
+ }
+ }
+
+ void swap(basic_multiallocation_chain &other_chain)
+ {
+ std::swap(this->it_, other_chain.it_);
+ std::swap(this->last_mem_, other_chain.last_mem_);
+ std::swap(this->num_mem_, other_chain.num_mem_);
+ }
+
+ void splice_back(basic_multiallocation_chain &other_chain)
+ {
+ typedef multi_allocation_next<VoidPointer> next_impl_t;
+ multiallocation_iterator end_it;
+ multiallocation_iterator other_it = other_chain.get_it();
+ multiallocation_iterator this_it = this->get_it();
+ if(end_it == other_it){
+ return;
+ }
+ else if(end_it == this_it){
+ this->swap(other_chain);
+ }
+ else{
+ static_cast<next_impl_t*>(detail::get_pointer(this->last_mem_))->next_
+ = (next_impl_t*)&*other_chain.it_;
+ this->last_mem_ = other_chain.last_mem_;
+ this->num_mem_ += other_chain.num_mem_;
+ }
+ }
+
+ void *pop_front()
+ {
+ multiallocation_iterator itend;
+ if(this->it_ == itend){
+ this->last_mem_= 0;
+ this->num_mem_ = 0;
+ return 0;
+ }
+ else{
+ void *addr = &*it_;
+ ++it_;
+ --num_mem_;
+ if(!num_mem_){
+ this->last_mem_ = 0;
+ this->it_ = multiallocation_iterator();
+ }
+ return addr;
+ }
+ }
+
+ bool empty() const
+ { return !num_mem_; }
+
+ multiallocation_iterator get_it() const
+ { return it_; }
+
+ std::size_t size() const
+ { return num_mem_; }
+};
+
 
 //!This class implements several allocation functions shared by different algorithms
 //!(aligned allocation, multiple allocation...).
@@ -125,6 +252,7 @@
    static const std::size_t AllocatedCtrlUnits = MemoryAlgorithm::AllocatedCtrlUnits;
    static const std::size_t BlockCtrlBytes = MemoryAlgorithm::BlockCtrlBytes;
    static const std::size_t BlockCtrlUnits = MemoryAlgorithm::BlockCtrlUnits;
+ static const std::size_t UsableByPreviousChunk = MemoryAlgorithm::UsableByPreviousChunk;
 
    static void assert_alignment(const void *ptr)
    { assert_alignment((std::size_t)ptr); }
@@ -165,10 +293,11 @@
    static void* allocate_aligned
       (MemoryAlgorithm *memory_algo, std::size_t nbytes, std::size_t alignment)
    {
+
       //Ensure power of 2
       if ((alignment & (alignment - std::size_t(1u))) != 0){
          //Alignment is not power of two
- BOOST_ASSERT((alignment & (alignment - std::size_t(1u))) != 0);
+ BOOST_ASSERT((alignment & (alignment - std::size_t(1u))) == 0);
          return 0;
       }
 
@@ -176,6 +305,9 @@
       if(alignment <= Alignment){
          return memory_algo->priv_allocate(allocate_new, nbytes, nbytes, real_size).first;
       }
+
+ if(nbytes > UsableByPreviousChunk)
+ nbytes -= UsableByPreviousChunk;
       
       //We can find a aligned portion if we allocate a chunk that has alignment
       //nbytes + alignment bytes or more.
@@ -191,7 +323,9 @@
       // | MBU |
       // -----------------------------------------------------
       std::size_t request =
- minimum_allocation + (2*MinBlockUnits*Alignment - AllocatedCtrlBytes);
+ minimum_allocation + (2*MinBlockUnits*Alignment - AllocatedCtrlBytes
+ //prevsize - UsableByPreviousChunk
+ );
 
       //Now allocate the buffer
       void *buffer = memory_algo->priv_allocate(allocate_new, request, request, real_size).first;
@@ -207,7 +341,8 @@
             max_value(ceil_units(nbytes) + AllocatedCtrlUnits, std::size_t(MinBlockUnits));
          //We can create a new block in the end of the segment
          if(old_size >= (first_min_units + MinBlockUnits)){
- block_ctrl *second = new((char*)first + Alignment*first_min_units) block_ctrl;
+ //block_ctrl *second = new((char*)first + Alignment*first_min_units) block_ctrl;
+ block_ctrl *second = (block_ctrl *)((char*)first + Alignment*first_min_units);
             first->m_size = first_min_units;
             second->m_size = old_size - first->m_size;
             BOOST_ASSERT(second->m_size >= MinBlockUnits);
@@ -285,6 +420,7 @@
       ,const std::size_t max_size, const std::size_t preferred_size
       ,std::size_t &received_size)
    {
+ (void)memory_algo;
       //Obtain the real block
       block_ctrl *block = memory_algo->priv_get_block(ptr);
       std::size_t old_block_units = block->m_size;
@@ -296,11 +432,11 @@
       assert_alignment(ptr);
 
       //Put this to a safe value
- received_size = (old_block_units - AllocatedCtrlUnits)*Alignment;
+ received_size = (old_block_units - AllocatedCtrlUnits)*Alignment + UsableByPreviousChunk;
 
       //Now translate it to Alignment units
- const std::size_t max_user_units = floor_units(max_size);
- const std::size_t preferred_user_units = ceil_units(preferred_size);
+ const std::size_t max_user_units = floor_units(max_size - UsableByPreviousChunk);
+ const std::size_t preferred_user_units = ceil_units(preferred_size - UsableByPreviousChunk);
 
       //Check if rounded max and preferred are possible correct
       if(max_user_units < preferred_user_units)
@@ -331,7 +467,7 @@
       }
 
       //Update new size
- received_size = shrunk_user_units*Alignment;
+ received_size = shrunk_user_units*Alignment + UsableByPreviousChunk;
       return true;
    }
 
@@ -350,22 +486,23 @@
       }
 
       //Check if the old size was just the shrunk size (no splitting)
- if((old_block_units - AllocatedCtrlUnits) == ceil_units(preferred_size))
+ if((old_block_units - AllocatedCtrlUnits) == ceil_units(preferred_size - UsableByPreviousChunk))
          return true;
 
       //Now we can just rewrite the size of the old buffer
- block->m_size = received_size/Alignment + AllocatedCtrlUnits;
+ block->m_size = (received_size-UsableByPreviousChunk)/Alignment + AllocatedCtrlUnits;
       BOOST_ASSERT(block->m_size >= BlockCtrlUnits);
- memory_algo->priv_mark_new_allocated_block(block);
 
       //We create the new block
- block_ctrl *new_block = new(reinterpret_cast<block_ctrl*>
- (detail::char_ptr_cast(block) + block->m_size*Alignment)) block_ctrl;
-
+// block_ctrl *new_block = new(reinterpret_cast<block_ctrl*>
+// (detail::char_ptr_cast(block) + block->m_size*Alignment)) block_ctrl;
+ block_ctrl *new_block = reinterpret_cast<block_ctrl*>
+ (detail::char_ptr_cast(block) + block->m_size*Alignment);
       //Write control data to simulate this new block was previously allocated
       //and deallocate it
       new_block->m_size = old_block_units - block->m_size;
       BOOST_ASSERT(new_block->m_size >= BlockCtrlUnits);
+ memory_algo->priv_mark_new_allocated_block(block);
       memory_algo->priv_mark_new_allocated_block(new_block);
       memory_algo->priv_deallocate(memory_algo->priv_get_user_buffer(new_block));
       return true;
@@ -401,11 +538,11 @@
       multi_allocation_next_ptr first = 0, previous = 0;
       std::size_t low_idx = 0;
       while(low_idx < n_elements){
- std::size_t total_bytes = total_request_units*Alignment - AllocatedCtrlBytes;
+ std::size_t total_bytes = total_request_units*Alignment - AllocatedCtrlBytes + UsableByPreviousChunk;
          std::size_t min_allocation = (!sizeof_element)
             ? elem_units
             : memory_algo->priv_get_total_units(elem_sizes[low_idx]*sizeof_element);
- min_allocation = min_allocation*Alignment - AllocatedCtrlBytes;
+ min_allocation = min_allocation*Alignment - AllocatedCtrlBytes + UsableByPreviousChunk;
 
          std::size_t received_size;
          std::pair<void *, bool> ret = memory_algo->priv_allocate
@@ -419,6 +556,7 @@
          char *block_address = (char*)block;
 
          std::size_t total_used_units = 0;
+// block_ctrl *prev_block = 0;
          while(total_used_units < received_units){
             if(sizeof_element){
                elem_units = memory_algo->priv_get_total_units(elem_sizes[low_idx]*sizeof_element);
@@ -428,7 +566,10 @@
                break;
             total_request_units -= elem_units;
             //This is the position where the new block must be created
- block_ctrl *new_block = new(block_address)block_ctrl;
+// if(prev_block)
+// memory_algo->priv_mark_new_allocated_block(prev_block);
+ block_ctrl *new_block = (block_ctrl *)(block_address);
+// block_ctrl *new_block = new(block_address)block_ctrl;
             assert_alignment(new_block);
 
             //The last block should take all the remaining space
@@ -446,18 +587,19 @@
                //split it obtaining a new free memory block do it.
                if((received_units - total_used_units) >= (elem_units + MemoryAlgorithm::BlockCtrlUnits)){
                   std::size_t shrunk_received;
- std::size_t shrunk_request = elem_units*Alignment - AllocatedCtrlBytes;
- bool ret = shrink
+ std::size_t shrunk_request = elem_units*Alignment - AllocatedCtrlBytes + UsableByPreviousChunk;
+ bool shrink_ok = shrink
                         (memory_algo
                         ,memory_algo->priv_get_user_buffer(new_block)
                         ,shrunk_request
                         ,shrunk_request
                         ,shrunk_received);
+ (void)shrink_ok;
                   //Shrink must always succeed with passed parameters
- BOOST_ASSERT(ret);
+ BOOST_ASSERT(shrink_ok);
                   //Some sanity checks
                   BOOST_ASSERT(shrunk_request == shrunk_received);
- BOOST_ASSERT(elem_units == (shrunk_request/Alignment + AllocatedCtrlUnits));
+ BOOST_ASSERT(elem_units == ((shrunk_request-UsableByPreviousChunk)/Alignment + AllocatedCtrlUnits));
                   //"new_block->m_size" must have been reduced to elem_units by "shrink"
                   BOOST_ASSERT(new_block->m_size == elem_units);
                   //Now update the total received units with the reduction
@@ -483,6 +625,7 @@
             }
             previous = p;
             ++low_idx;
+ //prev_block = new_block;
          }
          //Sanity check
          BOOST_ASSERT(total_used_units == received_units);

Modified: branches/proto/v3/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp (original)
+++ branches/proto/v3/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -64,6 +64,8 @@
 
    typedef detail::basic_multiallocation_iterator
       <void_pointer> multiallocation_iterator;
+ typedef detail::basic_multiallocation_chain
+ <void_pointer> multiallocation_chain;
 
    private:
    class block_ctrl;
@@ -137,6 +139,9 @@
    //!Multiple element allocation, different size
    multiallocation_iterator allocate_many(const std::size_t *elem_sizes, std::size_t n_elements, std::size_t sizeof_element);
 
+ //!Multiple element deallocation
+ void deallocate_many(multiallocation_iterator it);
+
    /// @endcond
 
    //!Deallocates previously allocated bytes
@@ -170,8 +175,13 @@
                            std::size_t preferred_size,std::size_t &received_size,
                            T *reuse_ptr = 0);
 
+ std::pair<void *, bool>
+ raw_allocation_command (allocation_type command, std::size_t limit_size,
+ std::size_t preferred_size,std::size_t &received_size,
+ void *reuse_ptr = 0, std::size_t sizeof_object = 1);
+
    //!Returns the size of the buffer previously allocated pointed by ptr
- std::size_t size(void *ptr) const;
+ std::size_t size(const void *ptr) const;
 
    //!Allocates aligned bytes, returns 0 if there is not more memory.
    //!Alignment must be power of 2
@@ -247,13 +257,16 @@
 
    void priv_mark_new_allocated_block(block_ctrl *block);
 
+ public:
    static const std::size_t Alignment = detail::alignment_of<detail::max_align>::value;
+ private:
    static const std::size_t BlockCtrlBytes = detail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value;
    static const std::size_t BlockCtrlUnits = BlockCtrlBytes/Alignment;
    static const std::size_t MinBlockUnits = BlockCtrlUnits;
    static const std::size_t MinBlockSize = MinBlockUnits*Alignment;
    static const std::size_t AllocatedCtrlBytes = BlockCtrlBytes;
    static const std::size_t AllocatedCtrlUnits = BlockCtrlUnits;
+ static const std::size_t UsableByPreviousChunk = 0;
 
    public:
    static const std::size_t PayloadPerAllocation = BlockCtrlBytes;
@@ -381,6 +394,7 @@
 
    std::size_t received_size;
    void *addr = priv_check_and_allocate(last_units, prev, last, received_size);
+ (void)addr;
    assert(addr);
    assert(received_size == last_units*Alignment - AllocatedCtrlBytes);
    
@@ -549,19 +563,34 @@
                         std::size_t preferred_size,std::size_t &received_size,
                         T *reuse_ptr)
 {
- if(command & try_shrink_in_place){
- bool success =
- algo_impl_t::try_shrink(this, reuse_ptr, limit_size, preferred_size, received_size);
- return std::pair<T *, bool> ((success ? reuse_ptr : 0), true);
- }
    std::pair<void*, bool> ret = priv_allocation_command
       (command, limit_size, preferred_size, received_size, reuse_ptr, sizeof(T));
+
    BOOST_ASSERT(0 == ((std::size_t)ret.first % detail::alignment_of<T>::value));
    return std::pair<T *, bool>(static_cast<T*>(ret.first), ret.second);
 }
 
 template<class MutexFamily, class VoidPointer>
 inline std::pair<void*, bool> simple_seq_fit_impl<MutexFamily, VoidPointer>::
+ raw_allocation_command (allocation_type command, std::size_t limit_objects,
+ std::size_t preferred_objects,std::size_t &received_objects,
+ void *reuse_ptr, std::size_t sizeof_object)
+{
+ if(!sizeof_object)
+ return std::pair<void *, bool>(0, 0);
+ if(command & try_shrink_in_place){
+ bool success = algo_impl_t::try_shrink
+ ( this, reuse_ptr, limit_objects*sizeof_object
+ , preferred_objects*sizeof_object, received_objects);
+ received_objects /= sizeof_object;
+ return std::pair<void *, bool> ((success ? reuse_ptr : 0), true);
+ }
+ return priv_allocation_command
+ (command, limit_objects, preferred_objects, received_objects, reuse_ptr, sizeof_object);
+}
+
+template<class MutexFamily, class VoidPointer>
+inline std::pair<void*, bool> simple_seq_fit_impl<MutexFamily, VoidPointer>::
    priv_allocation_command (allocation_type command, std::size_t limit_size,
                        std::size_t preferred_size, std::size_t &received_size,
                        void *reuse_ptr, std::size_t sizeof_object)
@@ -589,13 +618,13 @@
 
 template<class MutexFamily, class VoidPointer>
 inline std::size_t simple_seq_fit_impl<MutexFamily, VoidPointer>::
- size(void *ptr) const
+ size(const void *ptr) const
 {
    //We need no synchronization since this block is not going
    //to be modified
    //Obtain the real size of the block
    block_ctrl *block = reinterpret_cast<block_ctrl*>
- (priv_get_block(detail::char_ptr_cast(ptr)));
+ (priv_get_block(detail::char_ptr_cast(const_cast<void*>(ptr))));
    return block->get_user_bytes();
 }
 
@@ -690,6 +719,20 @@
 }
 
 template<class MutexFamily, class VoidPointer>
+inline void simple_seq_fit_impl<MutexFamily, VoidPointer>::
+ deallocate_many(typename simple_seq_fit_impl<MutexFamily, VoidPointer>::multiallocation_iterator it)
+{
+ //-----------------------
+ boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
+ //-----------------------
+ while(it){
+ void *addr = &*it;
+ ++it;
+ this->priv_deallocate(addr);
+ }
+}
+
+template<class MutexFamily, class VoidPointer>
 inline typename simple_seq_fit_impl<MutexFamily, VoidPointer>::multiallocation_iterator
    simple_seq_fit_impl<MutexFamily, VoidPointer>::
    allocate_many(const std::size_t *elem_sizes, std::size_t n_elements, std::size_t sizeof_element)

Modified: branches/proto/v3/boost/interprocess/mem_algo/rbtree_best_fit.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/mem_algo/rbtree_best_fit.hpp (original)
+++ branches/proto/v3/boost/interprocess/mem_algo/rbtree_best_fit.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -60,7 +60,7 @@
 
 //!This class implements an algorithm that stores the free nodes in a red-black tree
 //!to have logarithmic search/insert times.
-template<class MutexFamily, class VoidPointer>
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
 class rbtree_best_fit
 {
    /// @cond
@@ -77,6 +77,8 @@
    typedef VoidPointer void_pointer;
    typedef detail::basic_multiallocation_iterator
       <void_pointer> multiallocation_iterator;
+ typedef detail::basic_multiallocation_chain
+ <void_pointer> multiallocation_chain;
 
    /// @cond
 
@@ -106,9 +108,9 @@
    {
       //!This block's memory size (including block_ctrl
       //!header) in Alignment units
- std::size_t m_prev_size : sizeof(std::size_t)*CHAR_BIT - 1;
- std::size_t m_end : 1;
- std::size_t m_size : sizeof(std::size_t)*CHAR_BIT - 1;
+ std::size_t m_prev_size : sizeof(std::size_t)*CHAR_BIT;
+ std::size_t m_size : sizeof(std::size_t)*CHAR_BIT - 2;
+ std::size_t m_prev_allocated : 1;
       std::size_t m_allocated : 1;
    };
 
@@ -117,7 +119,7 @@
       : public SizeHolder, public TreeHook
    {
       block_ctrl()
- { this->m_end = 0; this->m_size = 0; this->m_allocated = 0; }
+ { this->m_size = 0; this->m_allocated = 0, this->m_prev_allocated = 0; }
 
       friend bool operator<(const block_ctrl &a, const block_ctrl &b)
       { return a.m_size < b.m_size; }
@@ -195,6 +197,9 @@
    //!Multiple element allocation, different size
    multiallocation_iterator allocate_many(const std::size_t *elem_sizes, std::size_t n_elements, std::size_t sizeof_element);
 
+ //!Multiple element allocation, different size
+ void deallocate_many(multiallocation_iterator it);
+
    /// @endcond
 
    //!Deallocates previously allocated bytes
@@ -230,6 +235,11 @@
                            std::size_t preferred_size,std::size_t &received_size,
                            T *reuse_ptr = 0);
 
+ std::pair<void *, bool>
+ raw_allocation_command (allocation_type command, std::size_t limit_object,
+ std::size_t preferred_object,std::size_t &received_object,
+ void *reuse_ptr = 0, std::size_t sizeof_object = 1);
+
    //!Returns the size of the buffer previously allocated pointed by ptr
    std::size_t size(const void *ptr) const;
 
@@ -279,17 +289,14 @@
                                ,bool only_preferred_backwards
                                ,std::size_t backwards_multiple);
 
- //!Set the size in the tail of the block
- void priv_tail_size(block_ctrl *ptr, std::size_t size);
+ //!Get poitner of the previous block (previous block must be free)
+ block_ctrl * priv_prev_block(block_ctrl *ptr);
 
- //!Real private aligned allocation function
- //void* priv_allocate_aligned (std::size_t nbytes, std::size_t alignment);
+ //!Returns true if the previous block is allocated
+ bool priv_is_prev_allocated(block_ctrl *ptr);
 
- //!Get the size in the tail of the block
- std::size_t priv_tail_size(block_ctrl *ptr);
-
- //!Get the size in the tail of the previous block
- block_ctrl * priv_prev_block(block_ctrl *ptr);
+ //!Get a pointer of the "end" block from the first block of the segment
+ block_ctrl * priv_end_block(block_ctrl *first_segment_block);
 
    //!Get the size in the tail of the previous block
    block_ctrl * priv_next_block(block_ctrl *ptr);
@@ -316,44 +323,50 @@
 
    void priv_mark_new_allocated_block(block_ctrl *block);
 
- static const std::size_t Alignment = detail::alignment_of<detail::max_align>::value;
+ public:
+
+ static const std::size_t Alignment = !MemAlignment
+ ? detail::alignment_of<detail::max_align>::value
+ : MemAlignment
+ ;
+
+ private:
    //Due to embedded bits in size, Alignment must be at least 2
- BOOST_STATIC_ASSERT((Alignment >= 2));
+ BOOST_STATIC_ASSERT((Alignment >= 4));
    //Due to rbtree size optimizations, Alignment must have at least pointer alignment
    BOOST_STATIC_ASSERT((Alignment >= detail::alignment_of<void_pointer>::value));
    static const std::size_t AlignmentMask = (Alignment - 1);
    static const std::size_t BlockCtrlBytes = detail::ct_rounded_size<sizeof(block_ctrl), Alignment>::value;
    static const std::size_t BlockCtrlUnits = BlockCtrlBytes/Alignment;
- static const std::size_t AllocatedCtrlBytes = detail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
- static const std::size_t AllocatedCtrlUnits = AllocatedCtrlBytes/Alignment;
+ static const std::size_t AllocatedCtrlBytes = detail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
+ static const std::size_t AllocatedCtrlUnits = AllocatedCtrlBytes/Alignment;
    static const std::size_t EndCtrlBlockBytes = detail::ct_rounded_size<sizeof(SizeHolder), Alignment>::value;
- static const std::size_t EndCtrlBlockUnits = EndCtrlBlockBytes/Alignment;
- static const std::size_t MinBlockUnits = BlockCtrlUnits;
+ static const std::size_t EndCtrlBlockUnits = EndCtrlBlockBytes/Alignment;
+ static const std::size_t MinBlockUnits = BlockCtrlUnits;
+ static const std::size_t UsableByPreviousChunk = sizeof(std::size_t);
 
    //Make sure the maximum alignment is power of two
    BOOST_STATIC_ASSERT((0 == (Alignment & (Alignment - std::size_t(1u)))));
    /// @endcond
    public:
- static const std::size_t PayloadPerAllocation = AllocatedCtrlBytes;
+ static const std::size_t PayloadPerAllocation = AllocatedCtrlBytes - UsableByPreviousChunk;
 };
 
-template<class MutexFamily, class VoidPointer>
-inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer>
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>
    ::priv_first_block_offset(const void *this_ptr, std::size_t extra_hdr_bytes)
 {
- //First align "this" pointer
- std::size_t uint_this = (std::size_t)this_ptr;
- std::size_t uint_aligned_this = uint_this/Alignment*Alignment;
- std::size_t this_disalignment = (uint_this - uint_aligned_this);
- std::size_t block1_off =
- detail::get_rounded_size(sizeof(rbtree_best_fit) + extra_hdr_bytes + this_disalignment, Alignment)
- - this_disalignment;
- algo_impl_t::assert_alignment(this_disalignment + block1_off);
+ std::size_t uint_this = (std::size_t)this_ptr;
+ std::size_t main_hdr_end = uint_this + sizeof(rbtree_best_fit) + extra_hdr_bytes;
+ std::size_t aligned_main_hdr_end = detail::get_rounded_size(main_hdr_end, Alignment);
+ std::size_t block1_off = aligned_main_hdr_end - uint_this;
+ algo_impl_t::assert_alignment(aligned_main_hdr_end);
+ algo_impl_t::assert_alignment(uint_this + block1_off);
    return block1_off;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    rbtree_best_fit(std::size_t size, std::size_t extra_hdr_bytes)
 {
    //Initialize the header
@@ -368,26 +381,25 @@
    priv_add_segment(detail::char_ptr_cast(this) + block1_off, size - block1_off);
 }
 
-template<class MutexFamily, class VoidPointer>
-inline rbtree_best_fit<MutexFamily, VoidPointer>::~rbtree_best_fit()
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::~rbtree_best_fit()
 {
    //There is a memory leak!
 // assert(m_header.m_allocated == 0);
 // assert(m_header.m_root.m_next->m_next == block_ctrl_ptr(&m_header.m_root));
 }
 
-template<class MutexFamily, class VoidPointer>
-void rbtree_best_fit<MutexFamily, VoidPointer>::grow(std::size_t extra_size)
-{
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::grow(std::size_t extra_size)
+{
    //Get the address of the first block
    std::size_t block1_off =
       priv_first_block_offset(this, m_header.m_extra_hdr_bytes);
 
    block_ctrl *first_block = reinterpret_cast<block_ctrl *>
                                  (detail::char_ptr_cast(this) + block1_off);
- block_ctrl *old_end_block = priv_prev_block(first_block);
+ block_ctrl *old_end_block = priv_end_block(first_block);
    assert(priv_is_allocated_block(old_end_block));
- assert(old_end_block->m_end);
    std::size_t old_border_offset = (detail::char_ptr_cast(old_end_block) -
                                     detail::char_ptr_cast(this)) + EndCtrlBlockBytes;
 
@@ -406,18 +418,16 @@
       (detail::char_ptr_cast(old_end_block) + align_offset*Alignment);
    new_end_block->m_size = (detail::char_ptr_cast(first_block) -
                                  detail::char_ptr_cast(new_end_block))/Alignment;
+ first_block->m_prev_size = new_end_block->m_size;
    assert(first_block == priv_next_block(new_end_block));
- new_end_block->m_end = 1;
    priv_mark_new_allocated_block(new_end_block);
-
- assert(new_end_block == priv_prev_block(first_block));
+
+ assert(new_end_block == priv_end_block(first_block));
 
    //The old end block is the new block
- std::size_t old_end_prev = old_end_block->m_prev_size;
- block_ctrl *new_block = new(old_end_block)block_ctrl;
+ block_ctrl *new_block = old_end_block;
    new_block->m_size = (detail::char_ptr_cast(new_end_block) -
                         detail::char_ptr_cast(new_block))/Alignment;
- new_block->m_prev_size = old_end_prev;
    assert(new_block->m_size >= BlockCtrlUnits);
    priv_mark_new_allocated_block(new_block);
    assert(priv_next_block(new_block) == new_end_block);
@@ -428,8 +438,8 @@
    this->priv_deallocate(priv_get_user_buffer(new_block));
 }
 
-template<class MutexFamily, class VoidPointer>
-void rbtree_best_fit<MutexFamily, VoidPointer>::shrink_to_fit()
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::shrink_to_fit()
 {
    //Get the address of the first block
    std::size_t block1_off =
@@ -439,32 +449,36 @@
                                  (detail::char_ptr_cast(this) + block1_off);
    algo_impl_t::assert_alignment(first_block);
 
- block_ctrl *old_end_block = priv_prev_block(first_block);
+ block_ctrl *old_end_block = priv_end_block(first_block);
    algo_impl_t::assert_alignment(old_end_block);
    assert(priv_is_allocated_block(old_end_block));
- assert(old_end_block->m_end);
 
- block_ctrl *last_block = priv_prev_block(old_end_block);
    algo_impl_t::assert_alignment(old_end_block);
 
- std::size_t old_end_block_size = old_end_block->m_size;
+ std::size_t old_end_block_size = old_end_block->m_size;
 
- void *unique_block = 0;
- if(last_block == first_block){
+ void *unique_buffer = 0;
+ block_ctrl *last_block;
+ if(priv_next_block(first_block) == old_end_block){
       std::size_t ignore;
- unique_block = priv_allocate(allocate_new, 0, 0, ignore).first;
- if(!unique_block)
+ unique_buffer = priv_allocate(allocate_new, 0, 0, ignore).first;
+ if(!unique_buffer)
          return;
+ algo_impl_t::assert_alignment(unique_buffer);
+ block_ctrl *unique_block = priv_get_block(unique_buffer);
+ assert(priv_is_allocated_block(unique_block));
       algo_impl_t::assert_alignment(unique_block);
- last_block = priv_prev_block(old_end_block);
+ last_block = priv_next_block(unique_block);
+ assert(!priv_is_allocated_block(last_block));
       algo_impl_t::assert_alignment(last_block);
    }
+ else{
+ if(priv_is_prev_allocated(old_end_block))
+ return;
+ last_block = priv_prev_block(old_end_block);
+ }
 
- //The last block must be free to be able to shrink
- if(priv_is_allocated_block(last_block))
- return;
-
- std::size_t last_block_size = last_block->m_size;
+ std::size_t last_block_size = last_block->m_size;
 
    //Erase block from the free tree, since we will erase it
    m_header.m_imultiset.erase(Imultiset::s_iterator_to(*last_block));
@@ -474,20 +488,23 @@
    
    block_ctrl *new_end_block = last_block;
    algo_impl_t::assert_alignment(new_end_block);
- priv_mark_as_allocated_block(new_end_block);
- new_end_block->m_end = 1;
    new_end_block->m_size = old_end_block_size + last_block_size;
- priv_tail_size(new_end_block, new_end_block->m_size);
- assert(priv_prev_block(first_block) == new_end_block);
+ priv_mark_as_allocated_block(new_end_block);
+
+ //Although the first block might be allocated, we'll
+ //store the offset to the end block since in the previous
+ //offset can't be overwritten by a previous block
+ first_block->m_prev_size = new_end_block->m_size;
+ assert(priv_end_block(first_block) == new_end_block);
 
    //Update managed buffer's size
    m_header.m_size = shrunk_border_offset;
- if(unique_block)
- priv_deallocate(unique_block);
+ if(unique_buffer)
+ priv_deallocate(unique_buffer);
 }
 
-template<class MutexFamily, class VoidPointer>
-void rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_add_segment(void *addr, std::size_t size)
 {
    //Check alignment
@@ -506,17 +523,15 @@
          (detail::char_ptr_cast(addr) + first_big_block->m_size*Alignment))SizeHolder);
 
    //This will overwrite the prev part of the "end" node
- priv_tail_size(first_big_block, first_big_block->m_size);
    priv_mark_as_free_block (first_big_block);
    first_big_block->m_prev_size = end_block->m_size =
       (detail::char_ptr_cast(first_big_block) - detail::char_ptr_cast(end_block))/Alignment;
- end_block->m_end = 1;
- end_block->m_allocated = 1;
+ priv_mark_as_allocated_block(end_block);
 
    assert(priv_next_block(first_big_block) == end_block);
- assert(priv_prev_block(end_block) == first_big_block);
    assert(priv_next_block(end_block) == first_big_block);
- assert(priv_prev_block(first_big_block) == end_block);
+ assert(priv_end_block(first_big_block) == end_block);
+ assert(priv_prev_block(end_block) == first_big_block);
 
    //Some check to validate the algorithm, since it makes some assumptions
    //to optimize the space wasted in bookkeeping:
@@ -530,27 +545,24 @@
    m_header.m_imultiset.insert(*first_big_block);
 }
 
-template<class MutexFamily, class VoidPointer>
-inline void rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_mark_new_allocated_block(block_ctrl *new_block)
-{
- priv_tail_size(new_block, new_block->m_size);
- priv_mark_as_allocated_block(new_block);
-}
+{ priv_mark_as_allocated_block(new_block); }
 
-template<class MutexFamily, class VoidPointer>
-inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer>::get_size() const
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::get_size() const
 { return m_header.m_size; }
 
-template<class MutexFamily, class VoidPointer>
-inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer>::get_free_memory() const
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::get_free_memory() const
 {
    return m_header.m_size - m_header.m_allocated -
       priv_first_block_offset(this, m_header.m_extra_hdr_bytes);
 }
 
-template<class MutexFamily, class VoidPointer>
-inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    get_min_size (std::size_t extra_hdr_bytes)
 {
    return (algo_impl_t::ceil_units(sizeof(rbtree_best_fit)) +
@@ -558,8 +570,8 @@
            MinBlockUnits + EndCtrlBlockUnits)*Alignment;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline bool rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline bool rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
     all_memory_deallocated()
 {
    //-----------------------
@@ -575,8 +587,8 @@
          (m_header.m_size - block1_off - EndCtrlBlockBytes)/Alignment;
 }
 
-template<class MutexFamily, class VoidPointer>
-bool rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+bool rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
     check_sanity()
 {
    //-----------------------
@@ -609,8 +621,8 @@
    return true;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline void* rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline void* rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    allocate(std::size_t nbytes)
 {
    //-----------------------
@@ -621,8 +633,8 @@
    return ret;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline void* rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline void* rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    allocate_aligned(std::size_t nbytes, std::size_t alignment)
 {
    //-----------------------
@@ -631,26 +643,42 @@
    return algo_impl_t::allocate_aligned(this, nbytes, alignment);
 }
 
-template<class MutexFamily, class VoidPointer>
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
 template<class T>
-inline std::pair<T*, bool> rbtree_best_fit<MutexFamily, VoidPointer>::
+inline std::pair<T*, bool> rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    allocation_command (allocation_type command, std::size_t limit_size,
                         std::size_t preferred_size,std::size_t &received_size,
                         T *reuse_ptr)
 {
- if(command & try_shrink_in_place){
- bool success =
- algo_impl_t::try_shrink(this, reuse_ptr, limit_size, preferred_size, received_size);
- return std::pair<T *, bool> ((success ? reuse_ptr : 0), true);
- }
    std::pair<void*, bool> ret = priv_allocation_command
       (command, limit_size, preferred_size, received_size, reuse_ptr, sizeof(T));
+
    BOOST_ASSERT(0 == ((std::size_t)ret.first % detail::alignment_of<T>::value));
    return std::pair<T *, bool>(static_cast<T*>(ret.first), ret.second);
 }
 
-template<class MutexFamily, class VoidPointer>
-inline std::pair<void*, bool> rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::pair<void*, bool> rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
+ raw_allocation_command (allocation_type command, std::size_t limit_objects,
+ std::size_t preferred_objects,std::size_t &received_objects,
+ void *reuse_ptr, std::size_t sizeof_object)
+{
+ if(!sizeof_object)
+ return std::pair<void *, bool>(0, 0);
+ if(command & try_shrink_in_place){
+ bool success = algo_impl_t::try_shrink
+ ( this, reuse_ptr, limit_objects*sizeof_object
+ , preferred_objects*sizeof_object, received_objects);
+ received_objects /= sizeof_object;
+ return std::pair<void *, bool> ((success ? reuse_ptr : 0), true);
+ }
+ return priv_allocation_command
+ (command, limit_objects, preferred_objects, received_objects, reuse_ptr, sizeof_object);
+}
+
+
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::pair<void*, bool> rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_allocation_command (allocation_type command, std::size_t limit_size,
                        std::size_t preferred_size,std::size_t &received_size,
                        void *reuse_ptr, std::size_t sizeof_object)
@@ -673,18 +701,18 @@
    return ret;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline std::size_t rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    size(const void *ptr) const
 {
    //We need no synchronization since this block's size is not going
    //to be modified by anyone else
    //Obtain the real size of the block
- return (priv_get_block(ptr)->m_size - AllocatedCtrlUnits)*Alignment;
+ return (priv_get_block(ptr)->m_size - AllocatedCtrlUnits)*Alignment + UsableByPreviousChunk;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline void rbtree_best_fit<MutexFamily, VoidPointer>::zero_free_memory()
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::zero_free_memory()
 {
    //-----------------------
    boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
@@ -700,8 +728,8 @@
    }
 }
 
-template<class MutexFamily, class VoidPointer>
-void* rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+void* rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_expand_both_sides(allocation_type command
                          ,std::size_t min_size
                          ,std::size_t preferred_size
@@ -717,7 +745,7 @@
    }
    else{
       received_size = this->size(reuse_ptr);
- if(received_size >= preferred_size)
+ if(received_size >= preferred_size || received_size >= min_size)
          return reuse_ptr;
    }
 
@@ -731,18 +759,21 @@
       block_ctrl *reuse = priv_get_block(reuse_ptr);
 
       //Sanity check
- assert(reuse->m_size == priv_tail_size(reuse));
+ //assert(reuse->m_size == priv_tail_size(reuse));
       algo_impl_t::assert_alignment(reuse);
 
       block_ctrl *prev_block;
 
       //If the previous block is not free, there is nothing to do
- if(priv_is_allocated_block(prev_block = priv_prev_block(reuse))){
+ if(priv_is_prev_allocated(reuse)){
          return 0;
       }
 
+ prev_block = priv_prev_block(reuse);
+ assert(!priv_is_allocated_block(prev_block));
+
       //Some sanity checks
- assert(prev_block->m_size == priv_tail_size(prev_block));
+ assert(prev_block->m_size == reuse->m_prev_size);
       algo_impl_t::assert_alignment(prev_block);
 
       //Let's calculate the number of extra bytes of data before the current
@@ -769,32 +800,41 @@
       if(std::size_t(prev_block->m_size*Alignment) >= needs_backwards_aligned){
          //Now take all next space. This will succeed
          if(command & expand_fwd){
- if(!priv_expand(reuse_ptr, received_size, received_size, received_size)){
+ std::size_t received_size2;
+ if(!priv_expand(reuse_ptr, received_size, received_size, received_size2)){
                assert(0);
             }
+ assert(received_size = received_size2);
          }
          //We need a minimum size to split the previous one
          if(prev_block->m_size >= (needs_backwards_aligned/Alignment + BlockCtrlUnits)){
             block_ctrl *new_block = reinterpret_cast<block_ctrl *>
                (detail::char_ptr_cast(reuse) - needs_backwards_aligned);
 
- //Erase old previous block, since we will change it
- m_header.m_imultiset.erase(Imultiset::s_iterator_to(*prev_block));
-
             //Free old previous buffer
             new_block->m_size =
- AllocatedCtrlUnits + (needs_backwards_aligned + received_size)/Alignment;
+ AllocatedCtrlUnits + (needs_backwards_aligned + (received_size - UsableByPreviousChunk))/Alignment;
             assert(new_block->m_size >= BlockCtrlUnits);
             priv_mark_new_allocated_block(new_block);
 
             prev_block->m_size = (detail::char_ptr_cast(new_block) -
                                   detail::char_ptr_cast(prev_block))/Alignment;
             assert(prev_block->m_size >= BlockCtrlUnits);
- priv_tail_size(prev_block, prev_block->m_size);
             priv_mark_as_free_block(prev_block);
 
- //Insert the remaining previous block in the free tree
- m_header.m_imultiset.insert( m_header.m_imultiset.begin(), *prev_block);
+ //Update the old previous block in the free chunks tree
+ //If the new size fulfills tree invariants do nothing,
+ //otherwise erase() + insert()
+ {
+ imultiset_iterator prev_block_it(Imultiset::s_iterator_to(*prev_block));
+ imultiset_iterator was_smaller_it(prev_block_it);
+ if(prev_block_it != m_header.m_imultiset.begin() &&
+ (--(was_smaller_it = prev_block_it))->m_size > prev_block->m_size){
+ m_header.m_imultiset.erase(prev_block_it);
+ m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *prev_block);
+ }
+ }
+
             received_size = needs_backwards_aligned + received_size;
             m_header.m_allocated += needs_backwards_aligned;
          
@@ -812,14 +852,15 @@
          //Check if there is no place to create a new block and
          //the whole new block is multiple of the backwards expansion multiple
          else if(prev_block->m_size >= needs_backwards_aligned/Alignment &&
- 0 == (prev_block->m_size % lcm)) {
+ 0 == ((prev_block->m_size*Alignment) % lcm)) {
             //Erase old previous block, since we will change it
             m_header.m_imultiset.erase(Imultiset::s_iterator_to(*prev_block));
 
             //Just merge the whole previous block
- const std::size_t needs_backwards_aligned = prev_block->m_size*Alignment;
- const std::size_t needs_backwards = detail::get_truncated_size(needs_backwards_aligned, backwards_multiple);
- received_size = received_size/backwards_multiple*backwards_multiple + needs_backwards;
+ needs_backwards = detail::get_truncated_size
+ (prev_block->m_size*Alignment, backwards_multiple);
+ //received_size = received_size/backwards_multiple*backwards_multiple + needs_backwards;
+ received_size = received_size + needs_backwards;
 
             m_header.m_allocated += prev_block->m_size*Alignment;
             //Now update sizes
@@ -843,9 +884,9 @@
    return 0;
 }
 
-template<class MutexFamily, class VoidPointer>
-inline typename rbtree_best_fit<MutexFamily, VoidPointer>::multiallocation_iterator
- rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::multiallocation_iterator
+ rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    allocate_many(std::size_t elem_bytes, std::size_t num_elements)
 {
    //-----------------------
@@ -854,9 +895,23 @@
    return algo_impl_t::allocate_many(this, elem_bytes, num_elements);
 }
 
-template<class MutexFamily, class VoidPointer>
-inline typename rbtree_best_fit<MutexFamily, VoidPointer>::multiallocation_iterator
- rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
+ deallocate_many(typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::multiallocation_iterator it)
+{
+ //-----------------------
+ boost::interprocess::scoped_lock<interprocess_mutex> guard(m_header);
+ //-----------------------
+ while(it){
+ void *addr = &*it;
+ ++it;
+ this->priv_deallocate(addr);
+ }
+}
+
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+inline typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::multiallocation_iterator
+ rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    allocate_many(const std::size_t *elem_sizes, std::size_t n_elements, std::size_t sizeof_element)
 {
    //-----------------------
@@ -865,8 +920,8 @@
    return algo_impl_t::allocate_many(this, elem_sizes, n_elements, sizeof_element);
 }
 
-template<class MutexFamily, class VoidPointer>
-std::pair<void *, bool> rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+std::pair<void *, bool> rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_allocate(allocation_type command
                 ,std::size_t limit_size
                 ,std::size_t preferred_size
@@ -929,32 +984,34 @@
    return return_type(0, false);
 }
 
-template<class MutexFamily, class VoidPointer>
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
 inline
-typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *
- rbtree_best_fit<MutexFamily, VoidPointer>::priv_get_block(const void *ptr)
+typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *
+ rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_get_block(const void *ptr)
 {
    return reinterpret_cast<block_ctrl*>(detail::char_ptr_cast(ptr) - AllocatedCtrlBytes);
 }
 
-template<class MutexFamily, class VoidPointer>
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
 inline
-void *rbtree_best_fit<MutexFamily, VoidPointer>::
- priv_get_user_buffer(const typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *block)
+void *rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
+ priv_get_user_buffer(const typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *block)
 { return detail::char_ptr_cast(block) + AllocatedCtrlBytes; }
 
-template<class MutexFamily, class VoidPointer>
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
 inline
-std::size_t rbtree_best_fit<MutexFamily, VoidPointer>::
+std::size_t rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_get_total_units(std::size_t userbytes)
 {
- std::size_t units = detail::get_rounded_size(userbytes, Alignment)/Alignment + AllocatedCtrlUnits;
+ if(userbytes < UsableByPreviousChunk)
+ userbytes = UsableByPreviousChunk;
+ std::size_t units = detail::get_rounded_size(userbytes - UsableByPreviousChunk, Alignment)/Alignment + AllocatedCtrlUnits;
    if(units < BlockCtrlUnits) units = BlockCtrlUnits;
    return units;
 }
 
-template<class MutexFamily, class VoidPointer>
-bool rbtree_best_fit<MutexFamily, VoidPointer>::
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+bool rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::
    priv_expand (void *ptr
                ,const std::size_t min_size
                ,const std::size_t preferred_size
@@ -966,16 +1023,16 @@
 
    //The block must be marked as allocated and the sizes must be equal
    assert(priv_is_allocated_block(block));
- assert(old_block_units == priv_tail_size(block));
+ //assert(old_block_units == priv_tail_size(block));
    
    //Put this to a safe value
- received_size = (old_block_units - AllocatedCtrlUnits)*Alignment;
- if(received_size > preferred_size)
+ received_size = (old_block_units - AllocatedCtrlUnits)*Alignment + UsableByPreviousChunk;
+ if(received_size >= preferred_size || received_size >= min_size)
       return true;
 
    //Now translate it to Alignment units
- const std::size_t min_user_units = algo_impl_t::ceil_units(min_size);
- const std::size_t preferred_user_units = algo_impl_t::ceil_units(preferred_size);
+ const std::size_t min_user_units = algo_impl_t::ceil_units(min_size - UsableByPreviousChunk);
+ const std::size_t preferred_user_units = algo_impl_t::ceil_units(preferred_size - UsableByPreviousChunk);
 
    //Some parameter checks
    assert(min_user_units <= preferred_user_units);
@@ -994,7 +1051,7 @@
    const std::size_t merged_user_units = merged_units - AllocatedCtrlUnits;
 
    if(merged_user_units < min_user_units){
- received_size = merged_user_units*Alignment;
+ received_size = merged_units*Alignment - UsableByPreviousChunk;
       return false;
    }
 
@@ -1007,30 +1064,44 @@
 
    //Check if we can split the next one in two parts
    if((merged_units - intended_units) >= BlockCtrlUnits){
- //Now we have to update the data in the tree
- m_header.m_imultiset.erase(Imultiset::s_iterator_to(*next_block));
-
       //This block is bigger than needed, split it in
       //two blocks, the first one will be merged and
       //the second's size will be the remaining space
- assert(next_block->m_size == priv_tail_size(next_block));
+ assert(next_block->m_size == priv_next_block(next_block)->m_prev_size);
+ const std::size_t rem_units = merged_units - intended_units;
 
+ //Check if we we need to update the old next block in the free chunks tree
+ //If the new size fulfills tree invariants, we just need to replace the node
+ //(the block start has been displaced), otherwise erase() + insert().
+ //
+ //This fixup must be done in two parts, because the new next chunk might
+ //overwrite the tree hook of the old next chunk. So we first erase the
+ //old if needed and we'll insert the new one after creating the new next
+ imultiset_iterator old_next_block_it(Imultiset::s_iterator_to(*next_block));
+ const bool size_invariants_broken =
+ (next_block->m_size - rem_units ) < BlockCtrlUnits ||
+ (old_next_block_it != m_header.m_imultiset.begin() &&
+ (--imultiset_iterator(old_next_block_it))->m_size > rem_units);
+ if(size_invariants_broken){
+ m_header.m_imultiset.erase(old_next_block_it);
+ }
       //This is the remaining block
- block_ctrl *new_block = new(reinterpret_cast<block_ctrl*>
+ block_ctrl *rem_block = new(reinterpret_cast<block_ctrl*>
                      (detail::char_ptr_cast(block) + intended_units*Alignment))block_ctrl;
- new_block->m_size = merged_units - intended_units;
- algo_impl_t::assert_alignment(new_block);
- assert(new_block->m_size >= BlockCtrlUnits);
- priv_tail_size(new_block, new_block->m_size);
- priv_mark_as_free_block(new_block);
-
- //Insert the new block in the container
- m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *new_block);
+ rem_block->m_size = rem_units;
+ algo_impl_t::assert_alignment(rem_block);
+ assert(rem_block->m_size >= BlockCtrlUnits);
+ priv_mark_as_free_block(rem_block);
+
+ //Now the second part of the fixup
+ if(size_invariants_broken)
+ m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *rem_block);
+ else
+ m_header.m_imultiset.replace_node(old_next_block_it, *rem_block);
 
       //Write the new length
       block->m_size = intended_user_units + AllocatedCtrlUnits;
       assert(block->m_size >= BlockCtrlUnits);
- priv_tail_size(block, block->m_size);
       m_header.m_allocated += (intended_units - old_block_units)*Alignment;
    }
    //There is no free space to create a new node: just merge both blocks
@@ -1041,61 +1112,97 @@
       //Write the new length
       block->m_size = merged_units;
       assert(block->m_size >= BlockCtrlUnits);
- priv_tail_size(block, merged_units);
       m_header.m_allocated += (merged_units - old_block_units)*Alignment;
    }
-
- received_size = (block->m_size - AllocatedCtrlUnits)*Alignment;
+ priv_mark_as_allocated_block(block);
+ received_size = (block->m_size - AllocatedCtrlUnits)*Alignment + UsableByPreviousChunk;
    return true;
 }
 
-template<class MutexFamily, class VoidPointer> inline
-void rbtree_best_fit<MutexFamily, VoidPointer>::priv_tail_size
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *ptr, std::size_t size)
-{ priv_next_block(ptr)->m_prev_size = size; }
-
-template<class MutexFamily, class VoidPointer> inline
-std::size_t rbtree_best_fit<MutexFamily, VoidPointer>::priv_tail_size
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *ptr)
-{ return priv_next_block(ptr)->m_prev_size; }
-
-template<class MutexFamily, class VoidPointer> inline
-typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *
- rbtree_best_fit<MutexFamily, VoidPointer>::priv_prev_block
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *ptr)
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *
+ rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_prev_block
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *ptr)
 {
+ assert(!ptr->m_prev_allocated);
    return reinterpret_cast<block_ctrl *>
       (detail::char_ptr_cast(ptr) - ptr->m_prev_size*Alignment);
 }
 
-template<class MutexFamily, class VoidPointer> inline
-typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *
- rbtree_best_fit<MutexFamily, VoidPointer>::priv_next_block
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *ptr)
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+bool rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_is_prev_allocated
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *ptr)
+{
+ if(ptr->m_prev_allocated){
+ return true;
+ }
+ else{
+ block_ctrl *prev = priv_prev_block(ptr);
+ (void)prev;
+ assert(!priv_is_allocated_block(prev));
+ return false;
+ }
+}
+
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *
+ rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_end_block
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *first_segment_block)
+{
+ assert(first_segment_block->m_prev_allocated);
+ block_ctrl *end_block = reinterpret_cast<block_ctrl *>
+ (detail::char_ptr_cast(first_segment_block) - first_segment_block->m_prev_size*Alignment);
+ (void)end_block;
+ assert(priv_is_allocated_block(end_block));
+ assert(end_block > first_segment_block);
+ return end_block;
+}
+
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *
+ rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_next_block
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *ptr)
 {
    return reinterpret_cast<block_ctrl *>
       (detail::char_ptr_cast(ptr) + ptr->m_size*Alignment);
 }
 
-template<class MutexFamily, class VoidPointer> inline
-bool rbtree_best_fit<MutexFamily, VoidPointer>::priv_is_allocated_block
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *block)
-{ return block->m_allocated != 0; }
-
-template<class MutexFamily, class VoidPointer> inline
-void rbtree_best_fit<MutexFamily, VoidPointer>::priv_mark_as_allocated_block
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *block)
-{ block->m_allocated = 1; }
-
-template<class MutexFamily, class VoidPointer> inline
-void rbtree_best_fit<MutexFamily, VoidPointer>::priv_mark_as_free_block
- (typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl *block)
-{ block->m_allocated = 0; }
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+bool rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_is_allocated_block
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *block)
+{
+ bool allocated = block->m_allocated != 0;
+ block_ctrl *next_block = (block_ctrl *)
+ (detail::char_ptr_cast(block) + block->m_size*Alignment);
+ bool next_block_prev_allocated = next_block->m_prev_allocated != 0;
+ (void)next_block_prev_allocated;
+ assert(allocated == next_block_prev_allocated);
+ return allocated;
+}
 
-template<class MutexFamily, class VoidPointer> inline
-void* rbtree_best_fit<MutexFamily, VoidPointer>::priv_check_and_allocate
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_mark_as_allocated_block
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *block)
+{
+ //assert(!priv_is_allocated_block(block));
+ block->m_allocated = 1;
+ ((block_ctrl *)(((char*)block) + block->m_size*Alignment))->m_prev_allocated = 1;
+}
+
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_mark_as_free_block
+ (typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl *block)
+{
+ block->m_allocated = 0;
+ ((block_ctrl *)(((char*)block) + block->m_size*Alignment))->m_prev_allocated = 0;
+ //assert(!priv_is_allocated_block(ptr));
+ priv_next_block(block)->m_prev_size = block->m_size;
+}
+
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment> inline
+void* rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_check_and_allocate
    (std::size_t nunits
- ,typename rbtree_best_fit<MutexFamily, VoidPointer>::block_ctrl* block
+ ,typename rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::block_ctrl* block
    ,std::size_t &received_size)
 {
    std::size_t upper_nunits = nunits + BlockCtrlUnits;
@@ -1109,32 +1216,30 @@
       std::size_t block_old_size = block->m_size;
       block->m_size = nunits;
       assert(block->m_size >= BlockCtrlUnits);
- priv_tail_size(block, block->m_size);
 
       //This is the remaining block
- block_ctrl *new_block = new(reinterpret_cast<block_ctrl*>
+ block_ctrl *rem_block = new(reinterpret_cast<block_ctrl*>
                      (detail::char_ptr_cast(block) + Alignment*nunits))block_ctrl;
- algo_impl_t::assert_alignment(new_block);
- new_block->m_size = block_old_size - nunits;
- assert(new_block->m_size >= BlockCtrlUnits);
- priv_tail_size(new_block, new_block->m_size);
- priv_mark_as_free_block(new_block);
+ algo_impl_t::assert_alignment(rem_block);
+ rem_block->m_size = block_old_size - nunits;
+ assert(rem_block->m_size >= BlockCtrlUnits);
+ priv_mark_as_free_block(rem_block);
 
       imultiset_iterator it_hint;
       if(it_old == m_header.m_imultiset.begin()
- || (--imultiset_iterator(it_old))->m_size < new_block->m_size){
+ || (--imultiset_iterator(it_old))->m_size < rem_block->m_size){
          //option a: slow but secure
- //m_header.m_imultiset.insert(m_header.m_imultiset.erase(it_old), *new_block);
+ //m_header.m_imultiset.insert(m_header.m_imultiset.erase(it_old), *rem_block);
          //option b: Construct an empty node and swap
- //Imultiset::init_node(*new_block);
- //block->swap_nodes(*new_block);
+ //Imultiset::init_node(*rem_block);
+ //block->swap_nodes(*rem_block);
          //option c: replace the node directly
- m_header.m_imultiset.replace_node(Imultiset::s_iterator_to(*it_old), *new_block);
+ m_header.m_imultiset.replace_node(Imultiset::s_iterator_to(*it_old), *rem_block);
       }
       else{
          //Now we have to update the data in the tree
          m_header.m_imultiset.erase(it_old);
- m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *new_block);
+ m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *rem_block);
       }
          
    }
@@ -1148,7 +1253,7 @@
    //We need block_ctrl for deallocation stuff, so
    //return memory user can overwrite
    m_header.m_allocated += block->m_size*Alignment;
- received_size = (block->m_size - AllocatedCtrlUnits)*Alignment;
+ received_size = (block->m_size - AllocatedCtrlUnits)*Alignment + UsableByPreviousChunk;
 
    //Mark the block as allocated
    priv_mark_as_allocated_block(block);
@@ -1157,11 +1262,12 @@
    //cleared with zero_free_memory
    TreeHook *t = static_cast<TreeHook*>(block);
    std::memset(t, 0, sizeof(*t));
+ this->priv_next_block(block)->m_prev_size = 0;
    return priv_get_user_buffer(block);
 }
 
-template<class MutexFamily, class VoidPointer>
-void rbtree_best_fit<MutexFamily, VoidPointer>::deallocate(void* addr)
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::deallocate(void* addr)
 {
    if(!addr) return;
    //-----------------------
@@ -1170,8 +1276,8 @@
    return this->priv_deallocate(addr);
 }
 
-template<class MutexFamily, class VoidPointer>
-void rbtree_best_fit<MutexFamily, VoidPointer>::priv_deallocate(void* addr)
+template<class MutexFamily, class VoidPointer, std::size_t MemAlignment>
+void rbtree_best_fit<MutexFamily, VoidPointer, MemAlignment>::priv_deallocate(void* addr)
 {
    if(!addr) return;
 
@@ -1179,7 +1285,7 @@
   
    //The blocks must be marked as allocated and the sizes must be equal
    assert(priv_is_allocated_block(block));
- assert(block->m_size == priv_tail_size(block));
+// assert(block->m_size == priv_tail_size(block));
 
    //Check if alignment and block size are right
    algo_impl_t::assert_alignment(addr);
@@ -1194,33 +1300,48 @@
    block_ctrl *block_to_insert = block;
 
    //Get the next block
- block_ctrl *next_block = priv_next_block(block);
+ block_ctrl *next_block = priv_next_block(block);
+ bool merge_with_prev = !priv_is_prev_allocated(block);
+ bool merge_with_next = !priv_is_allocated_block(next_block);
+
+ //Merge logic. First just update block sizes, then fix free chunks tree
+ if(merge_with_prev || merge_with_next){
+ //Merge if the previous is free
+ if(merge_with_prev){
+ //Get the previous block
+ block_ctrl *prev_block = priv_prev_block(block);
+ prev_block->m_size += block->m_size;
+ assert(prev_block->m_size >= BlockCtrlUnits);
+ block_to_insert = prev_block;
+ }
+ //Merge if the next is free
+ if(merge_with_next){
+ block_to_insert->m_size += next_block->m_size;
+ assert(block_to_insert->m_size >= BlockCtrlUnits);
+ if(merge_with_prev)
+ m_header.m_imultiset.erase(Imultiset::s_iterator_to(*next_block));
+ }
 
- //Merge if the next is free
- if(!priv_is_allocated_block(next_block)){
- block->m_size += next_block->m_size;
- assert(block->m_size >= BlockCtrlUnits);
- priv_tail_size(block, block->m_size);
- m_header.m_imultiset.erase(Imultiset::s_iterator_to(*next_block));
+ bool only_merge_next = !merge_with_prev && merge_with_next;
+ imultiset_iterator free_block_to_check_it
+ (Imultiset::s_iterator_to(only_merge_next ? *next_block : *block_to_insert));
+ imultiset_iterator was_bigger_it(free_block_to_check_it);
+
+ //Now try to shortcut erasure + insertion (O(log(N))) with
+ //a O(1) operation if merging does not alter tree positions
+ if(++was_bigger_it != m_header.m_imultiset.end() &&
+ block_to_insert->m_size > was_bigger_it->m_size ){
+ m_header.m_imultiset.erase(free_block_to_check_it);
+ m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *block_to_insert);
+ }
+ else if(only_merge_next){
+ m_header.m_imultiset.replace_node(free_block_to_check_it, *block_to_insert);
+ }
    }
-
- //Get the previous block
- block_ctrl *prev_block = priv_prev_block(block);
-
- //Now check that tail size and control size are equal
- assert(prev_block->m_size == priv_tail_size(prev_block));
-
- //Merge if the previous is free
- if(!priv_is_allocated_block(prev_block)){
- prev_block->m_size += block->m_size;
- assert(prev_block->m_size >= BlockCtrlUnits);
- priv_tail_size(prev_block, prev_block->m_size);
- m_header.m_imultiset.erase(Imultiset::s_iterator_to(*prev_block));
- block_to_insert = prev_block;
+ else{
+ m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *block_to_insert);
    }
-
    priv_mark_as_free_block(block_to_insert);
- m_header.m_imultiset.insert(m_header.m_imultiset.begin(), *block_to_insert);
 }
 
 } //namespace interprocess {

Modified: branches/proto/v3/boost/interprocess/mem_algo/simple_seq_fit.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/mem_algo/simple_seq_fit.hpp (original)
+++ branches/proto/v3/boost/interprocess/mem_algo/simple_seq_fit.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/offset_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/offset_ptr.hpp (original)
+++ branches/proto/v3/boost/interprocess/offset_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -61,7 +61,7 @@
    typedef void (self_t::*unspecified_bool_type)() const;
 
    #if defined(_MSC_VER) && (_MSC_VER >= 1400)
- __declspec(noinline)
+ __declspec(noinline) //this workaround is needed for msvc-8.0 and msvc-9.0
    #endif
    void set_offset(const volatile void *ptr)
    {
@@ -77,7 +77,7 @@
    }
 
    #if defined(_MSC_VER) && (_MSC_VER >= 1400)
- __declspec(noinline)
+ __declspec(noinline) //this workaround is needed for msvc-8.0 and msvc-9.0
    #endif
    void* get_pointer() const
    { return (m_offset == 1) ? 0 : (detail::char_ptr_cast(this) + m_offset); }

Modified: branches/proto/v3/boost/interprocess/segment_manager.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/segment_manager.hpp (original)
+++ branches/proto/v3/boost/interprocess/segment_manager.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -70,7 +70,8 @@
    /// @cond
    
    //Experimental. Don't use
- typedef typename MemoryAlgorithm::multiallocation_iterator multiallocation_iterator;
+ typedef typename MemoryAlgorithm::multiallocation_iterator multiallocation_iterator;
+ typedef typename MemoryAlgorithm::multiallocation_chain multiallocation_chain;
 
    /// @endcond
 
@@ -148,6 +149,11 @@
    multiallocation_iterator allocate_many(const std::size_t *elem_sizes, std::size_t n_elements, std::size_t sizeof_element, std::nothrow_t)
    { return MemoryAlgorithm::allocate_many(elem_sizes, n_elements, sizeof_element); }
 
+ //!Deallocates elements pointed by the
+ //!multiallocation iterator range.
+ void deallocate_many(multiallocation_iterator it)
+ { MemoryAlgorithm::deallocate_many(it); }
+
    /// @endcond
 
    //!Allocates nbytes bytes. Throws boost::interprocess::bad_alloc
@@ -189,6 +195,19 @@
       return ret;
    }
 
+ std::pair<void *, bool>
+ raw_allocation_command (allocation_type command, std::size_t limit_objects,
+ std::size_t preferred_objects,std::size_t &received_objects,
+ void *reuse_ptr = 0, std::size_t sizeof_object = 1)
+ {
+ std::pair<void *, bool> ret = MemoryAlgorithm::raw_allocation_command
+ ( command | nothrow_allocation, limit_objects, preferred_objects, received_objects
+ , reuse_ptr, sizeof_object);
+ if(!(command & nothrow_allocation) && !ret.first)
+ throw bad_alloc();
+ return ret;
+ }
+
    //!Deallocates the bytes allocated with allocate/allocate_many()
    //!pointed by addr
    void deallocate (void *addr)
@@ -219,6 +238,10 @@
    void zero_free_memory()
    { MemoryAlgorithm::zero_free_memory(); }
 
+ //!Returns the size of the buffer previously allocated pointed by ptr
+ std::size_t size(const void *ptr) const
+ { return MemoryAlgorithm::size(ptr); }
+
    /// @cond
    protected:
    void * prot_anonymous_construct
@@ -249,7 +272,8 @@
 
       //Now construct the header
       block_header_t * hdr = new(ptr_struct) block_header_t(block_info);
- void *ptr = hdr->value();
+ void *ptr = 0; //avoid gcc warning
+ ptr = hdr->value();
 
       //Now call constructors
       detail::array_construct(ptr, num, table);
@@ -1039,7 +1063,7 @@
       //Ignore exceptions
       BOOST_CATCH(...){
          if(dothrow)
- BOOST_RETHROW;
+ BOOST_RETHROW
          return 0;
       }
       BOOST_CATCH_END
@@ -1073,7 +1097,8 @@
       //Now construct the intrusive hook plus the header
       intrusive_value_type * intrusive_hdr = new(buffer_ptr) intrusive_value_type();
       block_header_t * hdr = new(intrusive_hdr->get_block_header())block_header_t(block_info);
- void *ptr = hdr->value();
+ void *ptr = 0; //avoid gcc warning
+ ptr = hdr->value();
 
       //Copy name to memory segment and insert data
       CharT *name_ptr = static_cast<CharT *>(hdr->template name<CharT>());
@@ -1086,7 +1111,7 @@
       //Ignore exceptions
       BOOST_CATCH(...){
          if(dothrow)
- BOOST_RETHROW;
+ BOOST_RETHROW
          return 0;
       }
       BOOST_CATCH_END
@@ -1212,7 +1237,8 @@
       }
 
       hdr = new(hdr)block_header_t(block_info);
- void *ptr = hdr->value();
+ void *ptr = 0; //avoid gcc warning
+ ptr = hdr->value();
 
       //Copy name to memory segment and insert data
       CharT *name_ptr = static_cast<CharT *>(hdr->template name<CharT>());

Modified: branches/proto/v3/boost/interprocess/shared_memory_object.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/shared_memory_object.hpp (original)
+++ branches/proto/v3/boost/interprocess/shared_memory_object.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/smart_ptr/deleter.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/smart_ptr/deleter.hpp (original)
+++ branches/proto/v3/boost/interprocess/smart_ptr/deleter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2007.
+// (C) Copyright Ion Gaztanaga 2007-2008.
 //
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/proto/v3/boost/interprocess/smart_ptr/detail/shared_count.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/smart_ptr/detail/shared_count.hpp (original)
+++ branches/proto/v3/boost/interprocess/smart_ptr/detail/shared_count.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 //
 // (C) Copyright Peter Dimov and Multi Media Ltd. 2001, 2002, 2003
 // (C) Copyright Peter Dimov 2004-2005
-// (C) Copyright Ion Gaztanaga 2006-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -92,7 +92,7 @@
       }
       BOOST_CATCH (...){
          d(p); // delete p
- throw;
+ BOOST_RETHROW
       }
       BOOST_CATCH_END
    }

Modified: branches/proto/v3/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp (original)
+++ branches/proto/v3/boost/interprocess/smart_ptr/detail/sp_counted_base_atomic.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,7 +9,7 @@
 
 // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
 // Copyright 2004-2005 Peter Dimov
-// Copyright 2007 Ion Gaztanaga
+// Copyright 2007-2008 Ion Gaztanaga
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at

Modified: branches/proto/v3/boost/interprocess/smart_ptr/shared_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/smart_ptr/shared_ptr.hpp (original)
+++ branches/proto/v3/boost/interprocess/smart_ptr/shared_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 //
 // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
 // (C) Copyright Peter Dimov 2001, 2002, 2003
-// (C) Copyright Ion Gaztanaga 2006-2007.
+// (C) Copyright Ion Gaztanaga 2006-2008.
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/interprocess/smart_ptr/weak_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/smart_ptr/weak_ptr.hpp (original)
+++ branches/proto/v3/boost/interprocess/smart_ptr/weak_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 // This file is the adaptation for Interprocess of boost/weak_ptr.hpp
 //
 // (C) Copyright Peter Dimov 2001, 2002, 2003
-// (C) Copyright Ion Gaztanaga 2006-2007.
+// (C) Copyright Ion Gaztanaga 2006-2008.
 // Distributed under the Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/boost/interprocess/streams/bufferstream.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/streams/bufferstream.hpp (original)
+++ branches/proto/v3/boost/interprocess/streams/bufferstream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/streams/vectorstream.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/streams/vectorstream.hpp (original)
+++ branches/proto/v3/boost/interprocess/streams/vectorstream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/emulation/interprocess_condition.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/emulation/interprocess_condition.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/emulation/interprocess_condition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/emulation/interprocess_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/emulation/interprocess_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/emulation/interprocess_recursive_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/emulation/interprocess_semaphore.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/emulation/interprocess_semaphore.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/emulation/interprocess_semaphore.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/emulation/named_creation_functor.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/emulation/named_creation_functor.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/emulation/named_creation_functor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2007-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/file_lock.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/file_lock.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/file_lock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/interprocess_barrier.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_barrier.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_barrier.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/interprocess_condition.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_condition.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_condition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/interprocess_semaphore.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_semaphore.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_semaphore.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/interprocess_upgradable_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_upgradable_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_upgradable_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/lock_options.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/lock_options.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/lock_options.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/mutex_family.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/mutex_family.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/mutex_family.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/named_condition.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/named_condition.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/named_condition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/named_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/named_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/named_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/named_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/named_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/named_recursive_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/named_semaphore.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/named_semaphore.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/named_semaphore.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
  //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/named_upgradable_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/named_upgradable_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/named_upgradable_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/null_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/null_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/null_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/interprocess_condition.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/interprocess_condition.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/interprocess_condition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/interprocess_semaphore.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/interprocess_semaphore.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/interprocess_semaphore.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/pthread_helpers.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/pthread_helpers.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/pthread_helpers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/ptime_to_timespec.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/ptime_to_timespec.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/ptime_to_timespec.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/posix/semaphore_wrapper.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/semaphore_wrapper.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/semaphore_wrapper.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/scoped_lock.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/scoped_lock.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/scoped_lock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/sharable_lock.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/sharable_lock.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/sharable_lock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/sync/upgradable_lock.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/upgradable_lock.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/upgradable_lock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/interprocess/windows_shared_memory.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/windows_shared_memory.hpp (original)
+++ branches/proto/v3/boost/interprocess/windows_shared_memory.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/intrusive/circular_list_algorithms.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/circular_list_algorithms.hpp (original)
+++ branches/proto/v3/boost/intrusive/circular_list_algorithms.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -54,6 +54,27 @@
    typedef typename NodeTraits::const_node_ptr const_node_ptr;
    typedef NodeTraits node_traits;
 
+ //! <b>Effects</b>: Constructs an non-used list element, so that
+ //! inited(this_node) == true
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void init(node_ptr this_node)
+ {
+ NodeTraits::set_next(this_node, 0);
+ NodeTraits::set_previous(this_node, 0);
+ }
+
+ //! <b>Effects</b>: Returns true is "this_node" is in a non-used state
+ //! as if it was initialized by the "init" function.
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static bool inited(const_node_ptr this_node)
+ { return !NodeTraits::get_next(this_node); }
+
    //! <b>Effects</b>: Constructs an empty list, making this_node the only
    //! node of the circular list:
    //! <tt>NodeTraits::get_next(this_node) == NodeTraits::get_previous(this_node)
@@ -62,11 +83,12 @@
    //! <b>Complexity</b>: Constant
    //!
    //! <b>Throws</b>: Nothing.
- static void init(node_ptr this_node)
+ static void init_header(node_ptr this_node)
    {
       NodeTraits::set_next(this_node, this_node);
       NodeTraits::set_previous(this_node, this_node);
- }
+ }
+
 
    //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
    //!
@@ -76,8 +98,11 @@
    //! <b>Complexity</b>: Constant
    //!
    //! <b>Throws</b>: Nothing.
- static bool unique(const_node_ptr this_node)
- { return NodeTraits::get_next(this_node) == this_node; }
+ static bool unique(const_node_ptr this_node)
+ {
+ node_ptr next = NodeTraits::get_next(this_node);
+ return !next || next == this_node;
+ }
 
    //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
    //!
@@ -107,11 +132,16 @@
    //! <b>Throws</b>: Nothing.
    static node_ptr unlink(node_ptr this_node)
    {
- node_ptr next(NodeTraits::get_next(this_node));
- node_ptr prev(NodeTraits::get_previous(this_node));
- NodeTraits::set_next(prev, next);
- NodeTraits::set_previous(next, prev);
- return next;
+ if(NodeTraits::get_next(this_node)){
+ node_ptr next(NodeTraits::get_next(this_node));
+ node_ptr prev(NodeTraits::get_previous(this_node));
+ NodeTraits::set_next(prev, next);
+ NodeTraits::set_previous(next, prev);
+ return next;
+ }
+ else{
+ return this_node;
+ }
    }
 
    //! <b>Requires</b>: b and e must be nodes of the same circular list or an empty range.
@@ -124,10 +154,9 @@
    static void unlink(node_ptr b, node_ptr e)
    {
       if (b != e) {
- node_ptr prev(NodeTraits::get_previous(b));
- node_ptr next(NodeTraits::get_next(e));
- NodeTraits::set_previous(next, prev);
- NodeTraits::set_next(prev, next);
+ node_ptr prevb(NodeTraits::get_previous(b));
+ NodeTraits::set_previous(e, prevb);
+ NodeTraits::set_next(prevb, e);
       }
    }
 
@@ -229,6 +258,17 @@
    public:
    static void swap_nodes(node_ptr this_node, node_ptr other_node)
    {
+ if (other_node == this_node)
+ return;
+ bool this_inited = inited(this_node);
+ bool other_inited = inited(other_node);
+ if(this_inited){
+ init_header(this_node);
+ }
+ if(other_inited){
+ init_header(other_node);
+ }
+
       node_ptr next_this(NodeTraits::get_next(this_node));
       node_ptr prev_this(NodeTraits::get_previous(this_node));
       node_ptr next_other(NodeTraits::get_next(other_node));
@@ -238,6 +278,13 @@
       swap_next(prev_this, prev_other);
       swap_next(this_node, other_node);
       swap_prev(this_node, other_node);
+
+ if(this_inited){
+ init(other_node);
+ }
+ if(other_inited){
+ init(this_node);
+ }
    }
 
    //! <b>Requires</b>: b and e must be nodes of the same circular list or an empty range.
@@ -254,8 +301,8 @@
    {
       if (b != e) {
          node_ptr prev_p(NodeTraits::get_previous(p));
- node_ptr prev_e(NodeTraits::get_previous(e));
          node_ptr prev_b(NodeTraits::get_previous(b));
+ node_ptr prev_e(NodeTraits::get_previous(e));
          NodeTraits::set_next(prev_e, p);
          NodeTraits::set_previous(p, prev_e);
          NodeTraits::set_next(prev_b, e);
@@ -308,6 +355,47 @@
          f = n;
       }
    }
+
+ //! <b>Effects</b>: Moves the node p n positions towards the end of the list.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Linear to the number of moved positions.
+ static void move_backwards(node_ptr p, std::size_t n)
+ {
+ //Null shift, nothing to do
+ if(!n) return;
+ node_ptr first = NodeTraits::get_next(p);
+ //size() == 0 or 1, nothing to do
+ if(first == NodeTraits::get_previous(p)) return;
+ unlink(p);
+ //Now get the new first node
+ while(n--){
+ first = NodeTraits::get_next(first);
+ }
+ link_before(first, p);
+ }
+
+ //! <b>Effects</b>: Moves the node p n positions towards the beginning of the list.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Linear to the number of moved positions.
+ static void move_forward(node_ptr p, std::size_t n)
+ {
+ //Null shift, nothing to do
+ if(!n) return;
+ node_ptr last = NodeTraits::get_previous(p);
+ //size() == 0 or 1, nothing to do
+ if(last == NodeTraits::get_next(p)) return;
+
+ unlink(p);
+ //Now get the new last node
+ while(n--){
+ last = NodeTraits::get_previous(last);
+ }
+ link_after(last, p);
+ }
 };
 
 } //namespace intrusive

Modified: branches/proto/v3/boost/intrusive/circular_slist_algorithms.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/circular_slist_algorithms.hpp (original)
+++ branches/proto/v3/boost/intrusive/circular_slist_algorithms.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,6 +16,8 @@
 
 #include <boost/intrusive/detail/config_begin.hpp>
 #include <boost/intrusive/intrusive_fwd.hpp>
+#include <boost/intrusive/detail/common_slist_algorithms.hpp>
+#include <boost/intrusive/detail/assert.hpp>
 #include <cstddef>
 
 namespace boost {
@@ -25,7 +27,7 @@
 //! forming a circular singly linked list. An empty circular list is formed by a node
 //! whose pointer to the next node points to itself.
 //!
-//! circular_slist_algorithms is configured with a NodeTraits class, which capsulates the
+//! circular_slist_algorithms is configured with a NodeTraits class, which encapsulates the
 //! information about the node to be manipulated. NodeTraits must support the
 //! following interface:
 //!
@@ -44,22 +46,98 @@
 //! <tt>static void set_next(node_ptr n, node_ptr next);</tt>
 template<class NodeTraits>
 class circular_slist_algorithms
+ /// @cond
+ : public detail::common_slist_algorithms<NodeTraits>
+ /// @endcond
 {
+ /// @cond
+ typedef detail::common_slist_algorithms<NodeTraits> base_t;
+ /// @endcond
    public:
    typedef typename NodeTraits::node_ptr node_ptr;
    typedef typename NodeTraits::const_node_ptr const_node_ptr;
    typedef NodeTraits node_traits;
 
+ #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
+
+ //! <b>Effects</b>: Constructs an non-used list element, putting the next
+ //! pointer to null:
+ //! <tt>NodeTraits::get_next(this_node) == 0
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void init(node_ptr this_node);
+
    //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
    //!
- //! <b>Effects</b>: Returns the previous node of this_node in the circular list.
+ //! <b>Effects</b>: Returns true is "this_node" is the only node of a circular list:
+ //! or it's a not inserted node:
+ //! <tt>return !NodeTraits::get_next(this_node) || NodeTraits::get_next(this_node) == this_node</tt>
    //!
- //! <b>Complexity</b>: Linear to the number of elements in the circular list.
+ //! <b>Complexity</b>: Constant
    //!
    //! <b>Throws</b>: Nothing.
- static node_ptr get_previous_node(node_ptr this_node)
- { return get_previous_node(this_node, this_node); }
+ static bool unique(const_node_ptr this_node);
 
+ //! <b>Effects</b>: Returns true is "this_node" has the same state as
+ //! if it was inited using "init(node_ptr)"
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static bool inited(const_node_ptr this_node);
+
+ //! <b>Requires</b>: prev_node must be in a circular list or be an empty circular list.
+ //!
+ //! <b>Effects</b>: Unlinks the next node of prev_node from the circular list.
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void unlink_after(node_ptr prev_node);
+
+ //! <b>Requires</b>: prev_node and last_node must be in a circular list
+ //! or be an empty circular list.
+ //!
+ //! <b>Effects</b>: Unlinks the range (prev_node, last_node) from the circular list.
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void unlink_after(node_ptr prev_node, node_ptr last_node);
+
+ //! <b>Requires</b>: prev_node must be a node of a circular list.
+ //!
+ //! <b>Effects</b>: Links this_node after prev_node in the circular list.
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void link_after(node_ptr prev_node, node_ptr this_node);
+
+ //! <b>Requires</b>: b and e must be nodes of the same circular list or an empty range.
+ //! and p must be a node of a different circular list.
+ //!
+ //! <b>Effects</b>: Removes the nodes from (b, e] range from their circular list and inserts
+ //! them after p in p's circular list.
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void transfer_after(node_ptr p, node_ptr b, node_ptr e);
+
+ #endif //#ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
+
+ //! <b>Effects</b>: Constructs an empty list, making this_node the only
+ //! node of the circular list:
+ //! <tt>NodeTraits::get_next(this_node) == this_node</tt>.
+ //!
+ //! <b>Complexity</b>: Constant
+ //!
+ //! <b>Throws</b>: Nothing.
+ static void init_header(node_ptr this_node)
+ { NodeTraits::set_next(this_node, this_node); }
 
    //! <b>Requires</b>: this_node and prev_init_node must be in the same circular list.
    //!
@@ -71,15 +149,17 @@
    //!
    //! <b>Throws</b>: Nothing.
    static node_ptr get_previous_node(node_ptr prev_init_node, node_ptr this_node)
- {
- node_ptr p = prev_init_node;
- for( node_ptr p_next
- ; this_node != (p_next = NodeTraits::get_next(p))
- ; p = p_next){
- //empty
- }
- return p;
- }
+ { return base_t::get_previous_node(prev_init_node, this_node); }
+
+ //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
+ //!
+ //! <b>Effects</b>: Returns the previous node of this_node in the circular list.
+ //!
+ //! <b>Complexity</b>: Linear to the number of elements in the circular list.
+ //!
+ //! <b>Throws</b>: Nothing.
+ static node_ptr get_previous_node(node_ptr this_node)
+ { return base_t::get_previous_node(this_node, this_node); }
 
    //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
    //!
@@ -113,28 +193,6 @@
       return p;
    }
 
- //! <b>Effects</b>: Constructs an empty list, making this_node the only
- //! node of the circular list:
- //! <tt>NodeTraits::get_next(this_node) == NodeTraits::get_previous(this_node)
- //! == this_node</tt>.
- //!
- //! <b>Complexity</b>: Constant
- //!
- //! <b>Throws</b>: Nothing.
- static void init(node_ptr this_node)
- { NodeTraits::set_next(this_node, this_node); }
-
- //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
- //!
- //! <b>Effects</b>: Returns true is "this_node" is the only node of a circular list:
- //! <tt>return NodeTraits::get_next(this_node) == this_node</tt>
- //!
- //! <b>Complexity</b>: Constant
- //!
- //! <b>Throws</b>: Nothing.
- static bool unique(const_node_ptr this_node)
- { return NodeTraits::get_next(this_node) == this_node; }
-
    //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
    //!
    //! <b>Effects</b>: Returns the number of nodes in a circular list. If the circular list
@@ -154,34 +212,7 @@
       return result;
    }
 
- //! <b>Requires</b>: prev_node must be in a circular list or be an empty circular list.
- //!
- //! <b>Effects</b>: Unlinks the next node of prev_node from the circular list.
- //!
- //! <b>Complexity</b>: Constant
- //!
- //! <b>Throws</b>: Nothing.
- static void unlink_after(node_ptr prev_node)
- {
- node_ptr this_node(NodeTraits::get_next(prev_node));
- NodeTraits::set_next(prev_node, NodeTraits::get_next(this_node));
- NodeTraits::set_next(this_node, this_node);
- }
-
- //! <b>Requires</b>: nxt_node must be in a circular list or be an empty circular list.
- //!
- //! <b>Effects</b>: Unlinks the previous node of nxt_node from the circular list.
- //!
- //! <b>Complexity</b>: Linear to the elements in the circular list.
- //!
- //! <b>Throws</b>: Nothing.
- static void unlink_before(node_ptr nxt_node)
- {
- node_ptr prev_to_erase(get_previous_previous_node(nxt_node));
- unlink_after(prev_to_erase);
- }
-
- //! <b>Requires</b>: this_node must be in a circular list or be an empty circular list.
+ //! <b>Requires</b>: this_node must be in a circular list, be an empty circular list or be inited.
    //!
    //! <b>Effects</b>: Unlinks the node from the circular list.
    //!
@@ -189,20 +220,9 @@
    //!
    //! <b>Throws</b>: Nothing.
    static void unlink(node_ptr this_node)
- { unlink_after(get_previous_node(this_node)); }
-
- //! <b>Requires</b>: prev_node must be a node of a circular list.
- //!
- //! <b>Effects</b>: Links this_node after prev_node in the circular list.
- //!
- //! <b>Complexity</b>: Constant
- //!
- //! <b>Throws</b>: Nothing.
- static void link_after(node_ptr prev_node, node_ptr this_node)
    {
- node_ptr this_nxt = NodeTraits::get_next(prev_node);
- NodeTraits::set_next(this_node, this_nxt);
- NodeTraits::set_next(prev_node, this_node);
+ if(NodeTraits::get_next(this_node))
+ base_t::unlink_after(get_previous_node(this_node));
    }
 
    //! <b>Requires</b>: nxt_node must be a node of a circular list.
@@ -213,7 +233,7 @@
    //!
    //! <b>Throws</b>: Nothing.
    static void link_before (node_ptr nxt_node, node_ptr this_node)
- { link_after(get_previous_node(nxt_node), this_node); }
+ { base_t::link_after(get_previous_node(nxt_node), this_node); }
 
    //! <b>Requires</b>: this_node and other_node must be nodes inserted
    //! in circular lists or be empty circular lists.
@@ -229,8 +249,17 @@
    {
       if (other_node == this_node)
          return;
- bool empty1 = unique(this_node);
- bool empty2 = unique(other_node);
+ bool this_inited = base_t::inited(this_node);
+ bool other_inited = base_t::inited(other_node);
+ if(this_inited){
+ base_t::init_header(this_node);
+ }
+ if(other_inited){
+ base_t::init_header(other_node);
+ }
+
+ bool empty1 = base_t::unique(this_node);
+ bool empty2 = base_t::unique(other_node);
       node_ptr prev_this (get_previous_node(this_node));
       node_ptr prev_other(get_previous_node(other_node));
 
@@ -240,26 +269,12 @@
       NodeTraits::set_next(other_node, this_next);
       NodeTraits::set_next(empty1 ? other_node : prev_this, other_node);
       NodeTraits::set_next(empty2 ? this_node : prev_other, this_node);
- }
 
- //! <b>Requires</b>: b and e must be nodes of the same circular list or an empty range.
- //! and p must be a node of a different circular list.
- //!
- //! <b>Effects</b>: Removes the nodes from [b, e) range from their circular list and inserts
- //! them after p in p's circular list.
- //!
- //! <b>Complexity</b>: Constant
- //!
- //! <b>Throws</b>: Nothing.
- static void transfer_after(node_ptr p, node_ptr b, node_ptr e)
- {
- if (p != b && p != e) {
- node_ptr next_b = NodeTraits::get_next(b);
- node_ptr next_e = NodeTraits::get_next(e);
- node_ptr next_p = NodeTraits::get_next(p);
- NodeTraits::set_next(b, next_e);
- NodeTraits::set_next(e, next_p);
- NodeTraits::set_next(p, next_b);
+ if(this_inited){
+ base_t::init(other_node);
+ }
+ if(other_inited){
+ base_t::init(this_node);
       }
    }
 
@@ -275,8 +290,109 @@
          node_ptr nxt(NodeTraits::get_next(i));
          if (nxt == e)
             break;
- transfer_after(e, i, nxt);
+ base_t::transfer_after(e, i, nxt);
+ }
+ }
+
+ //! <b>Effects</b>: Moves the node p n positions towards the end of the list.
+ //!
+ //! <b>Returns</b>: The previous node of p after the function if there has been any movement,
+ //! Null if n leads to no movement.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Linear to the number of elements plus the number moved positions.
+ static node_ptr move_backwards(node_ptr p, std::size_t n)
+ {
+ //Null shift, nothing to do
+ if(!n) return 0;
+ node_ptr first = NodeTraits::get_next(p);
+
+ //count() == 1 or 2, nothing to do
+ if(NodeTraits::get_next(first) == p)
+ return 0;
+
+ bool end_found = false;
+ node_ptr new_last(0);
+
+ //Now find the new last node according to the shift count.
+ //If we find p before finding the new last node
+ //unlink p, shortcut the search now that we know the size of the list
+ //and continue.
+ for(std::size_t i = 1; i <= n; ++i){
+ new_last = first;
+ first = NodeTraits::get_next(first);
+ if(first == p){
+ //Shortcut the shift with the modulo of the size of the list
+ n %= i;
+ if(!n)
+ return 0;
+ i = 0;
+ //Unlink p and continue the new first node search
+ first = NodeTraits::get_next(p);
+ base_t::unlink_after(new_last);
+ end_found = true;
+ }
       }
+
+ //If the p has not been found in the previous loop, find it
+ //starting in the new first node and unlink it
+ if(!end_found){
+ base_t::unlink_after(base_t::get_previous_node(first, p));
+ }
+
+ //Now link p after the new last node
+ base_t::link_after(new_last, p);
+ return new_last;
+ }
+
+ //! <b>Effects</b>: Moves the node p n positions towards the beginning of the list.
+ //!
+ //! <b>Returns</b>: The previous node of p after the function if there has been any movement,
+ //! Null if n leads equals to no movement.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Linear to the number of elements plus the number moved positions.
+ static node_ptr move_forward(node_ptr p, std::size_t n)
+ {
+ //Null shift, nothing to do
+ if(!n) return 0;
+ node_ptr first = node_traits::get_next(p);
+
+ //count() == 1 or 2, nothing to do
+ if(node_traits::get_next(first) == p) return 0;
+
+ //Iterate until p is found to know where the current last node is.
+ //If the shift count is less than the size of the list, we can also obtain
+ //the position of the new last node after the shift.
+ node_ptr old_last(first), next_to_it, new_last(p);
+ std::size_t distance = 1;
+ while(p != (next_to_it = node_traits::get_next(old_last))){
+ if(++distance > n)
+ new_last = node_traits::get_next(new_last);
+ old_last = next_to_it;
+ }
+ //If the shift was bigger or equal than the size, obtain the equivalent
+ //forward shifts and find the new last node.
+ if(distance <= n){
+ //Now find the equivalent forward shifts.
+ //Shortcut the shift with the modulo of the size of the list
+ std::size_t new_before_last_pos = (distance - (n % distance))% distance;
+ //If the shift is a multiple of the size there is nothing to do
+ if(!new_before_last_pos) return 0;
+
+ for( new_last = p
+ ; new_before_last_pos--
+ ; new_last = node_traits::get_next(new_last)){
+ //empty
+ }
+ }
+
+ //Now unlink p and link it after the new last node
+ base_t::unlink_after(old_last);
+ base_t::link_after(new_last, p);
+ return new_last;
    }
 };
 

Modified: branches/proto/v3/boost/intrusive/detail/tree_algorithms.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/detail/tree_algorithms.hpp (original)
+++ branches/proto/v3/boost/intrusive/detail/tree_algorithms.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -137,9 +137,9 @@
    { return uncast(header); }
 
    //! <b>Requires</b>: node is a node of the tree or an node initialized
- //! by init(...).
+ //! by init(...) or init_node.
    //!
- //! <b>Effects</b>: Returns true if the node is initialized by init().
+ //! <b>Effects</b>: Returns true if the node is initialized by init() or init_node().
    //!
    //! <b>Complexity</b>: Constant time.
    //!

Modified: branches/proto/v3/boost/intrusive/detail/utilities.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/detail/utilities.hpp (original)
+++ branches/proto/v3/boost/intrusive/detail/utilities.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -498,8 +498,8 @@
 
 inline float fast_log2 (float val)
 {
- boost::uint32_t * const exp_ptr =
- static_cast <boost::uint32_t * const>(static_cast<void * const >(&val));
+ boost::uint32_t * exp_ptr =
+ static_cast<boost::uint32_t *>(static_cast<void*>(&val));
    boost::uint32_t x = *exp_ptr;
    const int log_2 = (int)(((x >> 23) & 255) - 128);
    x &= ~(255 << 23);

Modified: branches/proto/v3/boost/intrusive/hashtable.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/hashtable.hpp (original)
+++ branches/proto/v3/boost/intrusive/hashtable.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -747,7 +747,7 @@
             }
             BOOST_INTRUSIVE_CATCH(...){
                this->clear_and_dispose(disposer);
- BOOST_RETHROW;
+ BOOST_INTRUSIVE_RETHROW;
             }
             BOOST_INTRUSIVE_CATCH_END
          }

Modified: branches/proto/v3/boost/intrusive/intrusive_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/intrusive_fwd.hpp (original)
+++ branches/proto/v3/boost/intrusive/intrusive_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -69,6 +69,8 @@
    , class O1 = none
    , class O2 = none
    , class O3 = none
+ , class O4 = none
+ , class O5 = none
>
 class slist;
 

Modified: branches/proto/v3/boost/intrusive/list.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/list.hpp (original)
+++ branches/proto/v3/boost/intrusive/list.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -208,7 +208,7 @@
       : data_(v_traits)
    {
       this->priv_size_traits().set_size(size_type(0));
- node_algorithms::init(this->get_root_node());
+ node_algorithms::init_header(this->get_root_node());
    }
 
    //! <b>Requires</b>: Dereferencing iterator must yield an lvalue of type value_type.
@@ -224,7 +224,7 @@
       : data_(v_traits)
    {
       this->priv_size_traits().set_size(size_type(0));
- node_algorithms::init(this->get_root_node());
+ node_algorithms::init_header(this->get_root_node());
       this->insert(this->end(), b, e);
    }
 
@@ -258,7 +258,7 @@
    {
       node_ptr to_insert = get_real_value_traits().to_node_ptr(value);
       if(safemode_or_autounlink)
- BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(to_insert));
+ BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::inited(to_insert));
       node_algorithms::link_before(this->get_root_node(), to_insert);
       this->priv_size_traits().increment();
    }
@@ -277,7 +277,7 @@
    {
       node_ptr to_insert = get_real_value_traits().to_node_ptr(value);
       if(safemode_or_autounlink)
- BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(to_insert));
+ BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::inited(to_insert));
       node_algorithms::link_before(node_traits::get_next(this->get_root_node()), to_insert);
       this->priv_size_traits().increment();
    }
@@ -290,14 +290,8 @@
    //! <b>Complexity</b>: Constant.
    //!
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the erased element.
- void pop_back()
- {
- node_ptr to_erase = node_traits::get_previous(this->get_root_node());
- node_algorithms::unlink(to_erase);
- this->priv_size_traits().decrement();
- if(safemode_or_autounlink)
- node_algorithms::init(to_erase);
- }
+ void pop_back()
+ { return this->pop_back_and_dispose(detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -329,14 +323,8 @@
    //! <b>Complexity</b>: Constant.
    //!
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the erased element.
- void pop_front()
- {
- node_ptr to_erase = node_traits::get_next(this->get_root_node());
- node_algorithms::unlink(to_erase);
- this->priv_size_traits().decrement();
- if(safemode_or_autounlink)
- node_algorithms::init(to_erase);
- }
+ void pop_front()
+ { return this->pop_front_and_dispose(detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -406,7 +394,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator begin() const
- { return cbegin(); }
+ { return this->cbegin(); }
 
    //! <b>Effects</b>: Returns a const_iterator to the first element contained in the list.
    //!
@@ -430,7 +418,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator end() const
- { return cend(); }
+ { return this->cend(); }
 
    //! <b>Effects</b>: Returns a constant iterator to the end of the list.
    //!
@@ -447,7 +435,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    reverse_iterator rbegin()
- { return reverse_iterator(end()); }
+ { return reverse_iterator(this->end()); }
 
    //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
    //! of the reversed list.
@@ -456,7 +444,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_reverse_iterator rbegin() const
- { return crbegin(); }
+ { return this->crbegin(); }
 
    //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
    //! of the reversed list.
@@ -483,7 +471,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_reverse_iterator rend() const
- { return crend(); }
+ { return this->crend(); }
 
    //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
    //! of the reversed list.
@@ -492,7 +480,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_reverse_iterator crend() const
- { return const_reverse_iterator(begin()); }
+ { return const_reverse_iterator(this->begin()); }
 
    //! <b>Precondition</b>: end_iterator must be a valid end iterator
    //! of list.
@@ -503,7 +491,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    static list_impl &container_from_end_iterator(iterator end_iterator)
- { return priv_container_from_end_iterator(end_iterator); }
+ { return list_impl::priv_container_from_end_iterator(end_iterator); }
 
    //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
    //! of list.
@@ -514,7 +502,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    static const list_impl &container_from_end_iterator(const_iterator end_iterator)
- { return priv_container_from_end_iterator(end_iterator); }
+ { return list_impl::priv_container_from_end_iterator(end_iterator); }
 
    //! <b>Effects</b>: Returns the number of the elements contained in the list.
    //!
@@ -540,7 +528,7 @@
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    bool empty() const
- { return node_algorithms::unique(this->get_root_node()); }
+ { return node_algorithms::unique(this->get_root_node()); }
 
    //! <b>Effects</b>: Swaps the elements of x and *this.
    //!
@@ -569,21 +557,7 @@
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    void shift_backwards(size_type n = 1)
- {
- //Null shift, nothing to do
- if(!n) return;
- node_ptr root = this->get_root_node();
- node_ptr last = node_traits::get_previous(root);
- //size() == 0 or 1, nothing to do
- if(last == node_traits::get_next(root)) return;
-
- node_algorithms::unlink(root);
- //Now get the new last node
- while(n--){
- last = node_traits::get_previous(last);
- }
- node_algorithms::link_after(last, root);
- }
+ { node_algorithms::move_forward(this->get_root_node(), n); }
 
    //! <b>Effects</b>: Moves forward all the elements, so that the second
    //! element becomes the first, the third becomes the second...
@@ -595,20 +569,7 @@
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    void shift_forward(size_type n = 1)
- {
- //Null shift, nothing to do
- if(!n) return;
- node_ptr root = this->get_root_node();
- node_ptr first = node_traits::get_next(root);
- //size() == 0 or 1, nothing to do
- if(first == node_traits::get_previous(root)) return;
- node_algorithms::unlink(root);
- //Now get the new first node
- while(n--){
- first = node_traits::get_next(first);
- }
- node_algorithms::link_before(first, root);
- }
+ { node_algorithms::move_backwards(this->get_root_node(), n); }
 
    //! <b>Effects</b>: Erases the element pointed by i of the list.
    //! No destructors are called.
@@ -623,16 +584,7 @@
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the
    //! erased element.
    iterator erase(iterator i)
- {
- iterator erase = i;
- ++i;
- node_ptr to_erase = erase.pointed_node();
- node_algorithms::unlink(to_erase);
- this->priv_size_traits().decrement();
- if(safemode_or_autounlink)
- node_algorithms::init(to_erase);
- return i;
- }
+ { return this->erase_and_dispose(i, detail::null_disposer()); }
 
    //! <b>Requires</b>: first and last must be valid iterator to elements in *this.
    //!
@@ -652,10 +604,7 @@
    iterator erase(iterator b, iterator e)
    {
       if(safemode_or_autounlink || constant_time_size){
- while(b != e){
- b = this->erase(b);
- }
- return b;
+ return this->erase_and_dispose(b, e, detail::null_disposer());
       }
       else{
          node_algorithms::unlink(b.pointed_node(), e.pointed_node());
@@ -680,14 +629,13 @@
    template <class Disposer>
    iterator erase_and_dispose(iterator i, Disposer disposer)
    {
- iterator erase = i;
+ node_ptr to_erase(i.pointed_node());
       ++i;
- node_ptr to_erase = erase.pointed_node();
       node_algorithms::unlink(to_erase);
       this->priv_size_traits().decrement();
       if(safemode_or_autounlink)
          node_algorithms::init(to_erase);
- disposer(get_real_value_traits().to_value_ptr(to_erase));
+ disposer(this->get_real_value_traits().to_value_ptr(to_erase));
       return i;
    }
 
@@ -708,10 +656,17 @@
    template <class Disposer>
    iterator erase_and_dispose(iterator b, iterator e, Disposer disposer)
    {
- while(b != e){
- b = this->erase_and_dispose(b, disposer);
+ node_ptr bp(b.pointed_node()), ep(e.pointed_node());
+ node_algorithms::unlink(bp, ep);
+ while(bp != ep){
+ node_ptr to_erase(bp);
+ bp = node_traits::get_next(bp);
+ if(safemode_or_autounlink)
+ node_algorithms::init(to_erase);
+ disposer(get_real_value_traits().to_value_ptr(to_erase));
+ this->priv_size_traits().decrement();
       }
- return b;
+ return e;
    }
 
    //! <b>Effects</b>: Erases all the elements of the container.
@@ -726,10 +681,10 @@
    void clear()
    {
       if(safemode_or_autounlink){
- this->erase(this->begin(), this->end());
+ this->clear_and_dispose(detail::null_disposer());
       }
       else{
- node_algorithms::init(this->get_root_node());
+ node_algorithms::init_header(this->get_root_node());
          this->priv_size_traits().set_size(size_type(0));
       }
    }
@@ -747,7 +702,18 @@
    //! <b>Note</b>: Invalidates the iterators to the erased elements.
    template <class Disposer>
    void clear_and_dispose(Disposer disposer)
- { this->erase_and_dispose(this->begin(), this->end(), disposer); }
+ {
+ iterator it(this->begin()), itend(this->end());
+ while(it != itend){
+ node_ptr to_erase(it.pointed_node());
+ ++it;
+ if(safemode_or_autounlink)
+ node_algorithms::init(to_erase);
+ disposer(get_real_value_traits().to_value_ptr(to_erase));
+ }
+ node_algorithms::init_header(this->get_root_node());
+ this->priv_size_traits().set_size(0);
+ }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -792,9 +758,9 @@
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    iterator insert(iterator p, reference value)
    {
- node_ptr to_insert = get_real_value_traits().to_node_ptr(value);
+ node_ptr to_insert = this->get_real_value_traits().to_node_ptr(value);
       if(safemode_or_autounlink)
- BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(to_insert));
+ BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::inited(to_insert));
       node_algorithms::link_before(p.pointed_node(), to_insert);
       this->priv_size_traits().increment();
       return iterator(to_insert, this);
@@ -921,19 +887,10 @@
    //! list. Iterators of this list and all the references are not invalidated.
    void splice(iterator p, list_impl&x, iterator start, iterator end)
    {
- if(start != end){
- if(constant_time_size){
- size_traits &thist = this->priv_size_traits();
- size_traits &xt = x.priv_size_traits();
- size_type increment = std::distance(start, end);
- node_algorithms::transfer(p.pointed_node(), start.pointed_node(), end.pointed_node());
- thist.set_size(thist.get_size() + increment);
- xt.set_size(xt.get_size() - increment);
- }
- else{
- node_algorithms::transfer(p.pointed_node(), start.pointed_node(), end.pointed_node());
- }
- }
+ if(constant_time_size)
+ this->splice(p, x, start, end, std::distance(start, end));
+ else
+ this->splice(p, x, start, end, 1);//distance is a dummy value
    }
 
    //! <b>Requires</b>: p must be a valid iterator of *this.
@@ -978,7 +935,7 @@
    //! <b>Complexity</b>: The number of comparisons is approximately N log N, where N
    //! is the list's size.
    void sort()
- { sort(std::less<value_type>()); }
+ { this->sort(std::less<value_type>()); }
 
    //! <b>Requires</b>: p must be a comparison function that induces a strict weak ordering
    //!
@@ -1031,7 +988,7 @@
    //!
    //! <b>Note</b>: Iterators and references are not invalidated
    void merge(list_impl& x)
- { merge(x, std::less<value_type>()); }
+ { this->merge(x, std::less<value_type>()); }
 
    //! <b>Requires</b>: p must be a comparison function that induces a strict weak
    //! ordering and both *this and x must be sorted according to that ordering
@@ -1050,9 +1007,9 @@
    template<class Predicate>
    void merge(list_impl& x, Predicate p)
    {
- iterator e = this->end();
- iterator bx = x.begin();
- iterator ex = x.end();
+ iterator e(this->end());
+ iterator bx(x.begin());
+ iterator ex(x.end());
 
       for (iterator b = this->begin(); b != e; ++b) {
          size_type n(0);
@@ -1087,7 +1044,7 @@
    //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
    //! and iterators to elements that are not removed remain valid.
    void remove(const_reference value)
- { remove_if(detail::equal_to_value<const_reference>(value)); }
+ { this->remove_if(detail::equal_to_value<const_reference>(value)); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1102,7 +1059,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class Disposer>
    void remove_and_dispose(const_reference value, Disposer disposer)
- { remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
+ { this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
 
    //! <b>Effects</b>: Removes all the elements for which a specified
    //! predicate is satisfied. No destructors are called.
@@ -1115,7 +1072,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class Pred>
    void remove_if(Pred pred)
- { remove_and_dispose_if(pred, detail::null_disposer()); }
+ { this->remove_and_dispose_if(pred, detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1132,17 +1089,15 @@
    template<class Pred, class Disposer>
    void remove_and_dispose_if(Pred pred, Disposer disposer)
    {
- iterator first = begin();
- iterator last = end();
- while(first != last) {
- iterator next = first;
- ++next;
- if(pred(*first)){
- pointer p = first.operator->();
- this->erase(first);
- disposer(p);
+ iterator cur(this->begin());
+ iterator last(this->end());
+ while(cur != last) {
+ if(pred(*cur)){
+ cur = this->erase_and_dispose(cur, disposer);
+ }
+ else{
+ ++cur;
          }
- first = next;
       }
    }
 
@@ -1156,7 +1111,7 @@
    //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
    //! and iterators to elements that are not removed remain valid.
    void unique()
- { unique_and_dispose(std::equal_to<value_type>(), detail::null_disposer()); }
+ { this->unique_and_dispose(std::equal_to<value_type>(), detail::null_disposer()); }
 
    //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
    //! elements that satisfy some binary predicate from the list.
@@ -1170,7 +1125,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class BinaryPredicate>
    void unique(BinaryPredicate pred)
- { unique_and_dispose(pred, detail::null_disposer()); }
+ { this->unique_and_dispose(pred, detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1186,7 +1141,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class Disposer>
    void unique_and_dispose(Disposer disposer)
- { unique_and_dispose(std::equal_to<value_type>(), disposer); }
+ { this->unique_and_dispose(std::equal_to<value_type>(), disposer); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1203,18 +1158,19 @@
    template<class BinaryPredicate, class Disposer>
    void unique_and_dispose(BinaryPredicate pred, Disposer disposer)
    {
- if(!this->empty()){
- iterator first = begin();
- iterator after = first;
+ iterator itend(this->end());
+ iterator cur(this->begin());
+
+ if(cur != itend){
+ iterator after(cur);
          ++after;
- while(after != this->end()){
- if(pred(*first, *after)){
- pointer p = after.operator->();
- after = erase(after);
- disposer(p);
+ while(after != itend){
+ if(pred(*cur, *after)){
+ after = this->erase_and_dispose(after, disposer);
             }
             else{
- first = after++;
+ cur = after;
+ ++after;
             }
          }
       }
@@ -1234,7 +1190,7 @@
    static iterator s_iterator_to(reference value)
    {
       BOOST_STATIC_ASSERT((!stateful_value_traits));
- BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::unique(real_value_traits::to_node_ptr(value)));
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(real_value_traits::to_node_ptr(value)));
       return iterator(real_value_traits::to_node_ptr(value), 0);
    }
 
@@ -1252,7 +1208,7 @@
    static const_iterator s_iterator_to(const_reference value)
    {
       BOOST_STATIC_ASSERT((!stateful_value_traits));
- BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::unique(real_value_traits::to_node_ptr(const_cast<reference> (value))));
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(real_value_traits::to_node_ptr(const_cast<reference> (value))));
       return const_iterator(real_value_traits::to_node_ptr(const_cast<reference> (value)), 0);
    }
 
@@ -1266,8 +1222,8 @@
    //!
    //! <b>Note</b>: Iterators and references are not invalidated.
    iterator iterator_to(reference value)
- {
- BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::unique(real_value_traits::to_node_ptr(value)));
+ {
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(real_value_traits::to_node_ptr(value)));
       return iterator(real_value_traits::to_node_ptr(value), this);
    }
 
@@ -1281,8 +1237,8 @@
    //!
    //! <b>Note</b>: Iterators and references are not invalidated.
    const_iterator iterator_to(const_reference value) const
- {
- BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::unique(real_value_traits::to_node_ptr(const_cast<reference> (value))));
+ {
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(!node_algorithms::inited(real_value_traits::to_node_ptr(const_cast<reference> (value))));
       return const_iterator(real_value_traits::to_node_ptr(const_cast<reference> (value)), this);
    }
 

Modified: branches/proto/v3/boost/intrusive/options.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/options.hpp (original)
+++ branches/proto/v3/boost/intrusive/options.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -318,10 +318,8 @@
 /// @endcond
 };
 
-//!This option setter specifies the type of
-//!a void pointer. This will instruct the hook
-//!to use this type of pointer instead of the
-//!default one
+//!This option setter specifies the link mode
+//!(normal_link, safe_link or auto_unlink)
 template<link_mode_type LinkType>
 struct link_mode
 {
@@ -334,10 +332,8 @@
 /// @endcond
 };
 
-//!This option setter specifies the type of
-//!a void pointer. This will instruct the hook
-//!to use this type of pointer instead of the
-//!default one
+//!This option setter specifies if the hook
+//!should be optimized for size instead of for speed.
 template<bool Enabled>
 struct optimize_size
 {
@@ -350,6 +346,34 @@
 /// @endcond
 };
 
+//!This option setter specifies if the list container should
+//!use a linear implementation instead of a circular one.
+template<bool Enabled>
+struct linear
+{
+/// @cond
+ template<class Base>
+ struct pack : Base
+ {
+ static const bool linear = Enabled;
+ };
+/// @endcond
+};
+
+//!This option setter specifies if the list container should
+//!use a linear implementation instead of a circular one.
+template<bool Enabled>
+struct cache_last
+{
+/// @cond
+ template<class Base>
+ struct pack : Base
+ {
+ static const bool cache_last = Enabled;
+ };
+/// @endcond
+};
+
 //!This option setter specifies the bucket traits
 //!class for unordered associative containers. When this option is specified,
 //!instead of using the default bucket traits, a user defined holder will be defined
@@ -475,6 +499,7 @@
       , tag<default_tag>
       , optimize_size<false>
       , store_hash<false>
+ , linear<false>
>::type
 {};
 

Modified: branches/proto/v3/boost/intrusive/slist.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/slist.hpp (original)
+++ branches/proto/v3/boost/intrusive/slist.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,13 +21,15 @@
 #include <boost/intrusive/intrusive_fwd.hpp>
 #include <boost/intrusive/slist_hook.hpp>
 #include <boost/intrusive/circular_slist_algorithms.hpp>
+#include <boost/intrusive/linear_slist_algorithms.hpp>
 #include <boost/intrusive/detail/pointer_to_other.hpp>
 #include <boost/intrusive/link_mode.hpp>
 #include <boost/intrusive/options.hpp>
 #include <iterator>
 #include <functional>
 #include <algorithm>
-#include <cstddef>
+#include <cstddef> //std::size_t
+#include <utility> //std::pair
 
 namespace boost {
 namespace intrusive {
@@ -46,12 +48,27 @@
 struct get_default_slist_hook
 { typedef typename T::default_slist_hook type; };
 
-template <class ValueTraits, class SizeType, bool ConstantTimeSize>
+template <class ValueTraits, class SizeType, bool ConstantTimeSize, bool Linear, bool CacheLast>
 struct slistopt
 {
    typedef ValueTraits value_traits;
    typedef SizeType size_type;
- static const bool constant_time_size = ConstantTimeSize;
+ static const bool constant_time_size = ConstantTimeSize;
+ static const bool linear = Linear;
+ static const bool cache_last = CacheLast;
+};
+
+template<class Node, class NodePtr, bool>
+struct root_plus_last
+{
+ Node root_;
+ NodePtr last_;
+};
+
+template<class Node, class NodePtr>
+struct root_plus_last<Node, NodePtr, false>
+{
+ Node root_;
 };
 
 template <class T>
@@ -66,7 +83,9 @@
>::type
>
       , constant_time_size<true>
+ , linear<false>
       , size_type<std::size_t>
+ , cache_last<false>
>::type
 {};
 
@@ -86,15 +105,15 @@
 //!
 //! The container supports the following options:
 //! \c base_hook<>/member_hook<>/value_traits<>,
-//! \c constant_time_size<> and \c size_type<>.
+//! \c constant_time_size<>, \c size_type<>,
+//! \c linear<> and \c cache_last<>.
 //!
 //! The iterators of slist are forward iterators. slist provides a static
 //! function called "previous" to compute the previous iterator of a given iterator.
 //! This function has linear complexity. To improve the usability esp. with
 //! the '*_after' functions, ++end() == begin() and previous(begin()) == end()
-//! are defined. In addition, whenever you have an end iterator, 'after this
-//! iterator' means 'at the beginning of the list'. To improve the self-documentation
-//! a "before_begin()" function is defined, returning the end() iterator.
+//! are defined. An new special function "before_begin()" is defined, which returns
+//! an iterator that points one less the beginning of the list: ++before_begin() == begin()
 #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
 template<class T, class ...Options>
 #else
@@ -129,10 +148,16 @@
       <pointer, node>::type node_ptr;
    typedef typename boost::pointer_to_other
       <pointer, const node>::type const_node_ptr;
- typedef circular_slist_algorithms<node_traits> node_algorithms;
+ typedef typename detail::if_c
+ < Config::linear
+ , linear_slist_algorithms<node_traits>
+ , circular_slist_algorithms<node_traits>
+ >::type node_algorithms;
 
    static const bool constant_time_size = Config::constant_time_size;
    static const bool stateful_value_traits = detail::store_cont_ptr_on_it<slist_impl>::value;
+ static const bool linear = Config::linear;
+ static const bool cache_last = Config::cache_last;
 
    /// @cond
    private:
@@ -152,6 +177,16 @@
 
    //Constant-time size is incompatible with auto-unlink hooks!
    BOOST_STATIC_ASSERT(!(constant_time_size && ((int)real_value_traits::link_mode == (int)auto_unlink)));
+ //Linear singly linked lists are incompatible with auto-unlink hooks!
+ BOOST_STATIC_ASSERT(!(linear && ((int)real_value_traits::link_mode == (int)auto_unlink)));
+ //A list with cached last node is incompatible with auto-unlink hooks!
+ BOOST_STATIC_ASSERT(!(cache_last && ((int)real_value_traits::link_mode == (int)auto_unlink)));
+
+ node_ptr get_end_node()
+ { return node_ptr(linear ? 0 : this->get_root_node()); }
+
+ const_node_ptr get_end_node() const
+ { return const_node_ptr(linear ? 0 : this->get_root_node()); }
 
    node_ptr get_root_node()
    { return node_ptr(&data_.root_plus_size_.root_); }
@@ -159,16 +194,49 @@
    const_node_ptr get_root_node() const
    { return const_node_ptr(&data_.root_plus_size_.root_); }
 
+ node_ptr get_last_node()
+ { return this->get_last_node(detail::bool_<cache_last>()); }
+
+ const_node_ptr get_last_node() const
+ { return this->get_last_node(detail::bool_<cache_last>()); }
+
+ void set_last_node(node_ptr n)
+ { return this->set_last_node(n, detail::bool_<cache_last>()); }
+
+ node_ptr get_last_node(detail::bool_<false>)
+ { return node_ptr(0); }
+
+ const_node_ptr get_last_node(detail::bool_<false>) const
+ { return const_node_ptr(0); }
+
+ void set_last_node(node_ptr, detail::bool_<false>)
+ {}
+
+ node_ptr get_last_node(detail::bool_<true>)
+ { return node_ptr(data_.root_plus_size_.last_); }
+
+ const_node_ptr get_last_node(detail::bool_<true>) const
+ { return const_node_ptr(data_.root_plus_size_.last_); }
+
+ void set_last_node(node_ptr n, detail::bool_<true>)
+ { data_.root_plus_size_.last_ = n; }
+
    static node_ptr uncast(const_node_ptr ptr)
+ { return node_ptr(const_cast<node*>(detail::get_pointer(ptr))); }
+
+ void set_default_constructed_state()
    {
- return node_ptr(const_cast<node*>(detail::get_pointer(ptr)));
+ node_algorithms::init_header(this->get_root_node());
+ this->priv_size_traits().set_size(size_type(0));
+ if(cache_last){
+ this->set_last_node(this->get_root_node());
+ }
    }
 
    struct root_plus_size
       : public size_traits
- {
- node root_;
- };
+ , public root_plus_last<node, node_ptr, cache_last>
+ {};
 
    struct data_t
       : public slist_impl::value_traits
@@ -218,10 +286,7 @@
    //! constructor throws (this does not happen with predefined Boost.Intrusive hooks).
    slist_impl(const value_traits &v_traits = value_traits())
       : data_(v_traits)
- {
- this->priv_size_traits().set_size(size_type(0));
- node_algorithms::init(this->get_root_node());
- }
+ { this->set_default_constructed_state(); }
 
    //! <b>Requires</b>: Dereferencing iterator must yield an lvalue of type value_type.
    //!
@@ -235,9 +300,8 @@
    slist_impl(Iterator b, Iterator e, const value_traits &v_traits = value_traits())
       : data_(v_traits)
    {
- this->priv_size_traits().set_size(size_type(0));
- node_algorithms::init(this->get_root_node());
- insert_after(before_begin(), b, e);
+ this->set_default_constructed_state();
+ this->insert_after(this->before_begin(), b, e);
    }
 
    //! <b>Effects</b>: If it's a safe-mode
@@ -263,11 +327,10 @@
    void clear()
    {
       if(safemode_or_autounlink){
- this->erase_after(this->before_begin(), this->end());
+ this->clear_and_dispose(detail::null_disposer());
       }
       else{
- node_algorithms::init(this->get_root_node());
- this->priv_size_traits().set_size(size_type(0));
+ this->set_default_constructed_state();
       }
    }
 
@@ -283,7 +346,17 @@
    //! <b>Note</b>: Invalidates the iterators to the erased elements.
    template <class Disposer>
    void clear_and_dispose(Disposer disposer)
- { this->erase_after_and_dispose(this->before_begin(), this->end(), disposer); }
+ {
+ iterator it(this->begin()), itend(this->end());
+ while(it != itend){
+ node_ptr to_erase(it.pointed_node());
+ ++it;
+ if(safemode_or_autounlink)
+ node_algorithms::init(to_erase);
+ disposer(get_real_value_traits().to_value_ptr(to_erase));
+ }
+ this->set_default_constructed_state();
+ }
 
    //! <b>Requires</b>: value must be an lvalue.
    //!
@@ -299,11 +372,33 @@
    {
       node_ptr to_insert = get_real_value_traits().to_node_ptr(value);
       if(safemode_or_autounlink)
- BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(to_insert));
+ BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::inited(to_insert));
+ if(cache_last){
+ if(this->empty()){
+ this->set_last_node(to_insert);
+ }
+ }
       node_algorithms::link_after(this->get_root_node(), to_insert);
       this->priv_size_traits().increment();
    }
 
+ //! <b>Requires</b>: value must be an lvalue.
+ //!
+ //! <b>Effects</b>: Inserts the value in the back of the list.
+ //! No copy constructors are called.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Constant.
+ //!
+ //! <b>Note</b>: Does not affect the validity of iterators and references.
+ //! This function is only available is cache_last<> is true.
+ void push_back(reference value)
+ {
+ BOOST_STATIC_ASSERT((cache_last != 0));
+ this->insert_after(iterator(this->get_last_node(), this), value);
+ }
+
    //! <b>Effects</b>: Erases the first element of the list.
    //! No destructors are called.
    //!
@@ -313,13 +408,7 @@
    //!
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the erased element.
    void pop_front()
- {
- node_ptr to_erase = node_traits::get_next(this->get_root_node());
- node_algorithms::unlink_after(this->get_root_node());
- this->priv_size_traits().decrement();
- if(safemode_or_autounlink)
- node_algorithms::init(to_erase);
- }
+ { return this->pop_front_and_dispose(detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -335,8 +424,16 @@
    void pop_front_and_dispose(Disposer disposer)
    {
       node_ptr to_erase = node_traits::get_next(this->get_root_node());
- this->pop_front();
+ node_algorithms::unlink_after(this->get_root_node());
+ this->priv_size_traits().decrement();
+ if(safemode_or_autounlink)
+ node_algorithms::init(to_erase);
       disposer(get_real_value_traits().to_value_ptr(to_erase));
+ if(cache_last){
+ if(this->empty()){
+ this->set_last_node(this->get_root_node());
+ }
+ }
    }
 
    //! <b>Effects</b>: Returns a reference to the first element of the list.
@@ -345,7 +442,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    reference front()
- { return *get_real_value_traits().to_value_ptr(node_traits::get_next(this->get_root_node())); }
+ { return *this->get_real_value_traits().to_value_ptr(node_traits::get_next(this->get_root_node())); }
 
    //! <b>Effects</b>: Returns a const_reference to the first element of the list.
    //!
@@ -353,7 +450,35 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_reference front() const
- { return *get_real_value_traits().to_value_ptr(uncast(node_traits::get_next(this->get_root_node()))); }
+ { return *this->get_real_value_traits().to_value_ptr(uncast(node_traits::get_next(this->get_root_node()))); }
+
+ //! <b>Effects</b>: Returns a reference to the last element of the list.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Constant.
+ //!
+ //! <b>Note</b>: Does not affect the validity of iterators and references.
+ //! This function is only available is cache_last<> is true.
+ reference back()
+ {
+ BOOST_STATIC_ASSERT((cache_last != 0));
+ return *this->get_real_value_traits().to_value_ptr(this->get_last_node());
+ }
+
+ //! <b>Effects</b>: Returns a const_reference to the last element of the list.
+ //!
+ //! <b>Throws</b>: Nothing.
+ //!
+ //! <b>Complexity</b>: Constant.
+ //!
+ //! <b>Note</b>: Does not affect the validity of iterators and references.
+ //! This function is only available is cache_last<> is true.
+ const_reference back() const
+ {
+ BOOST_STATIC_ASSERT((cache_last != 0));
+ return *this->get_real_value_traits().to_value_ptr(this->get_last_node());
+ }
 
    //! <b>Effects</b>: Returns an iterator to the first element contained in the list.
    //!
@@ -377,7 +502,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator cbegin() const
- { return const_iterator (node_traits::get_next(this->get_root_node()), this); }
+ { return const_iterator(node_traits::get_next(this->get_root_node()), this); }
 
    //! <b>Effects</b>: Returns an iterator to the end of the list.
    //!
@@ -385,7 +510,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    iterator end()
- { return iterator (this->get_root_node(), this); }
+ { return iterator(this->get_end_node(), this); }
 
    //! <b>Effects</b>: Returns a const_iterator to the end of the list.
    //!
@@ -393,7 +518,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator end() const
- { return const_iterator (uncast(this->get_root_node()), this); }
+ { return const_iterator(uncast(this->get_end_node()), this); }
 
    //! <b>Effects</b>: Returns a const_iterator to the end of the list.
    //!
@@ -401,7 +526,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator cend() const
- { return const_iterator (uncast(this->get_root_node()), this); }
+ { return this->end(); }
 
    //! <b>Effects</b>: Returns an iterator that points to a position
    //! before the first element. Equivalent to "end()"
@@ -410,7 +535,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    iterator before_begin()
- { return end(); }
+ { return iterator(this->get_root_node(), this); }
 
    //! <b>Effects</b>: Returns an iterator that points to a position
    //! before the first element. Equivalent to "end()"
@@ -419,7 +544,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator before_begin() const
- { return end(); }
+ { return const_iterator(uncast(this->get_root_node()), this); }
 
    //! <b>Effects</b>: Returns an iterator that points to a position
    //! before the first element. Equivalent to "end()"
@@ -428,7 +553,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    const_iterator cbefore_begin() const
- { return end(); }
+ { return this->before_begin(); }
 
    //! <b>Precondition</b>: end_iterator must be a valid end iterator
    //! of slist.
@@ -439,7 +564,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    static slist_impl &container_from_end_iterator(iterator end_iterator)
- { return priv_container_from_end_iterator(end_iterator); }
+ { return slist_impl::priv_container_from_end_iterator(end_iterator); }
 
    //! <b>Precondition</b>: end_iterator must be a valid end const_iterator
    //! of slist.
@@ -450,7 +575,7 @@
    //!
    //! <b>Complexity</b>: Constant.
    static const slist_impl &container_from_end_iterator(const_iterator end_iterator)
- { return priv_container_from_end_iterator(end_iterator); }
+ { return slist_impl::priv_container_from_end_iterator(end_iterator); }
 
    //! <b>Effects</b>: Returns the number of the elements contained in the list.
    //!
@@ -482,12 +607,18 @@
    //!
    //! <b>Throws</b>: Nothing.
    //!
- //! <b>Complexity</b>: Linear to the number of elements of both lists.
+ //! <b>Complexity</b>: Linear to the number of elements of both lists.
+ //! Constant-time if linear<> and/or cache_last<> options are used.
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    void swap(slist_impl& other)
    {
- node_algorithms::swap_nodes(this->get_root_node(), other.get_root_node());
+ if(cache_last){
+ this->priv_swap_cache_last(other);
+ }
+ else{
+ this->priv_swap_lists(this->get_root_node(), other.get_root_node(), detail::bool_<linear>());
+ }
       if(constant_time_size){
          size_type backup = this->priv_size_traits().get_size();
          this->priv_size_traits().set_size(other.priv_size_traits().get_size());
@@ -505,45 +636,7 @@
    //!
    //! <b>Note</b>: Iterators Does not affect the validity of iterators and references.
    void shift_backwards(size_type n = 1)
- {
- //Null shift, nothing to do
- if(!n) return;
- node_ptr root = this->get_root_node();
- node_ptr first = node_traits::get_next(root);
-
- //size() == 0 or 1, nothing to do
- if(node_traits::get_next(first) == root) return;
-
- //Iterate until the root node is found to know where the current last node is.
- //If the shift count is less than the size of the list, we can also obtain
- //the position of the new last node after the shift.
- node_ptr old_last(first), next_to_it, new_last(root);
- size_type distance = 1;
- while(root != (next_to_it = node_traits::get_next(old_last))){
- if(++distance > n)
- new_last = node_traits::get_next(new_last);
- old_last = next_to_it;
- }
- //If the shift was bigger or equal than the size, obtain the equivalent
- //forward shifts and find the new last node.
- if(distance <= n){
- //Now find the equivalent forward shifts.
- //Shorcut the shift with the modulo of the size of the list
- size_type new_before_last_pos = (distance - (n % distance))% distance;
- //If the shift is a multiple of the size there is nothing to do
- if(!new_before_last_pos) return;
-
- for( new_last = root
- ; new_before_last_pos--
- ; new_last = node_traits::get_next(new_last)){
- //empty
- }
- }
-
- //Now unlink the root node and link it after the new last node
- node_algorithms::unlink_after(old_last);
- node_algorithms::link_after(new_last, root);
- }
+ { this->priv_shift_backwards(n, detail::bool_<linear>()); }
 
    //! <b>Effects</b>: Moves forward all the elements, so that the second
    //! element becomes the first, the third becomes the second...
@@ -555,45 +648,7 @@
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    void shift_forward(size_type n = 1)
- {
- //Null shift, nothing to do
- if(!n) return;
- node_ptr root = this->get_root_node();
- node_ptr first = node_traits::get_next(root);
-
- //size() == 0 or 1, nothing to do
- if(node_traits::get_next(first) == root) return;
-
- bool end_found = false;
- node_ptr new_last(0);
-
- //Now find the new last node according to the shift count.
- //If we find the root node before finding the new last node
- //unlink the root, shortcut the search now that we know the size of the list
- //and continue.
- for(size_type i = 1; i <= n; ++i){
- new_last = first;
- first = node_traits::get_next(first);
- if(first == root){
- //Shorcut the shift with the modulo of the size of the list
- n %= i;
- i = 0;
- //Unlink the root node and continue the new first node search
- first = node_traits::get_next(first);
- node_algorithms::unlink_after(new_last);
- end_found = true;
- }
- }
-
- //If the root node has not been found in the previous loop, find it
- //starting in the new first node and unlink it
- if(!end_found){
- node_algorithms::unlink_after(node_algorithms::get_previous_node(first, root));
- }
-
- //Now link the root node after the new last node
- node_algorithms::link_after(new_last, root);
- }
+ { this->priv_shift_forward(n, detail::bool_<linear>()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -610,18 +665,18 @@
    //! <b>Throws</b>: If cloner throws.
    template <class Cloner, class Disposer>
    void clone_from(const slist_impl &src, Cloner cloner, Disposer disposer)
- {
+ {
       this->clear_and_dispose(disposer);
       BOOST_INTRUSIVE_TRY{
- iterator prev = this->before_begin();
+ iterator prev(this->before_begin());
          const_iterator b(src.begin()), e(src.end());
- for(; b != e; ++b, ++prev){
- this->insert_after(prev, *cloner(*b));
+ for(; b != e; ++b){
+ prev = this->insert_after(prev, *cloner(*b));
          }
       }
       BOOST_INTRUSIVE_CATCH(...){
          this->clear_and_dispose(disposer);
- BOOST_RETHROW;
+ BOOST_INTRUSIVE_RETHROW;
       }
       BOOST_INTRUSIVE_CATCH_END
    }
@@ -643,8 +698,12 @@
    {
       node_ptr n = get_real_value_traits().to_node_ptr(value);
       if(safemode_or_autounlink)
- BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(n));
- node_algorithms::link_after(prev_p.pointed_node(), n);
+ BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::inited(n));
+ node_ptr prev_n(prev_p.pointed_node());
+ node_algorithms::link_after(prev_n, n);
+ if(cache_last && (this->get_last_node() == prev_n)){
+ this->set_last_node(n);
+ }
       this->priv_size_traits().increment();
       return iterator (n, this);
    }
@@ -665,7 +724,7 @@
    void insert_after(iterator prev_p, Iterator first, Iterator last)
    {
       for (; first != last; ++first)
- prev_p = insert_after(prev_p, *first);
+ prev_p = this->insert_after(prev_p, *first);
    }
 
    //! <b>Requires</b>: value must be an lvalue and p must point to an element
@@ -676,11 +735,12 @@
    //!
    //! <b>Throws</b>: Nothing.
    //!
- //! <b>Complexity</b>: Linear to the number of elements before p.
+ //! <b>Complexity</b>: Linear to the number of elements before p.
+ //! Constant-time if cache_last<> is true and p == end().
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    iterator insert(iterator p, reference value)
- { return insert_after(this->previous(p), value); }
+ { return this->insert_after(this->previous(p), value); }
 
    //! <b>Requires</b>: Dereferencing iterator must yield
    //! an lvalue of type value_type and p must point to an element
@@ -693,11 +753,12 @@
    //!
    //! <b>Complexity</b>: Linear to the number of elements inserted plus linear
    //! to the elements before b.
+ //! Linear to the number of elements to insert if cache_last<> option is true and p == end().
    //!
    //! <b>Note</b>: Does not affect the validity of iterators and references.
    template<class Iterator>
    void insert(iterator p, Iterator b, Iterator e)
- { return insert_after(this->previous(p), b, e); }
+ { return this->insert_after(this->previous(p), b, e); }
 
    //! <b>Effects</b>: Erases the element after the element pointed by prev of
    //! the list. No destructors are called.
@@ -712,16 +773,7 @@
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the
    //! erased element.
    iterator erase_after(iterator prev)
- {
- iterator it(prev); ++it;
- node_ptr to_erase(it.pointed_node());
- node_algorithms::unlink_after(prev.pointed_node());
- this->priv_size_traits().decrement();
- iterator ret(++prev);
- if(safemode_or_autounlink)
- node_algorithms::init(to_erase);
- return ret;
- }
+ { return this->erase_after_and_dispose(prev, detail::null_disposer()); }
 
    //! <b>Effects</b>: Erases the range (before_first, last) from
    //! the list. No destructors are called.
@@ -731,18 +783,12 @@
    //!
    //! <b>Throws</b>: Nothing.
    //!
- //! <b>Complexity</b>: Lineal to the elements (last - before_first).
+ //! <b>Complexity</b>: Lineal to the elements (last - before_first + 1).
    //!
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the
    //! erased element.
    iterator erase_after(iterator before_first, iterator last)
- {
- iterator first;
- while(++(first = before_first) != last){
- this->erase_after(before_first);
- }
- return last;
- }
+ { return this->erase_after_and_dispose(before_first, last, detail::null_disposer()); }
 
    //! <b>Effects</b>: Erases the element pointed by i of the list.
    //! No destructors are called.
@@ -775,7 +821,7 @@
    //! <b>Note</b>: Invalidates the iterators (but not the references) to the
    //! erased elements.
    iterator erase(iterator first, iterator last)
- { return erase_after(this->previous(first), last); }
+ { return this->erase_after(this->previous(first), last); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -794,11 +840,20 @@
    template<class Disposer>
    iterator erase_after_and_dispose(iterator prev, Disposer disposer)
    {
- iterator it(prev); ++it;
+ iterator it(prev);
+ ++it;
       node_ptr to_erase(it.pointed_node());
- iterator ret(this->erase_after(prev));
+ ++it;
+ node_ptr prev_n(prev.pointed_node());
+ node_algorithms::unlink_after(prev_n);
+ if(cache_last && (to_erase == this->get_last_node())){
+ this->set_last_node(prev_n);
+ }
+ this->priv_size_traits().decrement();
+ if(safemode_or_autounlink)
+ node_algorithms::init(to_erase);
       disposer(get_real_value_traits().to_value_ptr(to_erase));
- return ret;
+ return it;
    }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -818,9 +873,19 @@
    template<class Disposer>
    iterator erase_after_and_dispose(iterator before_first, iterator last, Disposer disposer)
    {
- iterator first;
- while(++(first = before_first) != last){
- this->erase_after_and_dispose(before_first, disposer);
+ node_ptr bfp(before_first.pointed_node()), lp(last.pointed_node());
+ node_ptr fp(node_traits::get_next(bfp));
+ node_algorithms::unlink_after(bfp, lp);
+ while(fp != lp){
+ node_ptr to_erase(fp);
+ fp = node_traits::get_next(fp);
+ if(safemode_or_autounlink)
+ node_algorithms::init(to_erase);
+ disposer(get_real_value_traits().to_value_ptr(to_erase));
+ this->priv_size_traits().decrement();
+ }
+ if(cache_last && (node_traits::get_next(bfp) == this->get_end_node())){
+ this->set_last_node(bfp);
       }
       return last;
    }
@@ -863,7 +928,7 @@
    //! erased elements.
    template<class Disposer>
    iterator erase_and_dispose(iterator first, iterator last, Disposer disposer)
- { return erase_after_and_dispose(this->previous(first), last, disposer); }
+ { return this->erase_after_and_dispose(this->previous(first), last, disposer); }
 
    //! <b>Requires</b>: Dereferencing iterator must yield
    //! an lvalue of type value_type.
@@ -884,7 +949,7 @@
    void assign(Iterator b, Iterator e)
    {
       this->clear();
- this->insert_after(before_begin(), b, e);
+ this->insert_after(this->before_begin(), b, e);
    }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -921,18 +986,21 @@
    //!
    //! <b>Throws</b>: Nothing.
    //!
- //! <b>Complexity</b>: Linear to the elements contained in x
+ //! <b>Complexity</b>: Linear to the elements contained in x.
+ //! Constant-time if cache_last<> option is true.
    //!
    //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
    //! list. Iterators of this list and all the references are not invalidated.
    iterator splice_after(iterator prev, slist_impl &x)
    {
       if (!x.empty()){
- iterator last_x(x.previous(x.end()));
- node_algorithms::transfer_after
- ( prev.pointed_node()
- , x.end().pointed_node()
- , last_x.pointed_node());
+ iterator last_x(x.previous(x.end())); //<- constant time if cache_last is active
+ node_ptr prev_n(prev.pointed_node());
+ node_ptr last_x_n(last_x.pointed_node());
+ if(cache_last && node_traits::get_next(prev_n) == this->get_end_node()){
+ this->set_last_node(last_x_n);
+ }
+ node_algorithms::transfer_after( prev_n, x.before_begin().pointed_node(), last_x_n);
          this->priv_size_traits().set_size(this->priv_size_traits().get_size() + x.priv_size_traits().get_size());
          x.priv_size_traits().set_size(size_type(0));
          return last_x;
@@ -955,15 +1023,12 @@
    //!
    //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
    //! list. Iterators of this list and all the references are not invalidated.
- void splice_after(iterator prev, slist_impl &x, iterator prev_ele)
+ void splice_after(iterator prev_pos, slist_impl &x, iterator prev_ele)
    {
- iterator nxt = prev_ele;
- ++nxt;
- if (nxt != prev && prev_ele != prev){
- node_algorithms::transfer_after
- (prev.pointed_node(), prev_ele.pointed_node(), nxt.pointed_node());
- this->priv_size_traits().increment();
- x.priv_size_traits().decrement();
+ iterator elem = prev_ele;
+ ++elem;
+ if (elem != prev_pos && prev_ele != prev_pos){
+ this->splice_after(prev_pos, x, prev_ele, elem, 1);
       }
    }
 
@@ -984,19 +1049,11 @@
    //! list. Iterators of this list and all the references are not invalidated.
    void splice_after(iterator prev_pos, slist_impl &x, iterator before_first, iterator before_last)
    {
- if (before_first != before_last){
- if(constant_time_size){
- size_type increment = std::distance(before_first, before_last);
- node_algorithms::transfer_after
- (prev_pos.pointed_node(), before_first.pointed_node(), before_last.pointed_node());
- this->priv_size_traits().set_size(this->priv_size_traits().get_size() + increment);
- x.priv_size_traits().set_size(x.priv_size_traits().get_size() - increment);
- }
- else{
- node_algorithms::transfer_after
- (prev_pos.pointed_node(), before_first.pointed_node(), before_last.pointed_node());
- }
- }
+ if(constant_time_size)
+ this->splice_after(prev_pos, x, before_first, before_last, std::distance(before_first, before_last));
+ else
+ this->priv_splice_after
+ (prev_pos.pointed_node(), x, before_first.pointed_node(), before_last.pointed_node());
    }
 
    //! <b>Requires</b>: prev_pos must be a dereferenceable iterator in *this or be
@@ -1016,17 +1073,13 @@
    void splice_after(iterator prev_pos, slist_impl &x, iterator before_first, iterator before_last, difference_type n)
    {
       if(n){
+ BOOST_INTRUSIVE_INVARIANT_ASSERT(std::distance(before_first, before_last) == n);
+ this->priv_splice_after
+ (prev_pos.pointed_node(), x, before_first.pointed_node(), before_last.pointed_node());
          if(constant_time_size){
- BOOST_INTRUSIVE_INVARIANT_ASSERT(std::distance(before_first, before_last) == n);
- node_algorithms::transfer_after
- (prev_pos.pointed_node(), before_first.pointed_node(), before_last.pointed_node());
             this->priv_size_traits().set_size(this->priv_size_traits().get_size() + n);
             x.priv_size_traits().set_size(x.priv_size_traits().get_size() - n);
          }
- else{
- node_algorithms::transfer_after
- (prev_pos.pointed_node(), before_first.pointed_node(), before_last.pointed_node());
- }
       }
    }
 
@@ -1044,11 +1097,13 @@
    //!
    //! <b>Complexity</b>: Linear to the elements contained in x plus linear to
    //! the elements before it.
+ //! Linear to the elements before it if cache_last<> option is true.
+ //! Constant-time if cache_last<> option is true and it == end().
    //!
    //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
    //! list. Iterators of this list and all the references are not invalidated.
    iterator splice(iterator it, slist_impl &x)
- { return splice_after(this->previous(it), x); }
+ { return this->splice_after(this->previous(it), x); }
 
    //! <b>Requires</b>: it p must be a valid iterator of *this.
    //! elem must point to an element contained in list
@@ -1060,11 +1115,12 @@
    //! <b>Throws</b>: Nothing.
    //!
    //! <b>Complexity</b>: Linear to the elements before pos and before elem.
+ //! Linear to the elements before elem if cache_last<> option is true and pos == end().
    //!
    //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
    //! list. Iterators of this list and all the references are not invalidated.
    void splice(iterator pos, slist_impl &x, iterator elem)
- { return splice_after(this->previous(pos), x, this->previous(elem)); }
+ { return this->splice_after(this->previous(pos), x, x.previous(elem)); }
 
    //! <b>Requires</b>: pos must be a dereferenceable iterator in *this
    //! and first and last belong to x and first and last a valid range on x.
@@ -1075,13 +1131,16 @@
    //!
    //! <b>Throws</b>: Nothing.
    //!
- //! <b>Complexity</b>: Linear to the sum of elements before pos, first, and last.
- //! Plus linear to the number of elements transferred if constant_time_size is true.
+ //! <b>Complexity</b>: Linear to the sum of elements before pos, first, and last
+ //! plus linear to the number of elements transferred if constant_time_size is true.
+ //! Linear to the sum of elements before first, and last
+ //! plus linear to the number of elements transferred if constant_time_size is true
+ //! if cache_last<> is true and pos == end()
    //!
    //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
    //! list. Iterators of this list and all the references are not invalidated.
    void splice(iterator pos, slist_impl &x, iterator first, iterator last)
- { return splice_after(this->previous(pos), x, this->previous(first), this->previous(last)); }
+ { return this->splice_after(this->previous(pos), x, x.previous(first), x.previous(last)); }
 
    //! <b>Requires</b>: pos must be a dereferenceable iterator in *this
    //! and first and last belong to x and first and last a valid range on x.
@@ -1094,11 +1153,13 @@
    //! <b>Throws</b>: Nothing.
    //!
    //! <b>Complexity</b>: Linear to the sum of elements before pos, first, and last.
+ //! Linear to the sum of elements before first and last
+ //! if cache_last<> is true and pos == end().
    //!
    //! <b>Note</b>: Iterators of values obtained from list x now point to elements of this
    //! list. Iterators of this list and all the references are not invalidated.
    void splice(iterator pos, slist_impl &x, iterator first, iterator last, difference_type n)
- { return splice_after(this->previous(pos), x, this->previous(first), this->previous(last), n); }
+ { return this->splice_after(this->previous(pos), x, x.previous(first), x.previous(last), n); }
 
    //! <b>Effects</b>: This function sorts the list *this according to std::less<value_type>.
    //! The sort is stable, that is, the relative order of equivalent elements is preserved.
@@ -1133,12 +1194,12 @@
                (last_inserted.pointed_node(), carry.end().pointed_node());
             iterator last_element(p, this);
             if(constant_time_size){
- counter[i].splice_after( counter[i].end(), carry
+ counter[i].splice_after( counter[i].before_begin(), carry
                                       , carry.before_begin(), last_element
                                       , carry.size());
             }
             else{
- counter[i].splice_after( counter[i].end(), carry
+ counter[i].splice_after( counter[i].before_begin(), carry
                                       , carry.before_begin(), last_element);
             }
             if(i == fill)
@@ -1153,11 +1214,11 @@
             (last_inserted.pointed_node(), counter[--fill].end().pointed_node());
          iterator last_element(p, this);
          if(constant_time_size){
- this->splice_after( end(), counter[fill], counter[fill].before_begin()
+ this->splice_after( before_begin(), counter[fill], counter[fill].before_begin()
                               , last_element, counter[fill].size());
          }
          else{
- this->splice_after( end(), counter[fill], counter[fill].before_begin()
+ this->splice_after( before_begin(), counter[fill], counter[fill].before_begin()
                               , last_element);
          }
       }
@@ -1201,14 +1262,14 @@
    template<class Predicate>
    iterator merge(slist_impl& x, Predicate p)
    {
- iterator a(before_begin()), e(end()), ax(x.before_begin());
+ iterator a(before_begin()), e(end()), ax(x.before_begin()), ex(x.end());
       iterator last_inserted(e);
       iterator a_next;
       while(++(a_next = a) != e && !x.empty()) {
          iterator ix(ax);
          iterator cx;
          size_type n(0);
- while(++(cx = ix) != ax && p(*cx, *a_next)){
+ while(++(cx = ix) != ex && p(*cx, *a_next)){
             ++ix; ++n;
          }
          if(ax != ix){
@@ -1235,7 +1296,7 @@
    //!
    //! <b>Note</b>: Iterators and references are not invalidated
    void merge(slist_impl& x)
- { this->merge(x, std::less<value_type>()); }
+ { this->merge(x, std::less<value_type>()); }
 
    //! <b>Effects</b>: Reverses the order of elements in the list.
    //!
@@ -1244,8 +1305,13 @@
    //! <b>Complexity</b>: This function is linear to the contained elements.
    //!
    //! <b>Note</b>: Iterators and references are not invalidated
- void reverse()
- { node_algorithms::reverse(this->get_root_node()); }
+ void reverse()
+ {
+ if(cache_last && !this->empty()){
+ this->set_last_node(node_traits::get_next(this->get_root_node()));
+ }
+ this->priv_reverse(detail::bool_<linear>());
+ }
 
    //! <b>Effects</b>: Removes all the elements that compare equal to value.
    //! No destructors are called.
@@ -1258,7 +1324,7 @@
    //! and iterators to elements that are not removed remain valid. This function is
    //! linear time: it performs exactly size() comparisons for equality.
    void remove(const_reference value)
- { remove_if(detail::equal_to_value<const_reference>(value)); }
+ { this->remove_if(detail::equal_to_value<const_reference>(value)); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1273,7 +1339,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class Disposer>
    void remove_and_dispose(const_reference value, Disposer disposer)
- { remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
+ { this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
 
    //! <b>Effects</b>: Removes all the elements for which a specified
    //! predicate is satisfied. No destructors are called.
@@ -1286,7 +1352,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class Pred>
    void remove_if(Pred pred)
- { remove_and_dispose_if(pred, detail::null_disposer()); }
+ { this->remove_and_dispose_if(pred, detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1303,18 +1369,20 @@
    template<class Pred, class Disposer>
    void remove_and_dispose_if(Pred pred, Disposer disposer)
    {
- iterator bcur(this->before_begin()), cur, e(this->end());
+ iterator bcur(this->before_begin()), cur(this->begin()), e(this->end());
       
- while(++(cur = bcur) != e){
+ while(cur != e){
          if (pred(*cur)){
- pointer p = cur.operator->();
- this->erase_after(bcur);
- disposer(p);
+ cur = this->erase_after_and_dispose(bcur, disposer);
          }
          else{
- ++bcur;
+ bcur = cur;
+ ++cur;
          }
       }
+ if(cache_last){
+ this->set_last_node(bcur.pointed_node());
+ }
    }
 
    //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
@@ -1327,7 +1395,7 @@
    //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
    //! and iterators to elements that are not removed remain valid.
    void unique()
- { unique_and_dispose(std::equal_to<value_type>(), detail::null_disposer()); }
+ { this->unique_and_dispose(std::equal_to<value_type>(), detail::null_disposer()); }
 
    //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
    //! elements that satisfy some binary predicate from the list.
@@ -1341,7 +1409,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class BinaryPredicate>
    void unique(BinaryPredicate pred)
- { unique_and_dispose(pred, detail::null_disposer()); }
+ { this->unique_and_dispose(pred, detail::null_disposer()); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1357,7 +1425,7 @@
    //! and iterators to elements that are not removed remain valid.
    template<class Disposer>
    void unique_and_dispose(Disposer disposer)
- { unique(std::equal_to<value_type>(), disposer); }
+ { this->unique(std::equal_to<value_type>(), disposer); }
 
    //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
    //!
@@ -1374,21 +1442,23 @@
    template<class BinaryPredicate, class Disposer>
    void unique_and_dispose(BinaryPredicate pred, Disposer disposer)
    {
- iterator end_n(end());
- iterator cur(begin());
- iterator cur_next;
-
- if (cur != end_n) {
- while(++(cur_next = cur) != end_n) {
- if (pred(*cur, *cur_next)){
- pointer p = cur_next.operator->();
- this->erase_after(cur);
- disposer(p);
+ iterator end_n(this->end());
+ iterator bcur(this->begin());
+ if(bcur != end_n){
+ iterator cur(bcur);
+ ++cur;
+ while(cur != end_n) {
+ if (pred(*bcur, *cur)){
+ cur = this->erase_after_and_dispose(bcur, disposer);
             }
             else{
+ bcur = cur;
                ++cur;
             }
          }
+ if(cache_last){
+ this->set_last_node(bcur.pointed_node());
+ }
       }
    }
 
@@ -1406,7 +1476,7 @@
    static iterator s_iterator_to(reference value)
    {
       BOOST_STATIC_ASSERT((!stateful_value_traits));
- BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::unique(value_traits::to_node_ptr(value)));
+ //BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::inited(value_traits::to_node_ptr(value)));
       return iterator (value_traits::to_node_ptr(value), 0);
    }
 
@@ -1424,7 +1494,7 @@
    static const_iterator s_iterator_to(const_reference value)
    {
       BOOST_STATIC_ASSERT((!stateful_value_traits));
- BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::unique(value_traits::to_node_ptr(const_cast<reference> (value))));
+ //BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::inited(value_traits::to_node_ptr(const_cast<reference> (value))));
       return const_iterator (value_traits::to_node_ptr(const_cast<reference> (value)), 0);
    }
 
@@ -1438,8 +1508,8 @@
    //!
    //! <b>Note</b>: Iterators and references are not invalidated.
    iterator iterator_to(reference value)
- {
- BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::unique(value_traits::to_node_ptr(value)));
+ {
+ //BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::inited(value_traits::to_node_ptr(value)));
       return iterator (value_traits::to_node_ptr(value), this);
    }
 
@@ -1453,8 +1523,8 @@
    //!
    //! <b>Note</b>: Iterators and references are not invalidated.
    const_iterator iterator_to(const_reference value) const
- {
- BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::unique(value_traits::to_node_ptr(const_cast<reference> (value))));
+ {
+ //BOOST_INTRUSIVE_INVARIANT_ASSERT (!node_algorithms::inited(value_traits::to_node_ptr(const_cast<reference> (value))));
       return const_iterator (value_traits::to_node_ptr(const_cast<reference> (value)), this);
    }
 
@@ -1464,12 +1534,16 @@
    //!
    //! <b>Throws</b>: Nothing.
    //!
- //! <b>Complexity</b>: Linear to the number of elements before i.
+ //! <b>Complexity</b>: Linear to the number of elements before i.
+ //! Constant if cache_last<> is true and i == end().
    iterator previous(iterator i)
    {
+ if(cache_last && (i.pointed_node() == this->get_end_node())){
+ return iterator(this->get_last_node(), this);
+ }
       return iterator
          (node_algorithms::get_previous_node
- (before_begin().pointed_node(), i.pointed_node()), 0);
+ (this->before_begin().pointed_node(), i.pointed_node()), this);
    }
 
    //! <b>Returns</b>: The const_iterator to the element before i in the list.
@@ -1479,18 +1553,117 @@
    //! <b>Throws</b>: Nothing.
    //!
    //! <b>Complexity</b>: Linear to the number of elements before i.
+ //! Constant if cache_last<> is true and i == end().
    const_iterator previous(const_iterator i) const
    {
+ if(cache_last && (i.pointed_node() == this->get_end_node())){
+ return iterator(uncast(this->get_last_node()), this);
+ }
       return const_iterator
          (node_algorithms::get_previous_node
- (before_begin().pointed_node(), i.pointed_node()), 0);
+ (this->before_begin().pointed_node(), i.pointed_node()), this);
    }
 
    private:
+ void priv_splice_after(node_ptr prev_pos_n, slist_impl &x, node_ptr before_first_n, node_ptr before_last_n)
+ {
+ if(cache_last){
+ if(node_traits::get_next(prev_pos_n) == this->get_end_node()){
+ this->set_last_node(before_last_n);
+ }
+ if(node_traits::get_next(before_last_n) == x.get_end_node()){
+ x.set_last_node(before_first_n);
+ }
+ }
+ node_algorithms::transfer_after(prev_pos_n, before_first_n, before_last_n);
+ }
+
+ void priv_reverse(detail::bool_<false>)
+ { node_algorithms::reverse(this->get_root_node()); }
+
+ void priv_reverse(detail::bool_<true>)
+ {
+ node_ptr new_first = node_algorithms::reverse
+ (node_traits::get_next(this->get_root_node()));
+ node_traits::set_next(this->get_root_node(), new_first);
+ }
+
+ void priv_shift_backwards(size_type n, detail::bool_<false>)
+ {
+ node_ptr last = node_algorithms::move_forward(this->get_root_node(), (std::size_t)n);
+ if(cache_last && last){
+ this->set_last_node(last);
+ }
+ }
+
+ void priv_shift_backwards(size_type n, detail::bool_<true>)
+ {
+ std::pair<node_ptr, node_ptr> ret(
+ node_algorithms::move_first_n_forward
+ (node_traits::get_next(this->get_root_node()), (std::size_t)n));
+ if(ret.first){
+ node_traits::set_next(this->get_root_node(), ret.first);
+ if(cache_last){
+ this->set_last_node(ret.second);
+ }
+ }
+ }
+
+ void priv_shift_forward(size_type n, detail::bool_<false>)
+ {
+ node_ptr last = node_algorithms::move_backwards(this->get_root_node(), (std::size_t)n);
+ if(cache_last && last){
+ this->set_last_node(last);
+ }
+ }
+
+ void priv_shift_forward(size_type n, detail::bool_<true>)
+ {
+ std::pair<node_ptr, node_ptr> ret(
+ node_algorithms::move_first_n_backwards
+ (node_traits::get_next(this->get_root_node()), (std::size_t)n));
+ if(ret.first){
+ node_traits::set_next(this->get_root_node(), ret.first);
+ if(cache_last){
+ this->set_last_node(ret.second);
+ }
+ }
+ }
+
+ void priv_swap_cache_last(slist_impl &other)
+ {
+ node_ptr other_last(other.get_last_node());
+ node_ptr this_last(this->get_last_node());
+ node_ptr other_bfirst(other.get_root_node());
+ node_ptr this_bfirst(this->get_root_node());
+ node_algorithms::transfer_after(this_bfirst, other_bfirst, other_last);
+ node_algorithms::transfer_after(other_bfirst, other_last != other_bfirst? other_last : this_bfirst, this_last);
+ node_ptr tmp(this->get_last_node());
+ this->set_last_node(other.get_last_node());
+ other.set_last_node(tmp);
+ if(this->get_last_node() == other_bfirst){
+ this->set_last_node(this_bfirst);
+ }
+ if(other.get_last_node() == this_bfirst){
+ other.set_last_node(other_bfirst);
+ }
+ }
+
+ //circular version
+ static void priv_swap_lists(node_ptr this_node, node_ptr other_node, detail::bool_<false>)
+ { node_algorithms::swap_nodes(this_node, other_node); }
+
+ //linear version
+ static void priv_swap_lists(node_ptr this_node, node_ptr other_node, detail::bool_<true>)
+ { node_algorithms::swap_trailing_nodes(this_node, other_node); }
+
    static slist_impl &priv_container_from_end_iterator(const const_iterator &end_iterator)
    {
+ //Obtaining the container from the end iterator is not possible with linear
+ //singly linked lists (because "end" is represented by the null pointer)
+ BOOST_STATIC_ASSERT(!linear);
       root_plus_size *r = detail::parent_from_member<root_plus_size, node>
- ( detail::get_pointer(end_iterator.pointed_node()), &root_plus_size::root_);
+ ( detail::get_pointer(end_iterator.pointed_node()), (&root_plus_size::root_));
       data_t *d = detail::parent_from_member<data_t, root_plus_size>
          ( r, &data_t::root_plus_size_);
       slist_impl *s = detail::parent_from_member<slist_impl, data_t>(d, &slist_impl::data_);
@@ -1620,13 +1793,13 @@
 #ifdef BOOST_INTRUSIVE_DOXYGEN_INVOKED
 template<class T, class ...Options>
 #else
-template<class T, class O1 = none, class O2 = none, class O3 = none>
+template<class T, class O1 = none, class O2 = none, class O3 = none, class O4 = none, class O5 = none>
 #endif
 struct make_slist
 {
    /// @cond
    typedef typename pack_options
- < slist_defaults<T>, O1, O2, O3>::type packed_options;
+ < slist_defaults<T>, O1, O2, O3, O4, O5>::type packed_options;
    typedef typename detail::get_value_traits
       <T, typename packed_options::value_traits>::type value_traits;
    typedef slist_impl
@@ -1635,6 +1808,8 @@
          < value_traits
          , typename packed_options::size_type
          , packed_options::constant_time_size
+ , packed_options::linear
+ , packed_options::cache_last
>
> implementation_defined;
    /// @endcond
@@ -1643,12 +1818,12 @@
 
 
 #ifndef BOOST_INTRUSIVE_DOXYGEN_INVOKED
-template<class T, class O1, class O2, class O3>
+template<class T, class O1, class O2, class O3, class O4, class O5>
 class slist
- : public make_slist<T, O1, O2, O3>::type
+ : public make_slist<T, O1, O2, O3, O4, O5>::type
 {
    typedef typename make_slist
- <T, O1, O2, O3>::type Base;
+ <T, O1, O2, O3, O4, O5>::type Base;
    typedef typename Base::real_value_traits real_value_traits;
    //Assert if passed value traits are compatible with the type
    BOOST_STATIC_ASSERT((detail::is_same<typename real_value_traits::value_type, T>::value));

Modified: branches/proto/v3/boost/intrusive/slist_hook.hpp
==============================================================================
--- branches/proto/v3/boost/intrusive/slist_hook.hpp (original)
+++ branches/proto/v3/boost/intrusive/slist_hook.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -19,6 +19,7 @@
 #include <boost/intrusive/detail/utilities.hpp>
 #include <boost/intrusive/detail/slist_node.hpp>
 #include <boost/intrusive/circular_slist_algorithms.hpp>
+#include <boost/intrusive/link_mode.hpp>
 #include <boost/intrusive/options.hpp>
 #include <boost/intrusive/detail/generic_hook.hpp>
 
@@ -31,6 +32,7 @@
 {
    typedef circular_slist_algorithms<slist_node_traits<VoidPointer> > type;
 };
+
 /// @endcond
 
 //! Helper metafunction to define a \c slist_base_hook that yields to the same

Modified: branches/proto/v3/boost/iostreams/categories.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/categories.hpp (original)
+++ branches/proto/v3/boost/iostreams/categories.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -99,43 +100,75 @@
 
 struct std_io_tag : virtual localizable_tag { };
 struct istream_tag
- : virtual input_seekable,
- virtual device_tag,
+ : virtual device_tag,
       virtual peekable_tag,
       virtual std_io_tag
     { };
 struct ostream_tag
- : virtual output_seekable,
- virtual device_tag,
- virtual peekable_tag,
+ : virtual device_tag,
       virtual std_io_tag
     { };
 struct iostream_tag
- : seekable_device_tag,
- istream_tag,
+ : istream_tag,
       ostream_tag
     { };
 struct streambuf_tag
- : seekable_device_tag,
+ : device_tag,
       peekable_tag,
       std_io_tag
     { };
+struct ifstream_tag
+ : input_seekable,
+ closable_tag,
+ istream_tag
+ { };
+struct ofstream_tag
+ : output_seekable,
+ closable_tag,
+ ostream_tag
+ { };
+struct fstream_tag
+ : seekable,
+ closable_tag,
+ iostream_tag
+ { };
+struct filebuf_tag
+ : seekable,
+ closable_tag,
+ streambuf_tag
+ { };
+struct istringstream_tag
+ : input_seekable,
+ istream_tag
+ { };
+struct ostringstream_tag
+ : output_seekable,
+ ostream_tag
+ { };
 struct stringstream_tag
     : dual_seekable,
- device_tag,
- std_io_tag
+ iostream_tag
     { };
 struct stringbuf_tag
     : dual_seekable,
- device_tag,
- std_io_tag
+ streambuf_tag
+ { };
+struct generic_istream_tag
+ : input_seekable,
+ istream_tag
+ { };
+struct generic_ostream_tag
+ : output_seekable,
+ ostream_tag
+ { };
+struct generic_iostream_tag
+ : seekable,
+ iostream_tag
+ { };
+struct generic_streambuf_tag
+ : seekable,
+ streambuf_tag
     { };
-
-namespace detail {
-
-struct linked_tag : streambuf_tag { };
-
-} // End namespace detail.
 
 } } // End namespaces iostreams, boost.
 

Modified: branches/proto/v3/boost/iostreams/chain.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/chain.hpp (original)
+++ branches/proto/v3/boost/iostreams/chain.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/char_traits.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/char_traits.hpp (original)
+++ branches/proto/v3/boost/iostreams/char_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/checked_operations.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/checked_operations.hpp (original)
+++ branches/proto/v3/boost/iostreams/checked_operations.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/close.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/close.hpp (original)
+++ branches/proto/v3/boost/iostreams/close.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -17,6 +18,7 @@
 #include <boost/iostreams/flush.hpp>
 #include <boost/iostreams/detail/adapter/non_blocking_adapter.hpp>
 #include <boost/iostreams/detail/ios.hpp> // BOOST_IOS
+#include <boost/iostreams/detail/select.hpp>
 #include <boost/iostreams/detail/wrap_unwrap.hpp>
 #include <boost/iostreams/operations_fwd.hpp>
 #include <boost/iostreams/traits.hpp>
@@ -123,21 +125,34 @@
 
 //------------------Definition of close_impl----------------------------------//
 
+struct close_boost_stream { };
+struct close_filtering_stream { };
+
 template<typename T>
 struct close_tag {
- typedef typename category_of<T>::type category;
+ typedef typename category_of<T>::type category;
+ typedef typename detail::unwrapped_type<T>::type unwrapped;
     typedef typename
- mpl::eval_if<
- is_convertible<category, closable_tag>,
- mpl::if_<
- mpl::or_<
- is_convertible<category, two_sequence>,
- is_convertible<category, dual_use>
- >,
- two_sequence,
- closable_tag
+ iostreams::select<
+ mpl::not_< is_convertible<category, closable_tag> >,
+ any_tag,
+ mpl::or_<
+ is_boost_stream<unwrapped>,
+ is_boost_stream_buffer<unwrapped>
+ >,
+ close_boost_stream,
+ mpl::or_<
+ is_filtering_stream<unwrapped>,
+ is_filtering_streambuf<unwrapped>
>,
- mpl::identity<any_tag>
+ close_filtering_stream,
+ mpl::or_<
+ is_convertible<category, two_sequence>,
+ is_convertible<category, dual_use>
+ >,
+ two_sequence,
+ else_,
+ closable_tag
>::type type;
 };
 
@@ -169,6 +184,34 @@
     }
 };
 
+template<>
+struct close_impl<close_boost_stream> {
+ template<typename T>
+ static void close(T& t)
+ {
+ t.close();
+ }
+ template<typename T>
+ static void close(T& t, BOOST_IOS::openmode which)
+ {
+ if (which == BOOST_IOS::out)
+ t.close();
+ }
+};
+
+template<>
+struct close_impl<close_filtering_stream> {
+ template<typename T>
+ static void close(T& t, BOOST_IOS::openmode which)
+ {
+ typedef typename category_of<T>::type category;
+ const bool in = is_convertible<category, input>::value &&
+ !is_convertible<category, output>::value;
+ if (in == (which == BOOST_IOS::in) && t.is_complete())
+ t.pop();
+ }
+};
+
 #include <boost/iostreams/detail/config/disable_warnings.hpp> // Borland.
 template<>
 struct close_impl<closable_tag> {

Modified: branches/proto/v3/boost/iostreams/code_converter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/code_converter.hpp (original)
+++ branches/proto/v3/boost/iostreams/code_converter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -311,7 +312,6 @@
 std::streamsize code_converter<Device, Codevt, Alloc>::read
     (char_type* s, std::streamsize n)
 {
- using namespace std;
     const extern_type* next; // Next external char.
     intern_type* nint; // Next internal char.
     std::streamsize total = 0; // Characters read.
@@ -338,12 +338,12 @@
         total = static_cast<std::streamsize>(nint - s);
 
         switch (result) {
- case codecvt_base::partial:
+ case std::codecvt_base::partial:
             partial = true;
             break;
- case codecvt_base::ok:
+ case std::codecvt_base::ok:
             break;
- case codecvt_base::noconv:
+ case std::codecvt_base::noconv:
             {
                 std::streamsize amt =
                     std::min<std::streamsize>(next - buf.ptr(), n - total);
@@ -351,7 +351,7 @@
                 total += amt;
             }
             break;
- case codecvt_base::error:
+ case std::codecvt_base::error:
         default:
             buf.state() = state_type();
             throw code_conversion_error();
@@ -366,7 +366,6 @@
 std::streamsize code_converter<Device, Codevt, Alloc>::write
     (const char_type* s, std::streamsize n)
 {
- using namespace std;
     buffer_type& buf = out();
     extern_type* next; // Next external char.
     const intern_type* nint; // Next internal char.
@@ -391,12 +390,12 @@
         buf.eptr() += progress;
 
         switch (result) {
- case codecvt_base::partial:
+ case std::codecvt_base::partial:
             partial = true; // Fall through.
- case codecvt_base::ok:
+ case std::codecvt_base::ok:
             total = static_cast<std::streamsize>(nint - s);
             break;
- case codecvt_base::noconv:
+ case std::codecvt_base::noconv:
             {
                 std::streamsize amt =
                     std::min<std::streamsize>( nint - total - s,
@@ -405,7 +404,7 @@
                 total += amt;
             }
             break;
- case codecvt_base::error:
+ case std::codecvt_base::error:
         default:
             buf.state() = state_type();
             throw code_conversion_error();

Modified: branches/proto/v3/boost/iostreams/combine.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/combine.hpp (original)
+++ branches/proto/v3/boost/iostreams/combine.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -26,6 +27,9 @@
 #include <boost/type_traits/is_convertible.hpp>
 #include <boost/type_traits/is_same.hpp>
 
+// Must come last.
+#include <boost/iostreams/detail/config/disable_warnings.hpp>
+
 namespace boost { namespace iostreams {
 
 namespace detail {
@@ -96,12 +100,22 @@
 
     template<typename Sink>
     void close(Sink& snk, BOOST_IOS::openmode which)
- {
- if (which == BOOST_IOS::in)
+ {
+ if (which == BOOST_IOS::in) {
+ if (is_convertible<in_category, dual_use>::value) {
+ iostreams::close(in_, snk, BOOST_IOS::in);
+ } else {
                 detail::close_all(in_, snk);
- if (which == BOOST_IOS::out)
+ }
+ }
+ if (which == BOOST_IOS::out) {
+ if (is_convertible<out_category, dual_use>::value) {
+ iostreams::close(out_, snk, BOOST_IOS::out);
+ } else {
                 detail::close_all(out_, snk);
+ }
         }
+ }
     #ifndef BOOST_NO_STD_LOCALE
         void imbue(const std::locale& loc);
     #endif
@@ -230,4 +244,6 @@
 
 } } // End namespaces iostreams, boost.
 
+#include <boost/iostreams/detail/config/enable_warnings.hpp>
+
 #endif // #ifndef BOOST_IOSTREAMS_COMBINE_HPP_INCLUDED

Modified: branches/proto/v3/boost/iostreams/compose.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/compose.hpp (original)
+++ branches/proto/v3/boost/iostreams/compose.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -65,6 +66,8 @@
 class composite_device {
 private:
     typedef typename detail::param_type<Device>::type param_type;
+ typedef typename mode_of<Filter>::type filter_mode;
+ typedef typename mode_of<Device>::type device_mode;
     typedef typename
             iostreams::select< // Disambiguation for Tru64.
                 is_direct<Device>, direct_adapter<Device>,
@@ -120,7 +123,23 @@
               BOOST_DEDUCED_TYPENAME composite_mode<Filter1, Filter2>::type >
 class composite_filter {
 private:
- typedef reference_wrapper<Filter2> filter_ref;
+ typedef reference_wrapper<Filter2> filter_ref;
+ typedef typename mode_of<Filter1>::type first_mode;
+ typedef typename mode_of<Filter2>::type second_mode;
+
+ // A dual-use filter cannot be composed with a read-write filter
+ BOOST_STATIC_ASSERT(
+ !(is_convertible<first_mode, dual_use>::value) ||
+ !(is_convertible<second_mode, input>::value) ||
+ !(is_convertible<second_mode, output>::value) ||
+ (is_convertible<second_mode, dual_use>::value)
+ );
+ BOOST_STATIC_ASSERT(
+ !(is_convertible<second_mode, dual_use>::value) ||
+ !(is_convertible<first_mode, input>::value) ||
+ !(is_convertible<first_mode, output>::value) ||
+ (is_convertible<first_mode, dual_use>::value)
+ );
 public:
     typedef typename char_type_of<Filter1>::type char_type;
     struct category
@@ -170,12 +189,24 @@
 
         // Close input sequences in reverse order and output sequences in
         // forward order
- detail::execute_all(
- detail::call_close(filter2_, dev, BOOST_IOS::in),
- detail::call_close(filter1_, cmp, BOOST_IOS::in),
- detail::call_close(filter1_, cmp, BOOST_IOS::out),
- detail::call_close(filter2_, dev, BOOST_IOS::out)
- );
+ if (!is_convertible<first_mode, dual_use>::value) {
+ detail::execute_all(
+ detail::call_close(filter2_, dev, BOOST_IOS::in),
+ detail::call_close(filter1_, cmp, BOOST_IOS::in),
+ detail::call_close(filter1_, cmp, BOOST_IOS::out),
+ detail::call_close(filter2_, dev, BOOST_IOS::out)
+ );
+ } else if (is_convertible<second_mode, input>::value) {
+ detail::execute_all(
+ detail::call_close(filter2_, dev, BOOST_IOS::in),
+ detail::call_close(filter1_, cmp, BOOST_IOS::in)
+ );
+ } else {
+ detail::execute_all(
+ detail::call_close(filter1_, cmp, BOOST_IOS::out),
+ detail::call_close(filter2_, dev, BOOST_IOS::out)
+ );
+ }
     }
 
     template<typename Device>
@@ -190,18 +221,26 @@
         composite_device<filter_ref, Device> cmp(boost::ref(filter2_), dev);
 
         // Close input sequences in reverse order
- if (which == BOOST_IOS::in)
+ if ( which == BOOST_IOS::in &&
+ ( !is_convertible<first_mode, dual_use>::value ||
+ is_convertible<second_mode, input>::value ) )
+ {
             detail::execute_all(
                 detail::call_close(filter2_, dev, BOOST_IOS::in),
                 detail::call_close(filter1_, cmp, BOOST_IOS::in)
             );
+ }
 
         // Close output sequences in forward order
- if (which == BOOST_IOS::out)
+ if ( which == BOOST_IOS::out &&
+ ( !is_convertible<first_mode, dual_use>::value ||
+ is_convertible<second_mode, output>::value ) )
+ {
             detail::execute_all(
                 detail::call_close(filter1_, cmp, BOOST_IOS::out),
                 detail::call_close(filter2_, dev, BOOST_IOS::out)
             );
+ }
     }
 
     template<typename Device>
@@ -378,33 +417,55 @@
 void composite_device<Filter, Device, Mode>::close()
 {
     BOOST_STATIC_ASSERT((!is_convertible<Mode, two_sequence>::value));
+ BOOST_STATIC_ASSERT(
+ !(is_convertible<filter_mode, dual_use>::value) ||
+ !(is_convertible<device_mode, input>::value) ||
+ !(is_convertible<device_mode, output>::value)
+ );
 
     // Close input sequences in reverse order and output sequences
     // in forward order
- detail::execute_all( detail::call_close(device_, BOOST_IOS::in),
- detail::call_close(filter_, device_, BOOST_IOS::in),
- detail::call_close(filter_, device_, BOOST_IOS::out),
- detail::call_close(device_, BOOST_IOS::out) );
+ if (!is_convertible<filter_mode, dual_use>::value) {
+ detail::execute_all(
+ detail::call_close(device_, BOOST_IOS::in),
+ detail::call_close(filter_, device_, BOOST_IOS::in),
+ detail::call_close(filter_, device_, BOOST_IOS::out),
+ detail::call_close(device_, BOOST_IOS::out)
+ );
+ } else if (is_convertible<device_mode, input>::value) {
+ detail::execute_all(
+ detail::call_close(device_, BOOST_IOS::in),
+ detail::call_close(filter_, device_, BOOST_IOS::in)
+ );
+ } else {
+ detail::execute_all(
+ detail::call_close(filter_, device_, BOOST_IOS::out),
+ detail::call_close(device_, BOOST_IOS::out)
+ );
+ }
 }
 
 template<typename Filter, typename Device, typename Mode>
 void composite_device<Filter, Device, Mode>::close(BOOST_IOS::openmode which)
 {
     BOOST_STATIC_ASSERT((is_convertible<Mode, two_sequence>::value));
+ BOOST_STATIC_ASSERT(!(is_convertible<filter_mode, dual_use>::value));
 
     // Close input sequences in reverse order
- if (which == BOOST_IOS::in)
+ if (which == BOOST_IOS::in) {
         detail::execute_all(
             detail::call_close(device_, BOOST_IOS::in),
             detail::call_close(filter_, device_, BOOST_IOS::in)
         );
+ }
 
     // Close output sequences in forward order
- if (which == BOOST_IOS::out)
+ if (which == BOOST_IOS::out) {
         detail::execute_all(
             detail::call_close(filter_, device_, BOOST_IOS::out),
             detail::call_close(device_, BOOST_IOS::out)
         );
+ }
 }
 
 template<typename Filter, typename Device, typename Mode>

Modified: branches/proto/v3/boost/iostreams/concepts.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/concepts.hpp (original)
+++ branches/proto/v3/boost/iostreams/concepts.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -114,12 +115,12 @@
 template<typename Mode, typename Ch = wchar_t>
 struct multichar_wfilter : multichar_filter<Mode, Ch> { };
 
-typedef multichar_filter<input> multichar_input_filter;
-typedef multichar_filter<input> multichar_input_wfilter;
-typedef multichar_filter<output> multichar_output_filter;
-typedef multichar_filter<output> multichar_output_wfilter;
-typedef multichar_filter<dual_use> multichar_dual_use_filter;
-typedef multichar_filter<dual_use> multichar_dual_use_wfilter;
+typedef multichar_filter<input> multichar_input_filter;
+typedef multichar_wfilter<input> multichar_input_wfilter;
+typedef multichar_filter<output> multichar_output_filter;
+typedef multichar_wfilter<output> multichar_output_wfilter;
+typedef multichar_filter<dual_use> multichar_dual_use_filter;
+typedef multichar_wfilter<dual_use> multichar_dual_use_wfilter;
 
 //----------------------------------------------------------------------------//
 

Modified: branches/proto/v3/boost/iostreams/constants.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/constants.hpp (original)
+++ branches/proto/v3/boost/iostreams/constants.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/copy.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/copy.hpp (original)
+++ branches/proto/v3/boost/iostreams/copy.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -94,19 +95,20 @@
                            std::streamsize buffer_size,
                            mpl::false_, mpl::true_ )
 {
- using namespace std;
     typedef typename char_type_of<Source>::type char_type;
     typedef std::pair<char_type*, char_type*> pair_type;
     detail::basic_buffer<char_type> buf(buffer_size);
     pair_type p = snk.output_sequence();
     std::streamsize total = 0;
- ptrdiff_t capacity = p.second - p.first;
+ std::ptrdiff_t capacity = p.second - p.first;
     while (true) {
         std::streamsize amt =
             iostreams::read(
                 src,
                 buf.data(),
- (std::min)(buffer_size, capacity - total)
+ buffer_size < capacity - total ?
+ buffer_size :
+ static_cast<std::streamsize>(capacity - total)
             );
         if (amt == -1)
             break;

Modified: branches/proto/v3/boost/iostreams/detail/access_control.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/access_control.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/access_control.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/adapter/concept_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/concept_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/concept_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/adapter/device_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/device_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/device_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,8 +5,9 @@
  * File: boost/iostreams/detail/adapter/filter_adapter.hpp
  * Date: Mon Nov 26 14:35:48 MST 2007
  *
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  *
  * Distributed under the Boost Software License, Version 1.0.(See accompanying
  * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)

Modified: branches/proto/v3/boost/iostreams/detail/adapter/direct_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/direct_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/direct_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/adapter/filter_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/filter_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/filter_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,8 +4,9 @@
  *
  * File: boost/iostreams/detail/adapter/filter_adapter.hpp
  * Date: Mon Nov 26 14:35:48 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  *
  * Distributed under the Boost Software License, Version 1.0.(See accompanying
  * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)

Modified: branches/proto/v3/boost/iostreams/detail/adapter/mode_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/mode_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/mode_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/adapter/non_blocking_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/non_blocking_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/non_blocking_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/adapter/output_iterator_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/output_iterator_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/output_iterator_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/adapter/range_adapter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/adapter/range_adapter.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/adapter/range_adapter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/add_facet.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/add_facet.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/add_facet.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/bool_trait_def.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/bool_trait_def.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/bool_trait_def.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/forward.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/forward.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/forward.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -23,12 +24,17 @@
 struct stream : detail::stream_base<Device, Tr, Alloc> {
 public:
     typedef typename char_type_of<Device>::type char_type;
+ struct category
+ : mode_of<Device>::type,
+ closable_tag,
+ detail::stream_traits<Device, Tr>::stream_tag
+ { };
     BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
 private:
     typedef typename
             detail::stream_traits<
                 Device, Tr
- >::type stream_type;
+ >::stream_type stream_type;
     typedef Device policy_type;
 public:
     stream() { }

Modified: branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -37,6 +38,11 @@
     typedef T policy_type;
 public:
     typedef typename char_type_of<T>::type char_type;
+ struct category
+ : Mode,
+ closable_tag,
+ streambuf_tag
+ { };
     BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
     stream_buffer() { }
     ~stream_buffer()

Modified: branches/proto/v3/boost/iostreams/detail/buffer.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/buffer.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/buffer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003-5.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/call_traits.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/call_traits.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/call_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/char_traits.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/char_traits.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/char_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/codecvt_helper.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/codecvt_helper.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/codecvt_helper.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/codecvt_holder.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/codecvt_holder.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/codecvt_holder.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/auto_link.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/auto_link.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/auto_link.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/bzip2.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/bzip2.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/bzip2.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/codecvt.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/codecvt.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/codecvt.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -40,7 +41,10 @@
 
 //------------------Normalize codecvt::length---------------------------------//
 
-#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__)
+#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__) && \
+ (!defined(BOOST_RWSTD_VER) || BOOST_RWSTD_VER < 0x04010300) && \
+ (!defined(__MACH__) || !defined(__INTEL_COMPILER))
+ /**/
 # define BOOST_IOSTREAMS_CODECVT_CV_QUALIFIER const
 #else
 # define BOOST_IOSTREAMS_CODECVT_CV_QUALIFIER

Modified: branches/proto/v3/boost/iostreams/detail/config/disable_warnings.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/disable_warnings.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/disable_warnings.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -18,6 +19,7 @@
 #else
 # if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
 # pragma warn -8008 // Condition always true/false.
+# pragma warn -8066 // Unreachable code.
 # pragma warn -8071 // Conversion may lose significant digits.
 # pragma warn -8072 // Suspicious pointer arithmetic.
 # pragma warn -8080 // identifier declared but never used.

Modified: branches/proto/v3/boost/iostreams/detail/config/dyn_link.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/dyn_link.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/dyn_link.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/enable_warnings.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/enable_warnings.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/enable_warnings.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -9,7 +10,9 @@
 #else
 # if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
 # pragma warn .8008 // Condition always true/false.
+# pragma warn .8066 // Unreachable code.
 # pragma warn .8071 // Conversion may lose significant digits.
+# pragma warn .8072 // Suspicious pointer arithmetic.
 # pragma warn .8080 // identifier declared but never used.
 # endif
 #endif

Modified: branches/proto/v3/boost/iostreams/detail/config/gcc.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/gcc.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/gcc.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/limits.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/limits.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/limits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/overload_resolution.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/overload_resolution.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/overload_resolution.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/rtl.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/rtl.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/rtl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,8 +11,9 @@
  * File: boost/iostreams/detail/config/rtl.hpp
  * Date: Wed Dec 26 11:58:11 MST 2007
  *
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  */
 
 #ifndef BOOST_IOSTREAMS_DETAIL_CONFIG_RTL_HPP_INCLUDED
@@ -22,22 +23,20 @@
 #include <boost/iostreams/detail/config/windows_posix.hpp>
 
 // Handle open, close, read, and write
-#if defined(__BORLANDC__)
+#ifdef __BORLANDC__
 # define BOOST_IOSTREAMS_RTL(x) BOOST_JOIN(_rtl_, x)
+#elif defined BOOST_IOSTREAMS_WINDOWS
+# define BOOST_IOSTREAMS_RTL(x) BOOST_JOIN(_, x)
 #else
-# if defined(BOOST_IOSTREAMS_WINDOWS) && !defined(__CYGWIN__)
-# define BOOST_IOSTREAMS_RTL(x) BOOST_JOIN(_, x)
-# else
-# define BOOST_IOSTREAMS_RTL(x) ::x
-# endif
+# define BOOST_IOSTREAMS_RTL(x) ::x // Distinguish from member function named x
 #endif
 #define BOOST_IOSTREAMS_FD_OPEN BOOST_IOSTREAMS_RTL(open)
 #define BOOST_IOSTREAMS_FD_CLOSE BOOST_IOSTREAMS_RTL(close)
 #define BOOST_IOSTREAMS_FD_READ BOOST_IOSTREAMS_RTL(read)
 #define BOOST_IOSTREAMS_FD_WRITE BOOST_IOSTREAMS_RTL(write)
 
-// Handle lseek, ftruncate, stat, and off_t
-#if defined(BOOST_IOSTREAMS_WINDOWS) && !defined(__CYGWIN__)
+// Handle lseek, off_t, ftruncate, and stat
+#ifdef BOOST_IOSTREAMS_WINDOWS
 # if defined(BOOST_MSVC) || defined(__MSVCRT__) // MSVC, MinGW
 # define BOOST_IOSTREAMS_FD_SEEK _lseeki64
 # define BOOST_IOSTREAMS_FD_OFFSET __int64
@@ -48,13 +47,17 @@
 #else // Non-windows
 # if defined(_LARGEFILE64_SOURCE) && \
          (!defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64) || \
- defined(BOOST_IOSTREAMS_HAS_LSEEK64) \
+ defined(_AIX) && !defined(_LARGE_FILES) || \
+ defined(BOOST_IOSTREAMS_HAS_LARGE_FILE_EXTENSIONS)
      /**/
-# define BOOST_IOSTREAMS_FD_SEEK lseek64 // GCC for some 32-bit *nix
+
+ /* Systems with transitional extensions for large file support */
+
+# define BOOST_IOSTREAMS_FD_SEEK lseek64
 # define BOOST_IOSTREAMS_FD_TRUNCATE ftruncate64
 # define BOOST_IOSTREAMS_FD_STAT stat64
 # define BOOST_IOSTREAMS_FD_OFFSET off64_t
-# else // Cygwin, Darwin, ...
+# else
 # define BOOST_IOSTREAMS_FD_SEEK lseek
 # define BOOST_IOSTREAMS_FD_TRUNCATE ftruncate
 # define BOOST_IOSTREAMS_FD_STAT stat

Modified: branches/proto/v3/boost/iostreams/detail/config/wide_streams.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/wide_streams.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/wide_streams.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/windows_posix.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/windows_posix.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/windows_posix.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // (C) Copyright 2002, 2003 Beman Dawes Boost.Filesystem
-// (C) Copyright Jonathan Turkanis 2004.
-
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/config/zlib.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/config/zlib.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/config/zlib.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/counted_array.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/counted_array.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/counted_array.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/default_arg.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/default_arg.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/default_arg.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/dispatch.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/dispatch.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/dispatch.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/double_object.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/double_object.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/double_object.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/enable_if_stream.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/enable_if_stream.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/enable_if_stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/error.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/error.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/error.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/execute.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/execute.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/execute.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,8 +6,9 @@
 
  * File: boost/iostreams/detail/execute.hpp
  * Date: Thu Dec 06 13:21:54 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
 
  * Defines the overloaded function template
  * boost::iostreams::detail::execute_all() and the function template
@@ -18,13 +19,9 @@
  * are thrown. If one of the operations throws an exception, performs the
  * remaining operations and rethrows the initial exception.
  *
- * In order to preserve support for old compilers, no attempt is made to deduce
- * the return type of the primary operation, even though it could be easily
- * deduced in all the intended use cases.
- *
  * execute_foreach() is a variant of std::foreach which invokes a function
  * object for each item in a sequence, catching all execptions and rethrowing
- * the first caucht exception after the function object has been invoked on each
+ * the first caught exception after the function object has been invoked on each
  * item.
  */
 
@@ -35,7 +32,8 @@
 # pragma once
 #endif
 
-#include <boost/config.hpp> // BOOST_NO_RESULT_OF
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
 #include <boost/iostreams/detail/config/limits.hpp> // MAX_EXECUTE_ARITY
 #include <boost/preprocessor/arithmetic/dec.hpp>
 #include <boost/preprocessor/cat.hpp>
@@ -43,9 +41,7 @@
 #include <boost/preprocessor/repetition/enum_params.hpp>
 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
 #include <boost/preprocessor/punctuation/comma_if.hpp>
-#ifndef BOOST_NO_RESULT_OF
-# include <boost/utility/result_of.hpp>
-#endif
+#include <boost/utility/result_of.hpp>
 
 namespace boost { namespace iostreams { namespace detail {
 

Modified: branches/proto/v3/boost/iostreams/detail/forward.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/forward.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/forward.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/fstream.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/fstream.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/fstream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/functional.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/functional.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/functional.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,8 +6,9 @@
 
  * File: boost/iostreams/detail/functional.hpp
  * Date: Sun Dec 09 05:38:03 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
 
  * Defines several function objects and object generators for use with
  * execute_all()

Modified: branches/proto/v3/boost/iostreams/detail/ios.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/ios.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/ios.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/iostream.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/iostream.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/iostream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/is_dereferenceable.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/is_dereferenceable.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/is_dereferenceable.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,6 @@
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // (C) Copyright David Abrahams 2004.
-// (C) Copyright Jonathan Turkanis 2005.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/is_iterator_range.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/is_iterator_range.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/is_iterator_range.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/newline.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/newline.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/newline.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/optional.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/optional.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/optional.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/param_type.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/param_type.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/param_type.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/push.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/push.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/push.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/push_params.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/push_params.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/push_params.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/resolve.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/resolve.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/resolve.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/select.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/select.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/select.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -19,7 +20,7 @@
 // >::type selection;
 //
 // Here case1, case2, ... are models of MPL::IntegralConstant with value type
-// bool, and n <= 10.
+// bool, and n <= 12.
 
 #ifndef BOOST_IOSTREAMS_SELECT_HPP_INCLUDED
 #define BOOST_IOSTREAMS_SELECT_HPP_INCLUDED
@@ -57,7 +58,11 @@
           typename Case9 = mpl::true_,
           typename Type9 = mpl::void_,
           typename Case10 = mpl::true_,
- typename Type10 = mpl::void_ >
+ typename Type10 = mpl::void_,
+ typename Case11 = mpl::true_,
+ typename Type11 = mpl::void_,
+ typename Case12 = mpl::true_,
+ typename Type12 = mpl::void_ >
 struct select {
     typedef typename
             mpl::eval_if<
@@ -69,8 +74,10 @@
                 Case6, mpl::identity<Type6>, mpl::eval_if<
                 Case7, mpl::identity<Type7>, mpl::eval_if<
                 Case8, mpl::identity<Type8>, mpl::eval_if<
- Case9, mpl::identity<Type9>, mpl::if_<
- Case10, Type10, mpl::void_ > > > > > > > > >
+ Case9, mpl::identity<Type9>, mpl::eval_if<
+ Case10, mpl::identity<Type10>, mpl::eval_if<
+ Case11, mpl::identity<Type11>, mpl::if_<
+ Case12, Type12, mpl::void_ > > > > > > > > > > >
>::type type;
 };
 

Modified: branches/proto/v3/boost/iostreams/detail/select_by_size.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/select_by_size.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/select_by_size.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/streambuf.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/streambuf/chainbuf.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/streambuf/chainbuf.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/streambuf/chainbuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/streambuf/direct_streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/streambuf/direct_streambuf.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/streambuf/direct_streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -187,10 +188,9 @@
 template<typename T, typename Tr>
 inline typename direct_streambuf<T, Tr>::pos_type
 direct_streambuf<T, Tr>::seekpos
- (pos_type sp, BOOST_IOS::openmode)
+ (pos_type sp, BOOST_IOS::openmode which)
 {
- return seek_impl( position_to_offset(sp), BOOST_IOS::beg,
- BOOST_IOS::in | BOOST_IOS::out );
+ return seek_impl(position_to_offset(sp), BOOST_IOS::beg, which);
 }
 
 template<typename T, typename Tr>

Modified: branches/proto/v3/boost/iostreams/detail/streambuf/indirect_streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/streambuf/indirect_streambuf.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/streambuf/indirect_streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 // See http://www.boost.org/libs/iostreams for documentation.
@@ -124,7 +125,7 @@
     enum flag_type {
         f_open = 1,
         f_output_buffered = f_open << 1,
- f_auto_close = f_output_buffered << 1,
+ f_auto_close = f_output_buffered << 1
     };
 
     optional<wrapper> storage_;
@@ -332,10 +333,9 @@
 template<typename T, typename Tr, typename Alloc, typename Mode>
 inline typename indirect_streambuf<T, Tr, Alloc, Mode>::pos_type
 indirect_streambuf<T, Tr, Alloc, Mode>::seekpos
- (pos_type sp, BOOST_IOS::openmode)
+ (pos_type sp, BOOST_IOS::openmode which)
 {
- return seek_impl( position_to_offset(sp), BOOST_IOS::beg,
- BOOST_IOS::in | BOOST_IOS::out );
+ return seek_impl(position_to_offset(sp), BOOST_IOS::beg, which);
 }
 
 template<typename T, typename Tr, typename Alloc, typename Mode>
@@ -375,7 +375,11 @@
         sync();
         setp(0, 0);
     }
- obj().close(which, next_);
+ if ( !is_convertible<category, dual_use>::value ||
+ is_convertible<Mode, input>::value == (which == BOOST_IOS::in) )
+ {
+ obj().close(which, next_);
+ }
 }
 
 //----------State changing functions------------------------------------------//

Modified: branches/proto/v3/boost/iostreams/detail/streambuf/linked_streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/streambuf/linked_streambuf.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/streambuf/linked_streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -32,9 +33,8 @@
     using base::setg; using base::gbump; using base::pbase; \
     using base::pptr; using base::epptr; using base::setp; \
     using base::pbump; using base::underflow; using base::pbackfail; \
- using base::xsgetn; using base::overflow; using base::sputc; \
- using base::xsputn; using base::sync; using base::seekoff; \
- using base::seekpos; \
+ using base::xsgetn; using base::overflow; using base::xsputn; \
+ using base::sync; using base::seekoff; using base::seekpos; \
     /**/
 
 template<typename Ch, typename Tr = BOOST_IOSTREAMS_CHAR_TRAITS(Ch) >

Modified: branches/proto/v3/boost/iostreams/detail/system_failure.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/system_failure.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/system_failure.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,6 @@
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // (C) Copyright Jonathan Graehl 2004.
-// (C) Copyright Jonathan Turkanis 2005.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -68,9 +69,15 @@
     return BOOST_IOSTREAMS_FAILURE(result);
 }
 
+inline BOOST_IOSTREAMS_FAILURE system_failure(const std::string& msg)
+{ return system_failure(msg.c_str()); }
+
 inline void throw_system_failure(const char* msg)
 { throw system_failure(msg); }
 
+inline void throw_system_failure(const std::string& msg)
+{ throw system_failure(msg); }
+
 } } } // End namespaces detail, iostreams, boost.
 
 #endif // #ifndef BOOST_IOSTREAMS_DETAIL_SYSTEM_FAILURE_HPP_INCLUDED

Modified: branches/proto/v3/boost/iostreams/detail/template_params.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/template_params.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/template_params.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/translate_int_type.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/translate_int_type.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/translate_int_type.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/vc6/close.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/vc6/close.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/vc6/close.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/vc6/read.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/vc6/read.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/vc6/read.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/vc6/write.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/vc6/write.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/vc6/write.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/detail/wrap_unwrap.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/detail/wrap_unwrap.hpp (original)
+++ branches/proto/v3/boost/iostreams/detail/wrap_unwrap.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/device/array.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/device/array.hpp (original)
+++ branches/proto/v3/boost/iostreams/device/array.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/device/back_inserter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/device/back_inserter.hpp (original)
+++ branches/proto/v3/boost/iostreams/device/back_inserter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/device/file.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/device/file.hpp (original)
+++ branches/proto/v3/boost/iostreams/device/file.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/device/file_descriptor.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/device/file_descriptor.hpp (original)
+++ branches/proto/v3/boost/iostreams/device/file_descriptor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -32,74 +33,83 @@
 class BOOST_IOSTREAMS_DECL file_descriptor {
 public:
 #ifdef BOOST_IOSTREAMS_WINDOWS
- typedef void* handle_type;
+ typedef void* handle_type; // A.k.a HANDLE
+#else
+ typedef int handle_type;
 #endif
     typedef char char_type;
     struct category
         : seekable_device_tag,
           closable_tag
         { };
- file_descriptor() : pimpl_(new impl) { }
- explicit file_descriptor(int fd, bool close_on_exit = false)
- : pimpl_(new impl(fd, close_on_exit))
- { }
+ file_descriptor();
+ explicit file_descriptor(handle_type fd, bool close_on_exit = false);
 #ifdef BOOST_IOSTREAMS_WINDOWS
- explicit file_descriptor(handle_type handle, bool close_on_exit = false)
- : pimpl_(new impl(handle, close_on_exit))
- { }
+ explicit file_descriptor(int fd, bool close_on_exit = false);
 #endif
     explicit file_descriptor( const std::string& path,
                               BOOST_IOS::openmode mode =
                                   BOOST_IOS::in | BOOST_IOS::out,
                               BOOST_IOS::openmode base_mode =
- BOOST_IOS::in | BOOST_IOS::out )
- : pimpl_(new impl)
- { open(path, mode, base_mode); }
+ BOOST_IOS::in | BOOST_IOS::out );
+ explicit file_descriptor( const char* path,
+ BOOST_IOS::openmode mode =
+ BOOST_IOS::in | BOOST_IOS::out,
+ BOOST_IOS::openmode base_mode =
+ BOOST_IOS::in | BOOST_IOS::out );
     void open( const std::string& path,
                BOOST_IOS::openmode =
                    BOOST_IOS::in | BOOST_IOS::out,
                BOOST_IOS::openmode base_mode =
                    BOOST_IOS::in | BOOST_IOS::out );
+ void open( const char* path,
+ BOOST_IOS::openmode =
+ BOOST_IOS::in | BOOST_IOS::out,
+ BOOST_IOS::openmode base_mode =
+ BOOST_IOS::in | BOOST_IOS::out );
     bool is_open() const { return pimpl_->flags_ != 0; }
     std::streamsize read(char_type* s, std::streamsize n);
     std::streamsize write(const char_type* s, std::streamsize n);
     std::streampos seek(stream_offset off, BOOST_IOS::seekdir way);
     void close();
+ handle_type handle() const { return pimpl_->handle_; }
 private:
     struct impl {
- impl() : fd_(-1), flags_(0) { }
- impl(int fd, bool close_on_exit)
- : fd_(fd), flags_(0)
+ impl() :
+ #ifdef BOOST_IOSTREAMS_WINDOWS
+ handle_(reinterpret_cast<handle_type>(-1)),
+ #else
+ handle_(-1),
+ #endif
+ flags_(0)
+ { }
+ impl(handle_type fd, bool close_on_exit)
+ : handle_(fd), flags_(0)
         { if (close_on_exit) flags_ |= impl::close_on_exit; }
- #ifdef BOOST_IOSTREAMS_WINDOWS
- impl(handle_type handle, bool close_on_exit)
- : handle_(handle), flags_(has_handle)
- { if (close_on_exit) flags_ |= impl::close_on_exit; }
- #endif
- ~impl() {
- if (flags_ & close_on_exit) close_impl(*this);
- }
+ ~impl()
+ { if (flags_ & close_on_exit) close_impl(*this); }
         enum flags {
             close_on_exit = 1,
- has_handle = 2,
             append = 4
         };
- int fd_;
- #ifdef BOOST_IOSTREAMS_WINDOWS
         handle_type handle_;
- #endif
         int flags_;
     };
     friend struct impl;
 
     static void close_impl(impl&);
+#ifdef BOOST_IOSTREAMS_WINDOWS
+ static handle_type int_to_handle(int fd);
+#endif
 
     shared_ptr<impl> pimpl_;
 };
 
 struct file_descriptor_source : private file_descriptor {
 #ifdef BOOST_IOSTREAMS_WINDOWS
- typedef void* handle_type;
+ typedef void* handle_type; // A.k.a HANDLE
+#else
+ typedef int handle_type;
 #endif
     typedef char char_type;
     struct category
@@ -112,25 +122,31 @@
     using file_descriptor::open;
     using file_descriptor::is_open;
     using file_descriptor::close;
+ using file_descriptor::handle;
     file_descriptor_source() { }
- explicit file_descriptor_source(int fd, bool close_on_exit = false)
+ explicit file_descriptor_source(handle_type fd, bool close_on_exit = false)
         : file_descriptor(fd, close_on_exit)
         { }
 #ifdef BOOST_IOSTREAMS_WINDOWS
- explicit file_descriptor_source( handle_type handle,
- bool close_on_exit = false )
- : file_descriptor(handle, close_on_exit)
+ explicit file_descriptor_source(int fd, bool close_on_exit = false)
+ : file_descriptor(fd, close_on_exit)
         { }
 #endif
     explicit file_descriptor_source( const std::string& path,
                                      BOOST_IOS::openmode m = BOOST_IOS::in )
         : file_descriptor(path, m & ~BOOST_IOS::out, BOOST_IOS::in)
         { }
+ explicit file_descriptor_source( const char* path,
+ BOOST_IOS::openmode m = BOOST_IOS::in )
+ : file_descriptor(path, m & ~BOOST_IOS::out, BOOST_IOS::in)
+ { }
 };
 
 struct file_descriptor_sink : private file_descriptor {
 #ifdef BOOST_IOSTREAMS_WINDOWS
- typedef void* handle_type;
+ typedef void* handle_type; // A.k.a HANDLE
+#else
+ typedef int handle_type;
 #endif
     typedef char char_type;
     struct category
@@ -143,20 +159,24 @@
     using file_descriptor::open;
     using file_descriptor::is_open;
     using file_descriptor::close;
+ using file_descriptor::handle;
     file_descriptor_sink() { }
- explicit file_descriptor_sink(int fd, bool close_on_exit = false)
+ explicit file_descriptor_sink(handle_type fd, bool close_on_exit = false)
         : file_descriptor(fd, close_on_exit)
         { }
 #ifdef BOOST_IOSTREAMS_WINDOWS
- explicit file_descriptor_sink( handle_type handle,
- bool close_on_exit = false )
- : file_descriptor(handle, close_on_exit)
+ explicit file_descriptor_sink(int fd, bool close_on_exit = false)
+ : file_descriptor(fd, close_on_exit)
         { }
 #endif
     explicit file_descriptor_sink( const std::string& path,
                                    BOOST_IOS::openmode m = BOOST_IOS::out )
         : file_descriptor(path, m & ~BOOST_IOS::in, BOOST_IOS::out)
         { }
+ explicit file_descriptor_sink( const char* path,
+ BOOST_IOS::openmode m = BOOST_IOS::out )
+ : file_descriptor(path, m & ~BOOST_IOS::in, BOOST_IOS::out)
+ { }
 };
 
 } } // End namespaces iostreams, boost.

Modified: branches/proto/v3/boost/iostreams/device/mapped_file.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/device/mapped_file.hpp (original)
+++ branches/proto/v3/boost/iostreams/device/mapped_file.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // (C) Copyright Craig Henderson 2002. 'boost/memmap.hpp' from sandbox
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
@@ -62,7 +63,9 @@
 
 struct mapped_file_params {
     explicit mapped_file_params()
- #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) && defined(BOOST_RWSTD_VER)
+ #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) && defined(BOOST_RWSTD_VER) || \
+ defined(__BORLANDC__) && defined(_CPPLIB_VER)
+ /**/
         : mode(std::ios_base::openmode(0)),
     #else
         : mode(),
@@ -72,7 +75,8 @@
         { }
     explicit mapped_file_params(const std::string& path)
         : path(path),
- #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) && defined(BOOST_RWSTD_VER)
+ #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) && defined(BOOST_RWSTD_VER) || \
+ defined(__BORLANDC__) && defined(_CPPLIB_VER)
           mode(std::ios_base::openmode(0)),
     #else
           mode(),

Modified: branches/proto/v3/boost/iostreams/device/null.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/device/null.hpp (original)
+++ branches/proto/v3/boost/iostreams/device/null.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/filter/aggregate.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/aggregate.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/aggregate.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -15,10 +16,13 @@
 #include <cassert>
 #include <iterator> // back_inserter
 #include <vector>
+#include <boost/iostreams/constants.hpp> // default_device_buffer_size
 #include <boost/iostreams/categories.hpp>
 #include <boost/iostreams/detail/char_traits.hpp>
 #include <boost/iostreams/detail/ios.hpp> // openmode, streamsize.
 #include <boost/iostreams/pipeline.hpp>
+#include <boost/iostreams/read.hpp> // check_eof
+#include <boost/iostreams/write.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 

Modified: branches/proto/v3/boost/iostreams/filter/bzip2.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/bzip2.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/bzip2.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/filter/counter.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/counter.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/counter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/filter/gzip.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/gzip.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/gzip.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -134,7 +135,7 @@
                  std::string comment = "",
                  std::time_t mtime = 0 )
         : zlib_params(level, method, window_bits, mem_level, strategy),
- file_name(file_name), mtime(mtime)
+ file_name(file_name), comment(comment), mtime(mtime)
         { }
     std::string file_name;
     std::string comment;
@@ -251,6 +252,8 @@
                 throw;
             }
             close_impl();
+ } else {
+ close_impl();
         }
     }
 private:

Modified: branches/proto/v3/boost/iostreams/filter/line.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/line.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/line.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -18,7 +19,9 @@
 #include <boost/config.hpp> // BOOST_STATIC_CONSTANT.
 #include <boost/iostreams/categories.hpp>
 #include <boost/iostreams/detail/ios.hpp> // openmode, streamsize.
+#include <boost/iostreams/read.hpp> // check_eof
 #include <boost/iostreams/pipeline.hpp>
+#include <boost/iostreams/write.hpp>
 
 // Must come last.
 #include <boost/iostreams/detail/config/disable_warnings.hpp> // VC7.1 C4244.

Modified: branches/proto/v3/boost/iostreams/filter/newline.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/newline.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/newline.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -19,8 +20,12 @@
 #include <stdexcept> // logic_error.
 #include <boost/config.hpp> // BOOST_STATIC_CONSTANT.
 #include <boost/iostreams/categories.hpp>
-#include <boost/iostreams/detail/char_traits.hpp>
+#include <boost/iostreams/detail/char_traits.hpp>
+#include <boost/iostreams/detail/ios.hpp> // BOOST_IOSTREAMS_FAILURE
+#include <boost/iostreams/read.hpp> // get
+#include <boost/iostreams/write.hpp> // put
 #include <boost/iostreams/pipeline.hpp>
+#include <boost/iostreams/putback.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 
@@ -211,8 +216,7 @@
         typedef typename iostreams::category_of<Sink>::type category;
         if ((flags_ & f_write) != 0 && (flags_ & f_has_CR) != 0)
             newline_if_sink(dest);
- if (which == BOOST_IOS::out)
- flags_ &= newline::platform_mask;
+ flags_ &= ~f_has_LF; // Restore original flags.
     }
 private:
 
@@ -398,24 +402,21 @@
     {
         using iostreams::newline::final_newline;
 
- if (which == BOOST_IOS::out) {
-
- // Update final_newline flag.
- if ( (source() & f_has_CR) != 0 ||
- (source() & f_line_complete) != 0 )
- {
- source() |= final_newline;
- }
+ // Update final_newline flag.
+ if ( (source() & f_has_CR) != 0 ||
+ (source() & f_line_complete) != 0 )
+ {
+ source() |= final_newline;
+ }
 
- // Clear non-sticky flags.
- source() &= ~(f_has_CR | f_line_complete);
+ // Clear non-sticky flags.
+ source() &= ~(f_has_CR | f_line_complete);
 
- // Check for errors.
- if ( (target_ & final_newline) != 0 &&
- (source() & final_newline) == 0 )
- {
- fail();
- }
+ // Check for errors.
+ if ( (target_ & final_newline) != 0 &&
+ (source() & final_newline) == 0 )
+ {
+ fail();
         }
     }
 private:

Modified: branches/proto/v3/boost/iostreams/filter/regex.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/regex.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/regex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -57,7 +58,7 @@
                 return;
             iterator first(&src[0], &src[0] + src.size(), re_, flags_);
             iterator last;
- const Ch* suffix = 0; // Prevent GCC 2.95 warning.
+ const Ch* suffix = 0;
             for (; first != last; ++first) {
                 dest.insert( dest.end(),
                              first->prefix().first,
@@ -68,7 +69,11 @@
                              replacement.end() );
                 suffix = first->suffix().first;
             }
- dest.insert(dest.end(), suffix, &src[0] + src.size());
+ if (suffix) {
+ dest.insert(dest.end(), suffix, &src[0] + src.size());
+ } else {
+ dest.insert(dest.end(), &src[0], &src[0] + src.size());
+ }
         }
     struct simple_formatter {
         simple_formatter(const string_type& fmt, flag_type fmt_flags)

Modified: branches/proto/v3/boost/iostreams/filter/stdio.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/stdio.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/stdio.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/filter/symmetric.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/symmetric.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/symmetric.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -153,10 +154,7 @@
     template<typename Sink>
     void close(Sink& snk, BOOST_IOS::openmode which)
     {
- using namespace std;
- if ((state() & f_write) == 0 && which == BOOST_IOS::in)
- close_impl();
- if ((state() & f_write) != 0 && which == BOOST_IOS::out) {
+ if ((state() & f_write) != 0) {
 
             // Repeatedly invoke filter() with no input.
             try {
@@ -175,6 +173,8 @@
                 throw;
             }
             close_impl();
+ } else {
+ close_impl();
         }
     }
     SymmetricFilter& filter() { return *pimpl_; }

Modified: branches/proto/v3/boost/iostreams/filter/test.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/test.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/filter/zlib.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filter/zlib.hpp (original)
+++ branches/proto/v3/boost/iostreams/filter/zlib.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/filtering_stream.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filtering_stream.hpp (original)
+++ branches/proto/v3/boost/iostreams/filtering_stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -46,7 +47,19 @@
                 BOOST_IOSTREAMS_BASIC_ISTREAM(Ch, Tr),
                 else_,
                 BOOST_IOSTREAMS_BASIC_OSTREAM(Ch, Tr)
- >::type type;
+ >::type stream_type;
+ typedef typename
+ iostreams::select< // Dismbiguation required for Tru64.
+ mpl::and_<
+ is_convertible<Mode, input>,
+ is_convertible<Mode, output>
+ >,
+ iostream_tag,
+ is_convertible<Mode, input>,
+ istream_tag,
+ else_,
+ ostream_tag
+ >::type stream_tag;
 };
 
 template<typename Chain, typename Access>
@@ -59,7 +72,7 @@
                  typename Chain::mode,
                  typename Chain::char_type,
                  typename Chain::traits_type
- >::type
+ >::stream_type
 {
 public:
     typedef Chain chain_type;
@@ -73,7 +86,7 @@
                  typename Chain::mode,
                  typename Chain::char_type,
                  typename Chain::traits_type
- >::type stream_type;
+ >::stream_type stream_type;
     filtering_stream_base() : stream_type(0) { this->set_chain(&chain_); }
 private:
     void notify() { this->rdbuf(chain_.empty() ? 0 : &chain_.front()); }
@@ -110,6 +123,11 @@
     { \
     public: \
         typedef Ch char_type; \
+ struct category \
+ : Mode, \
+ closable_tag, \
+ detail::filtering_stream_traits<Mode, Ch, Tr>::stream_tag \
+ { }; \
         BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr) \
         typedef Mode mode; \
         typedef chain_type_<Mode, Ch, Tr, Alloc> chain_type; \
@@ -132,7 +150,7 @@
     }; \
     /**/
 BOOST_IOSTREAMS_DEFINE_FILTER_STREAM(filtering_stream, boost::iostreams::chain, char)
-BOOST_IOSTREAMS_DEFINE_FILTER_STREAM(wfiltering_stream, boost::iostreams::chain, wchar_t)
+BOOST_IOSTREAMS_DEFINE_FILTER_STREAM(wfiltering_stream, boost::iostreams::chain, wchar_t)
 
 typedef filtering_stream<input> filtering_istream;
 typedef filtering_stream<output> filtering_ostream;

Modified: branches/proto/v3/boost/iostreams/filtering_streambuf.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/filtering_streambuf.hpp (original)
+++ branches/proto/v3/boost/iostreams/filtering_streambuf.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -34,15 +35,20 @@
 // public_ or protected_; defaults to public_.
 //
 #define BOOST_IOSTREAMS_DEFINE_FILTER_STREAMBUF(name_, chain_type_, default_char_) \
- template< typename Mode, typename Ch = default_char_, \
+ template< typename Mode, \
+ typename Ch = default_char_, \
               typename Tr = BOOST_IOSTREAMS_CHAR_TRAITS(Ch), \
- typename Alloc = std::allocator<Ch>, typename Access = public_ > \
+ typename Alloc = std::allocator<Ch>, \
+ typename Access = public_ > \
     class name_ : public boost::iostreams::detail::chainbuf< \
                              chain_type_<Mode, Ch, Tr, Alloc>, Mode, Access \
> \
     { \
     public: \
         typedef Ch char_type; \
+ struct category \
+ : Mode, closable_tag, streambuf_tag \
+ { }; \
         BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr) \
         typedef Mode mode; \
         typedef chain_type_<Mode, Ch, Tr, Alloc> chain_type; \

Modified: branches/proto/v3/boost/iostreams/flush.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/flush.hpp (original)
+++ branches/proto/v3/boost/iostreams/flush.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/get.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/get.hpp (original)
+++ branches/proto/v3/boost/iostreams/get.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/imbue.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/imbue.hpp (original)
+++ branches/proto/v3/boost/iostreams/imbue.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/input_sequence.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/input_sequence.hpp (original)
+++ branches/proto/v3/boost/iostreams/input_sequence.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -15,6 +16,7 @@
 #include <boost/config.hpp> // DEDUCED_TYPENAME, MSVC.
 #include <boost/detail/workaround.hpp>
 #include <boost/iostreams/detail/wrap_unwrap.hpp>
+#include <boost/iostreams/operations_fwd.hpp> // is_custom
 #include <boost/iostreams/traits.hpp>
 #include <boost/mpl/if.hpp>
 

Modified: branches/proto/v3/boost/iostreams/invert.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/invert.hpp (original)
+++ branches/proto/v3/boost/iostreams/invert.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -36,8 +37,9 @@
 //
 // Template name: inverse.
 // Template paramters:
-// Filter - A filter adapter which
-// Description: Returns an instance of an appropriate specialization of inverse.
+// Filter - A model of InputFilter or OutputFilter.
+// Description: Generates an InputFilter from an OutputFilter or
+// vice versa.
 //
 template<typename Filter>
 class inverse {

Modified: branches/proto/v3/boost/iostreams/operations.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/operations.hpp (original)
+++ branches/proto/v3/boost/iostreams/operations.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/operations_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/operations_fwd.hpp (original)
+++ branches/proto/v3/boost/iostreams/operations_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/optimal_buffer_size.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/optimal_buffer_size.hpp (original)
+++ branches/proto/v3/boost/iostreams/optimal_buffer_size.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/output_sequence.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/output_sequence.hpp (original)
+++ branches/proto/v3/boost/iostreams/output_sequence.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -15,6 +16,7 @@
 #include <boost/config.hpp> // DEDUCED_TYPENAME, MSVC.
 #include <boost/detail/workaround.hpp>
 #include <boost/iostreams/detail/wrap_unwrap.hpp>
+#include <boost/iostreams/operations_fwd.hpp> // is_custom
 #include <boost/iostreams/traits.hpp>
 #include <boost/mpl/if.hpp>
 

Modified: branches/proto/v3/boost/iostreams/pipeline.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/pipeline.hpp (original)
+++ branches/proto/v3/boost/iostreams/pipeline.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/positioning.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/positioning.hpp (original)
+++ branches/proto/v3/boost/iostreams/positioning.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -18,6 +19,7 @@
 #include <boost/cstdint.hpp>
 #include <boost/integer_traits.hpp>
 #include <boost/iostreams/detail/config/codecvt.hpp> // mbstate_t.
+#include <boost/iostreams/detail/config/fpos.hpp>
 #include <boost/iostreams/detail/ios.hpp> // streamoff, streampos.
 
 // Must come last.
@@ -28,74 +30,83 @@
 #endif
 
 namespace boost { namespace iostreams {
+
+//------------------Definition of stream_offset-------------------------------//
 
 typedef boost::intmax_t stream_offset;
 
+//------------------Definition of stream_offset_to_streamoff------------------//
+
 inline std::streamoff stream_offset_to_streamoff(stream_offset off)
 { return static_cast<stream_offset>(off); }
 
-template<typename PosType> // Hande custom pos_type's.
+//------------------Definition of offset_to_position--------------------------//
+
+# ifndef BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
+
+inline std::streampos offset_to_position(stream_offset off) { return off; }
+
+# else // # ifndef BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
+
+inline std::streampos offset_to_position(stream_offset off)
+{ return std::streampos(std::mbstate_t(), off); }
+
+# endif // # ifndef BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
+
+//------------------Definition of position_to_offset--------------------------//
+
+// Hande custom pos_type's
+template<typename PosType>
 inline stream_offset position_to_offset(PosType pos)
 { return std::streamoff(pos); }
 
-#if ((defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)) && \
- !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) \
- && !defined(__QNX__) \
- /**/
+# ifndef BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
 
- /* Dinkumware */
+inline stream_offset position_to_offset(std::streampos pos) { return pos; }
 
-inline std::streampos offset_to_position(stream_offset off)
-{
- // Use implementation-specific constructor.
- return std::streampos(std::mbstate_t(), off);
-}
+# else // # ifndef BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
+
+// In the Dinkumware standard library, a std::streampos consists of two stream
+// offsets -- _Fpos, of type std::fpos_t, and _Myoff, of type std::streamoff --
+// together with a conversion state. A std::streampos is converted to a
+// boost::iostreams::stream_offset by extracting the two stream offsets and
+// summing them. The value of _Fpos can be extracted using the implementation-
+// defined member functions seekpos() or get_fpos_t(), depending on the
+// Dinkumware version. The value of _Myoff cannot be extracted directly, but can
+// be calculated as the difference between the result of converting the
+// std::fpos to a std::streamoff and the result of converting the member _Fpos
+// to a long. The latter operation is accomplished with the macro _FPOSOFF,
+// which works correctly on platforms where std::fpos_t is an integral type and
+// platforms where it is a struct
 
+// Converts a std::fpos_t to a stream_offset
 inline stream_offset fpos_t_to_offset(std::fpos_t pos)
-{ // Helper function.
-#if defined(_POSIX_) || (_INTEGRAL_MAX_BITS >= 64)
+{
+# if defined(_POSIX_) || (_INTEGRAL_MAX_BITS >= 64) || defined(__IBMCPP__)
     return pos;
-#else
+# else
     return _FPOSOFF(pos);
-#endif
+# endif
 }
 
-# if defined(_CPPLIB_VER) //--------------------------------------------------//
-
- /* Recent Dinkumware */
-
-inline stream_offset position_to_offset(std::streampos pos)
+// Extracts the member _Fpos from a std::fpos
+inline std::fpos_t streampos_to_fpos_t(std::streampos pos)
 {
- // Use implementation-specific member function seekpos().
- return fpos_t_to_offset(pos.seekpos()) +
- static_cast<stream_offset>(static_cast<std::streamoff>(pos)) -
- static_cast<stream_offset>(_FPOSOFF(pos.seekpos()));
+# if defined (_CPPLIB_VER) || defined(__IBMCPP__)
+ return pos.seekpos();
+# else
+ return pos.get_fpos_t();
+# endif
 }
 
-# else // # if defined(_CPPLIB_VER) //----------------------------------------//
-
- /* Old Dinkumware */
-
 inline stream_offset position_to_offset(std::streampos pos)
 {
- // use implementation-specific member function get_fpos_t().
- return fpos_t_to_offset(pos.get_fpos_t()) +
+ return fpos_t_to_offset(streampos_to_fpos_t(pos)) +
            static_cast<stream_offset>(static_cast<std::streamoff>(pos)) -
- static_cast<stream_offset>(
- static_cast<std::streamoff>(pos.get_fpos_t())
- );
+ static_cast<stream_offset>(_FPOSOFF(streampos_to_fpos_t(pos)));
 }
 
-# endif // # if defined(_CPPLIB_VER) //---------------------------------------//
-#else // Dinkumware //--------------------------------------------------------//
-
- /* Non-Dinkumware */
-
-inline std::streampos offset_to_position(stream_offset off) { return off; }
-
-inline stream_offset position_to_offset(std::streampos pos) { return pos; }
-
-#endif // Dinkumware //-------------------------------------------------------//
+# endif // # ifndef BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
 
 } } // End namespaces iostreams, boost.
 

Modified: branches/proto/v3/boost/iostreams/put.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/put.hpp (original)
+++ branches/proto/v3/boost/iostreams/put.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/putback.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/putback.hpp (original)
+++ branches/proto/v3/boost/iostreams/putback.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/read.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/read.hpp (original)
+++ branches/proto/v3/boost/iostreams/read.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/restrict.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/restrict.hpp (original)
+++ branches/proto/v3/boost/iostreams/restrict.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,443 +1,26 @@
-// (C) Copyright Jonathan Turkanis 2005.
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
+/*
+ * Distributed under the Boost Software License, Version 1.0.(See accompanying
+ * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
+ *
+ * See http://www.boost.org/libs/iostreams for documentation.
+ *
+ * File: boost/iostreams/detail/restrict.hpp
+ * Date: Sun Jan 06 12:57:30 MST 2008
+ * Copyright: 2008 CodeRage, LLC
+ 2004-2007 Jonathan Turkanis
+ * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
+ *
+ * Defines the class template boost::iostreams::restriction and the
+ * overloaded function template boost::iostreams::restrict
+ */
 
 #ifndef BOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
 #define BOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
 
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <algorithm> // min.
-#include <utility> // pair.
-#include <boost/cstdint.hpp> // intmax_t.
-#include <boost/config.hpp> // DEDUCED_TYPENAME.
-#include <boost/iostreams/categories.hpp>
-#include <boost/iostreams/char_traits.hpp>
-#include <boost/iostreams/detail/adapter/device_adapter.hpp>
-#include <boost/iostreams/detail/adapter/filter_adapter.hpp>
-#include <boost/iostreams/detail/call_traits.hpp>
-#include <boost/iostreams/detail/enable_if_stream.hpp>
-#include <boost/iostreams/detail/error.hpp>
-#include <boost/iostreams/detail/ios.hpp> // failure.
-#include <boost/iostreams/detail/select.hpp>
-#include <boost/iostreams/operations.hpp>
-#include <boost/iostreams/skip.hpp>
-#include <boost/iostreams/traits.hpp> // mode_of, is_direct.
-#include <boost/mpl/bool.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-#include <boost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace boost { namespace iostreams {
-
-namespace detail {
-
-//
-// Template name: restricted_indirect_device.
-// Description: Provides an restricted view of an indirect Device.
-// Template paramters:
-// Device - An indirect model of Device that models either Source or
-// SeekableDevice.
-//
-template<typename Device>
-class restricted_indirect_device : public device_adapter<Device> {
-private:
- typedef typename detail::param_type<Device>::type param_type;
-public:
- typedef typename char_type_of<Device>::type char_type;
- typedef typename mode_of<Device>::type mode;
- BOOST_STATIC_ASSERT(!(is_convertible<mode, detail::two_sequence>::value));
- struct category
- : mode,
- device_tag,
- closable_tag,
- flushable_tag,
- localizable_tag,
- optimally_buffered_tag
- { };
- restricted_indirect_device( param_type dev, stream_offset off,
- stream_offset len = -1 );
- std::streamsize read(char_type* s, std::streamsize n);
- std::streamsize write(const char_type* s, std::streamsize n);
- std::streampos seek(stream_offset off, BOOST_IOS::seekdir way);
-private:
- stream_offset beg_, pos_, end_;
-};
-
-//
-// Template name: restricted_direct_device.
-// Description: Provides an restricted view of a Direct Device.
-// Template paramters:
-// Device - A model of Direct and Device.
-//
-template<typename Device>
-class restricted_direct_device : public device_adapter<Device> {
-public:
- typedef typename char_type_of<Device>::type char_type;
- typedef std::pair<char_type*, char_type*> pair_type;
- typedef typename mode_of<Device>::type mode;
- BOOST_STATIC_ASSERT(!(is_convertible<mode, detail::two_sequence>::value));
- struct category
- : mode_of<Device>::type,
- device_tag,
- direct_tag,
- closable_tag,
- localizable_tag
- { };
- restricted_direct_device( const Device& dev, stream_offset off,
- stream_offset len = -1 );
- pair_type input_sequence();
- pair_type output_sequence();
-private:
- pair_type sequence(mpl::true_);
- pair_type sequence(mpl::false_);
- char_type *beg_, *end_;
-};
-
-//
-// Template name: restricted_filter.
-// Description: Provides an restricted view of a Filter.
-// Template paramters:
-// Filter - An indirect model of Filter.
-//
-template<typename Filter>
-class restricted_filter : public filter_adapter<Filter> {
-public:
- typedef typename char_type_of<Filter>::type char_type;
- typedef typename mode_of<Filter>::type mode;
- BOOST_STATIC_ASSERT(!(is_convertible<mode, detail::two_sequence>::value));
- struct category
- : mode,
- filter_tag,
- multichar_tag,
- closable_tag,
- localizable_tag,
- optimally_buffered_tag
- { };
- restricted_filter( const Filter& flt, stream_offset off,
- stream_offset len = -1 );
-
- template<typename Source>
- std::streamsize read(Source& src, char_type* s, std::streamsize n)
- {
- using namespace std;
- if (!open_)
- open(src, BOOST_IOS::in);
- std::streamsize amt =
- end_ != -1 ?
- (std::min) (n, static_cast<std::streamsize>(end_ - pos_)) :
- n;
- std::streamsize result =
- iostreams::read(this->component(), src, s, amt);
- if (result != -1)
- pos_ += result;
- return result;
- }
-
- template<typename Sink>
- std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
- {
- if (!open_)
- open(snk, BOOST_IOS::out);
- if (end_ != -1 && pos_ + n >= end_)
- bad_write();
- std::streamsize result =
- iostreams::write(this->component(), snk, s, n);
- pos_ += result;
- return result;
- }
-
- template<typename Device>
- std::streampos seek(Device& dev, stream_offset off, BOOST_IOS::seekdir way)
- {
- stream_offset next;
- if (way == BOOST_IOS::beg) {
- next = beg_ + off;
- } else if (way == BOOST_IOS::cur) {
- next = pos_ + off;
- } else if (end_ != -1) {
- next = end_ + off;
- } else {
- // Restriction is half-open; seek relative to the actual end.
- pos_ = this->component().seek(dev, off, BOOST_IOS::end);
- if (pos_ < beg_)
- bad_seek();
- return offset_to_position(pos_ - beg_);
- }
- if (next < beg_ || end_ != -1 && next >= end_)
- bad_seek();
- pos_ = this->component().seek(dev, next, BOOST_IOS::cur);
- return offset_to_position(pos_ - beg_);
- }
-
- template<typename Device>
- void close(Device& dev)
- {
- open_ = false;
- detail::close_all(this->component(), dev);
- }
-
- template<typename Device>
- void close(Device& dev, BOOST_IOS::openmode which)
- {
- open_ = false;
- iostreams::close(this->component(), dev, which);
- }
-private:
- template<typename Device>
- void open(Device& dev, BOOST_IOS::openmode which)
- {
- typedef typename is_convertible<mode, dual_use>::type is_dual_use;
- open_ = true;
- which = is_dual_use() ? which : (BOOST_IOS::in | BOOST_IOS::out);
- iostreams::skip(this->component(), dev, beg_, which);
- }
-
- stream_offset beg_, pos_, end_;
- bool open_;
-};
-
-template<typename T>
-struct restriction_traits
- : iostreams::select< // Disambiguation for Tru64.
- is_filter<T>, restricted_filter<T>,
- is_direct<T>, restricted_direct_device<T>,
- else_, restricted_indirect_device<T>
- >
- { };
-
-} // End namespace detail.
-
-template<typename T>
-struct restriction : public detail::restriction_traits<T>::type {
- typedef typename detail::param_type<T>::type param_type;
- typedef typename detail::restriction_traits<T>::type base_type;
- restriction(param_type t, stream_offset off, stream_offset len = -1)
- : base_type(t, off, len)
- { }
-};
-
-//--------------Implementation of restrict------------------------------------//
-
-// Note: The following workarounds are patterned after resolve.hpp. It has not
-// yet been confirmed that they are necessary.
-
-#ifndef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //-------------------------//
-# ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-------------------------------//
-
-template<typename T>
-restriction<T> restrict( const T& t, stream_offset off, stream_offset len = -1
- BOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return restriction<T>(t, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_streambuf<Ch, Tr> >
-restrict(std::basic_streambuf<Ch, Tr>& sb, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_streambuf<Ch, Tr> >(sb, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_istream<Ch, Tr> >
-restrict(std::basic_istream<Ch, Tr>& is, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_istream<Ch, Tr> >(is, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_ostream<Ch, Tr> >
-restrict(std::basic_ostream<Ch, Tr>& os, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_ostream<Ch, Tr> >(os, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_iostream<Ch, Tr> >
-restrict(std::basic_iostream<Ch, Tr>& io, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_iostream<Ch, Tr> >(io, off, len); }
-
-# else // # ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //---------------------//
-
-template<typename T>
-restriction<T> restrict( const T& t, stream_offset off, stream_offset len = -1
- BOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return restriction<T>(t, off, len); }
-
-restriction<std::streambuf>
-restrict(std::streambuf& sb, stream_offset off, stream_offset len = -1)
-{ return restriction<std::streambuf>(sb, off, len); }
-
-restriction<std::istream>
-restrict(std::istream<Ch, Tr>& is, stream_offset off, stream_offset len = -1)
-{ return restriction<std::istream>(is, off, len); }
-
-restriction<std::ostream>
-restrict(std::ostream<Ch, Tr>& os, stream_offset off, stream_offset len = -1)
-{ return restriction<std::ostream>(os, off, len); }
-
-restriction<std::iostream>
-restrict(std::iostream<Ch, Tr>& io, stream_offset off, stream_offset len = -1)
-{ return restriction<std::iostream>(io, off, len); }
-
-# endif // # ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------//
-#else // #ifndef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //----------------//
-
-template<typename T>
-restriction<T>
-restrict(const T& t, stream_offset off, stream_offset len, mpl::true_)
-{ // Bad overload resolution.
- return restriction<T>(const_cast<T&>(t, off, len));
-}
-
-template<typename T>
-restriction<T>
-restrict(const T& t, stream_offset off, stream_offset len, mpl::false_)
-{ return restriction<T>(t, off, len); }
-
-template<typename T>
-restriction<T>
-restrict( const T& t, stream_offset off, stream_offset len = -1
- BOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return restrict(t, off, len, is_std_io<T>()); }
-
-# if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
- !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && \
- !defined(__GNUC__) // ---------------------------------------------------//
-
-template<typename T>
-restriction<T>
-restrict(T& t, stream_offset off, stream_offset len = -1)
-{ return restriction<T>(t, off, len); }
-
-# endif // Borland 5.x, VC6-7.0 or GCC 2.9x //--------------------------------//
-#endif // #ifndef BOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //---------------//
-//----------------------------------------------------------------------------//
-
-namespace detail {
-
-//--------------Implementation of restricted_indirect_device------------------//
-
-template<typename Device>
-restricted_indirect_device<Device>::restricted_indirect_device
- (param_type dev, stream_offset off, stream_offset len)
- : device_adapter<Device>(dev), beg_(off), pos_(off),
- end_(len != -1 ? off + len : -1)
-{
- if (len < -1 || off < 0)
- throw BOOST_IOSTREAMS_FAILURE("bad offset");
- iostreams::skip(this->component(), off);
-}
-
-template<typename Device>
-inline std::streamsize restricted_indirect_device<Device>::read
- (char_type* s, std::streamsize n)
-{
- using namespace std;
- std::streamsize amt =
- end_ != -1 ?
- (std::min) (n, static_cast<std::streamsize>(end_ - pos_)) :
- n;
- std::streamsize result = iostreams::read(this->component(), s, amt);
- if (result != -1)
- pos_ += result;
- return result;
-}
-
-template<typename Device>
-inline std::streamsize restricted_indirect_device<Device>::write
- (const char_type* s, std::streamsize n)
-{
- if (end_ != -1 && pos_ + n >= end_)
- bad_write();
- std::streamsize result = iostreams::write(this->component(), s, n);
- pos_ += result;
- return result;
-}
-
-template<typename Device>
-std::streampos restricted_indirect_device<Device>::seek
- (stream_offset off, BOOST_IOS::seekdir way)
-{
- stream_offset next;
- if (way == BOOST_IOS::beg) {
- next = beg_ + off;
- } else if (way == BOOST_IOS::cur) {
- next = pos_ + off;
- } else if (end_ != -1) {
- next = end_ + off;
- } else {
- // Restriction is half-open; seek relative to the actual end.
- pos_ = iostreams::seek(this->component(), off, BOOST_IOS::end);
- if (pos_ < beg_)
- bad_seek();
- return offset_to_position(pos_ - beg_);
- }
- if (next < beg_ || end_ != -1 && next >= end_)
- bad_seek();
- pos_ = iostreams::seek(this->component(), next - pos_, BOOST_IOS::cur);
- return offset_to_position(pos_ - beg_);
-}
-
-//--------------Implementation of restricted_direct_device--------------------//
-
-template<typename Device>
-restricted_direct_device<Device>::restricted_direct_device
- (const Device& dev, stream_offset off, stream_offset len)
- : device_adapter<Device>(dev), beg_(0), end_(0)
-{
- std::pair<char_type*, char_type*> seq =
- sequence(is_convertible<category, input>());
- if ( off < 0 || len < -1 ||
- len != -1 && off + len > seq.second - seq.first )
- {
- throw BOOST_IOSTREAMS_FAILURE("bad offset");
- }
- beg_ = seq.first + off;
- end_ = len != -1 ?
- seq.first + off + len :
- seq.second;
-}
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::input_sequence()
-{
- BOOST_STATIC_ASSERT((is_convertible<category, input>::value));
- return std::make_pair(beg_, end_);
-}
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::output_sequence()
-{
- BOOST_STATIC_ASSERT((is_convertible<category, output>::value));
- return std::make_pair(beg_, end_);
-}
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::sequence(mpl::true_)
-{ return iostreams::input_sequence(this->component()); }
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::sequence(mpl::false_)
-{ return iostreams::output_sequence(this->component()); }
-
-//--------------Implementation of restricted_filter---------------------------//
-
-template<typename Filter>
-restricted_filter<Filter>::restricted_filter
- (const Filter& flt, stream_offset off, stream_offset len)
- : filter_adapter<Filter>(flt), beg_(off),
- pos_(off), end_(len != -1 ? off + len : -1), open_(false)
-{
- if (len < -1 || off < 0)
- throw BOOST_IOSTREAMS_FAILURE("bad offset");
-}
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
+#include <boost/iostreams/detail/restrict_impl.hpp>
+#define BOOST_IOSTREAMS_RESTRICT restrict
+#include <boost/iostreams/detail/restrict_impl.hpp>
+#undef BOOST_IOSTREAMS_RESTRICT
 
 #endif // #ifndef BOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED

Modified: branches/proto/v3/boost/iostreams/seek.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/seek.hpp (original)
+++ branches/proto/v3/boost/iostreams/seek.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/skip.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/skip.hpp (original)
+++ branches/proto/v3/boost/iostreams/skip.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/stream.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/stream.hpp (original)
+++ branches/proto/v3/boost/iostreams/stream.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -40,7 +41,19 @@
                 BOOST_IOSTREAMS_BASIC_ISTREAM(char_type, traits_type),
                 else_,
                 BOOST_IOSTREAMS_BASIC_OSTREAM(char_type, traits_type)
- >::type type;
+ >::type stream_type;
+ typedef typename
+ iostreams::select< // Dismbiguation required for Tru64.
+ mpl::and_<
+ is_convertible<mode, input>,
+ is_convertible<mode, output>
+ >,
+ iostream_tag,
+ is_convertible<mode, input>,
+ istream_tag,
+ else_,
+ ostream_tag
+ >::type stream_tag;
 };
 
 // By encapsulating initialization in a base, we can define the macro
@@ -57,14 +70,14 @@
>,
           typename Base = // VC6 Workaround.
               BOOST_DEDUCED_TYPENAME
- detail::stream_traits<Device, Tr>::type >
+ detail::stream_traits<Device, Tr>::stream_type >
 class stream_base
     : protected base_from_member< stream_buffer<Device, Tr, Alloc> >,
       public Base
 {
 private:
- typedef base_from_member< stream_buffer<Device, Tr, Alloc> > pbase_type;
- typedef typename stream_traits<Device, Tr>::type stream_type;
+ typedef base_from_member< stream_buffer<Device, Tr, Alloc> > pbase_type;
+ typedef typename stream_traits<Device, Tr>::stream_type stream_type;
 protected:
     using pbase_type::member; // Avoid warning about 'this' in initializer list.
 public:
@@ -99,12 +112,17 @@
 struct stream : detail::stream_base<Device, Tr, Alloc> {
 public:
     typedef typename char_type_of<Device>::type char_type;
+ struct category
+ : mode_of<Device>::type,
+ closable_tag,
+ detail::stream_traits<Device, Tr>::stream_tag
+ { };
     BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
 private:
     typedef typename
             detail::stream_traits<
                 Device, Tr
- >::type stream_type;
+ >::stream_type stream_type;
     typedef Device policy_type;
 public:
     stream() { }

Modified: branches/proto/v3/boost/iostreams/stream_buffer.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/stream_buffer.hpp (original)
+++ branches/proto/v3/boost/iostreams/stream_buffer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -75,6 +76,11 @@
     typedef T policy_type;
 public:
     typedef typename char_type_of<T>::type char_type;
+ struct category
+ : Mode,
+ closable_tag,
+ streambuf_tag
+ { };
     BOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
 public:
     stream_buffer() { }

Modified: branches/proto/v3/boost/iostreams/tee.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/tee.hpp (original)
+++ branches/proto/v3/boost/iostreams/tee.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/iostreams/traits.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/traits.hpp (original)
+++ branches/proto/v3/boost/iostreams/traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -39,9 +40,9 @@
 #endif // #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
 #include <boost/type_traits/is_convertible.hpp>
 
-namespace boost { namespace iostreams {
+namespace boost { namespace iostreams {
 
-//------------------Definitions of predicates for streams and stream buffers--//
+//----------Definitions of predicates for streams and stream buffers----------//
 
 #ifndef BOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------------------//
 
@@ -49,6 +50,12 @@
 BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ostream, std::basic_ostream, 2)
 BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_iostream, std::basic_iostream, 2)
 BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_streambuf, std::basic_streambuf, 2)
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ifstream, std::basic_ifstream, 2)
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ofstream, std::basic_ofstream, 2)
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_fstream, std::basic_fstream, 2)
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_filebuf, std::basic_filebuf, 2)
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_istringstream, std::basic_istringstream, 3)
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ostringstream, std::basic_ostringstream, 3)
 BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_stringstream, std::basic_stringstream, 3)
 BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_stringbuf, std::basic_stringbuf, 3)
 
@@ -66,13 +73,99 @@
     : mpl::or_< is_istream<T>, is_ostream<T>, is_streambuf<T> >
     { };
 
+template<typename T>
+struct is_std_file_device
+ : mpl::or_<
+ is_ifstream<T>,
+ is_ofstream<T>,
+ is_fstream<T>,
+ is_filebuf<T>
+ >
+ { };
+
+template<typename T>
+struct is_std_string_device
+ : mpl::or_<
+ is_istringstream<T>,
+ is_ostringstream<T>,
+ is_stringstream<T>,
+ is_stringbuf<T>
+ >
+ { };
+
+template<typename Device, typename Tr, typename Alloc>
+struct stream;
+
+template<typename T, typename Tr, typename Alloc, typename Mode>
+class stream_buffer;
+
+template< typename Mode, typename Ch, typename Tr,
+ typename Alloc, typename Access >
+class filtering_stream;
+
+template< typename Mode, typename Ch, typename Tr,
+ typename Alloc, typename Access >
+class wfiltering_stream;
+
+template< typename Mode, typename Ch, typename Tr,
+ typename Alloc, typename Access >
+class filtering_streambuf;
+
+template< typename Mode, typename Ch, typename Tr,
+ typename Alloc, typename Access >
+class filtering_wstreambuf;
+
 namespace detail {
 
 template<typename T, typename Tr>
 class linked_streambuf;
 
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_boost_stream,
+ boost::iostreams::stream,
+ 3 )
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_boost_stream_buffer,
+ boost::iostreams::stream_buffer,
+ 4 )
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_stream_impl,
+ boost::iostreams::filtering_stream,
+ 5 )
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_wstream_impl,
+ boost::iostreams::wfiltering_stream,
+ 5 )
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_streambuf_impl,
+ boost::iostreams::filtering_streambuf,
+ 5 )
+BOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_wstreambuf_impl,
+ boost::iostreams::filtering_wstreambuf,
+ 5 )
 BOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_linked, linked_streambuf, 2)
 
+template<typename T>
+struct is_filtering_stream
+ : mpl::or_<
+ is_filtering_stream_impl<T>,
+ is_filtering_wstream_impl<T>
+ >
+ { };
+
+template<typename T>
+struct is_filtering_streambuf
+ : mpl::or_<
+ is_filtering_streambuf_impl<T>,
+ is_filtering_wstreambuf_impl<T>
+ >
+ { };
+
+template<typename T>
+struct is_boost
+ : mpl::or_<
+ is_boost_stream<T>,
+ is_boost_stream_buffer<T>,
+ is_filtering_stream<T>,
+ is_filtering_streambuf<T>
+ >
+ { };
+
 } // End namespace detail.
                     
 //------------------Definitions of char_type_of-------------------------------//
@@ -154,15 +247,26 @@
     typedef typename detail::unwrapped_type<T>::type U;
     typedef typename
             mpl::eval_if<
- is_std_io<U>,
+ mpl::and_<
+ is_std_io<U>,
+ mpl::not_< detail::is_boost<U> >
+ >,
                 iostreams::select< // Disambiguation for Tru64
- is_iostream<U>, iostream_tag,
- is_istream<U>, istream_tag,
- is_ostream<U>, ostream_tag,
- is_streambuf<U>, streambuf_tag
+ is_filebuf<U>, filebuf_tag,
+ is_ifstream<U>, ifstream_tag,
+ is_ofstream<U>, ofstream_tag,
+ is_fstream<U>, fstream_tag,
+ is_stringbuf<U>, stringbuf_tag,
+ is_istringstream<U>, istringstream_tag,
+ is_ostringstream<U>, ostringstream_tag,
+ is_stringstream<U>, stringstream_tag,
+ is_streambuf<U>, generic_streambuf_tag,
+ is_iostream<U>, generic_iostream_tag,
+ is_istream<U>, generic_istream_tag,
+ is_ostream<U>, generic_ostream_tag
>,
                 detail::member_category<U>
- >::type type;
+ >::type type;
 };
 
 //------------------Definition of get_category--------------------------------//

Modified: branches/proto/v3/boost/iostreams/traits_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/traits_fwd.hpp (original)
+++ branches/proto/v3/boost/iostreams/traits_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -30,15 +31,39 @@
 struct is_streambuf;
 
 template<typename T>
+struct is_istringstream;
+
+template<typename T>
+struct is_ostringstream;
+
+template<typename T>
 struct is_stringstream;
 
 template<typename T>
 struct is_stringbuf;
 
 template<typename T>
+struct is_ifstream;
+
+template<typename T>
+struct is_ofstream;
+
+template<typename T>
+struct is_fstream;
+
+template<typename T>
+struct is_filebuf;
+
+template<typename T>
 struct is_std_io;
 
 template<typename T>
+struct is_std_file_device;
+
+template<typename T>
+struct is_std_string_device;
+
+template<typename T>
 struct char_type_of;
 
 template<typename T>
@@ -62,8 +87,23 @@
 namespace detail {
 
 template<typename T>
+struct is_boost_stream;
+
+template<typename T>
+struct is_boost_stream_buffer;
+
+template<typename T>
+struct is_filtering_stream;
+
+template<typename T>
+struct is_filtering_streambuf;
+
+template<typename T>
 struct is_linked;
 
+template<typename T>
+struct is_boost;
+
 } // End namespace detail.
 
 } } // End namespaces iostreams, boost.

Modified: branches/proto/v3/boost/iostreams/write.hpp
==============================================================================
--- branches/proto/v3/boost/iostreams/write.hpp (original)
+++ branches/proto/v3/boost/iostreams/write.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/boost/math/distributions/binomial.hpp
==============================================================================
--- branches/proto/v3/boost/math/distributions/binomial.hpp (original)
+++ branches/proto/v3/boost/math/distributions/binomial.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -25,7 +25,7 @@
 // The number of light bulbs that burn out in a certain amount of time.
 // The number of roadkill found per unit length of road
 
-// http:/en.wikipedia.org/wiki/binomial_distribution
+// http://en.wikipedia.org/wiki/binomial_distribution
 
 // Given a sample of N measured values k[i],
 // we wish to estimate the value of the parameter x (mean)

Modified: branches/proto/v3/boost/math/tools/test_data.hpp
==============================================================================
--- branches/proto/v3/boost/math/tools/test_data.hpp (original)
+++ branches/proto/v3/boost/math/tools/test_data.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,6 +27,7 @@
 
 #include <set>
 #include <vector>
+#include <iostream>
 
 #ifdef BOOST_MSVC
 # pragma warning(push)

Modified: branches/proto/v3/boost/mpi/config.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/config.hpp (original)
+++ branches/proto/v3/boost/mpi/config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,6 +20,11 @@
 #include <mpi.h>
 #include <boost/config.hpp>
 
+/** @brief Define this macro to avoid expensice MPI_Pack/Unpack calls on
+ * homogeneous machines.
+*/
+//#define BOOST_MPI_HOMOGENEOUS
+
 // If this is an MPI-2 implementation, define configuration macros for
 // the features we are interested in.
 #if defined(MPI_VERSION) && MPI_VERSION == 2

Modified: branches/proto/v3/boost/mpi/datatype.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/datatype.hpp (original)
+++ branches/proto/v3/boost/mpi/datatype.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -23,6 +23,7 @@
 #include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/or.hpp>
+#include <boost/mpl/and.hpp>
 #include <boost/mpi/detail/mpi_datatype_cache.hpp>
 #include <boost/mpl/assert.hpp>
 #include <utility> // for std::pair
@@ -199,6 +200,9 @@
 {}
 
 /// INTERNAL ONLY
+BOOST_MPI_DATATYPE(packed, MPI_PACKED, builtin);
+
+/// INTERNAL ONLY
 BOOST_MPI_DATATYPE(char, MPI_CHAR, builtin);
 
 /// INTERNAL ONLY
@@ -252,6 +256,14 @@
 BOOST_MPI_DATATYPE(std::pair<BOOST_MPI_LIST2(int, int>), MPI_2INT, builtin);
 #undef BOOST_MPI_LIST2
 
+/// specialization of is_mpi_datatype for pairs
+template <class T, class U>
+struct is_mpi_datatype<std::pair<T,U> >
+ : public mpl::and_<is_mpi_datatype<T>,is_mpi_datatype<U> >
+{
+};
+
+
 #if 0
 #ifndef BOOST_NO_INTRINSIC_WCHAR_T
 BOOST_MPI_DATATYPE(wchar_t, MPI_WCHAR, builtin);
@@ -265,6 +277,11 @@
 
 #endif // Doxygen
 
+#if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN)
+BOOST_MPI_DATATYPE(__int64, MPI_LONG_LONG_INT, builtin);
+BOOST_MPI_DATATYPE(unsigned __int64, MPI_UNSIGNED_LONG_LONG, builtin);
+#endif
+
 namespace detail {
   inline MPI_Datatype build_mpi_datatype_for_bool()
   {
@@ -290,11 +307,16 @@
   : boost::mpl::bool_<true>
 {};
 
-/// INTERNAL ONLY
-template<typename T, typename U>
-struct is_mpi_datatype<std::pair<T, U> >
- : mpl::and_<is_mpi_datatype<T>, is_mpi_datatype<U> > { };
-
 } } // end namespace boost::mpi
 
+// define a macro to make explicit designation of this more transparent
+#define BOOST_IS_MPI_DATATYPE(T) \
+namespace boost { \
+namespace mpi { \
+template<> \
+struct is_mpi_datatype< T > : mpl::true_ {}; \
+}} \
+/**/
+
+
 #endif // BOOST_MPI_MPI_DATATYPE_HPP

Modified: branches/proto/v3/boost/mpi/datatype_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/datatype_fwd.hpp (original)
+++ branches/proto/v3/boost/mpi/datatype_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,6 +27,8 @@
 template<typename T> struct is_mpi_datatype;
 template<typename T> MPI_Datatype get_mpi_datatype(const T& x = T());
 
+/// a dummy data type giving MPI_PACKED as its MPI_Datatype
+struct packed {};
 } } // end namespace boost::mpi
 
 #endif // BOOST_MPI_MPI_DATATYPE_FWD_HPP

Modified: branches/proto/v3/boost/mpi/detail/packed_iprimitive.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/detail/packed_iprimitive.hpp (original)
+++ branches/proto/v3/boost/mpi/detail/packed_iprimitive.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -65,20 +65,19 @@
 
     // fast saving of arrays of fundamental types
     template<class T>
- void load_array(serialization::array<T> & x, unsigned int /* file_version */)
+ void load_array(serialization::array<T> const& x, unsigned int /* file_version */)
     {
       if (x.count())
         load_impl(x.address(), get_mpi_datatype(*x.address()), x.count());
     }
 
- typedef is_mpi_datatype<mpl::_1> use_array_optimization;
+ template<class T>
+ void load(serialization::array<T> const& x)
+ {
+ load_array(x,0u);
+ }
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- friend class archive::load_access;
-protected:
-#else
-public:
-#endif
+ typedef is_mpi_datatype<mpl::_1> use_array_optimization;
 
     // default saving of primitives.
     template<class T>

Modified: branches/proto/v3/boost/mpi/packed_iarchive.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/packed_iarchive.hpp (original)
+++ branches/proto/v3/boost/mpi/packed_iarchive.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -23,10 +23,17 @@
 #include <boost/archive/basic_binary_iarchive.hpp>
 #include <boost/archive/shared_ptr_helper.hpp>
 #include <boost/mpi/detail/packed_iprimitive.hpp>
+#include <boost/mpi/detail/binary_buffer_iprimitive.hpp>
 #include <boost/assert.hpp>
 
 namespace boost { namespace mpi {
 
+#ifdef BOOST_MPI_HOMOGENEOUS
+ typedef binary_buffer_iprimitive iprimitive;
+#else
+ typedef packed_iprimitive iprimitive;
+#endif
+
 /** @brief An archive that packs binary data into an MPI buffer.
  *
  * The @c packed_iarchive class is an Archiver (as in the
@@ -36,7 +43,7 @@
  * implementation to perform serialization.
  */
 class BOOST_MPI_DECL packed_iarchive
- : public packed_iprimitive
+ : public iprimitive
   , public archive::basic_binary_iarchive<packed_iarchive>
   , public archive::detail::shared_ptr_helper
 {
@@ -59,7 +66,7 @@
    * deserialization will begin.
    */
   packed_iarchive(MPI_Comm const & comm, buffer_type & b, unsigned int flags = boost::archive::no_header, int position = 0)
- : packed_iprimitive(b,comm,position),
+ : iprimitive(b,comm,position),
           archive::basic_binary_iarchive<packed_iarchive>(flags)
         {}
 
@@ -70,16 +77,44 @@
    * @param comm The communicator over which this archive will be
    * sent.
    *
+ * @param s The size of the buffer to be received.
+ *
    * @param flags Control the serialization of the data types. Refer
    * to the Boost.Serialization documentation before changing the
    * default flags.
    */
   packed_iarchive
- ( MPI_Comm const & comm , unsigned int flags = boost::archive::no_header)
- : packed_iprimitive(internal_buffer_,comm),
- archive::basic_binary_iarchive<packed_iarchive>(flags)
+ ( MPI_Comm const & comm , std::size_t s=0,
+ unsigned int flags = boost::archive::no_header)
+ : iprimitive(internal_buffer_,comm)
+ , archive::basic_binary_iarchive<packed_iarchive>(flags)
+ , internal_buffer_(s)
         {}
 
+ // Load everything else in the usual way, forwarding on to the Base class
+ template<class T>
+ void load_override(T& x, int version, mpl::false_)
+ {
+ archive::basic_binary_iarchive<packed_iarchive>::load_override(x,version);
+ }
+
+ // Load it directly using the primnivites
+ template<class T>
+ void load_override(T& x, int version, mpl::true_)
+ {
+ iprimitive::load(x);
+ }
+
+ // Load all supported datatypes directly
+ template<class T>
+ void load_override(T& x, int version)
+ {
+ typedef typename mpl::apply1<use_array_optimization
+ , BOOST_DEDUCED_TYPENAME remove_const<T>::type
+ >::type use_optimized;
+ load_override(x, version, use_optimized());
+ }
+
 private:
   /// An internal buffer to be used when the user does not supply his
   /// own buffer.

Modified: branches/proto/v3/boost/mpi/packed_oarchive.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/packed_oarchive.hpp (original)
+++ branches/proto/v3/boost/mpi/packed_oarchive.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -22,9 +22,16 @@
 #include <boost/archive/detail/auto_link_archive.hpp>
 #include <boost/archive/basic_binary_oarchive.hpp>
 #include <boost/mpi/detail/packed_oprimitive.hpp>
+#include <boost/mpi/detail/binary_buffer_oprimitive.hpp>
 
 namespace boost { namespace mpi {
 
+#ifdef BOOST_MPI_HOMOGENEOUS
+ typedef binary_buffer_oprimitive oprimitive;
+#else
+ typedef packed_oprimitive oprimitive;
+#endif
+
 /** @brief An archive that unpacks binary data from an MPI buffer.
  *
  * The @c packed_oarchive class is an Archiver (as in the
@@ -33,8 +40,9 @@
  * type and will use the @c MPI_Unpack function of the underlying MPI
  * implementation to perform deserialization.
  */
+
 class BOOST_MPI_DECL packed_oarchive
- : public packed_oprimitive,
+ : public oprimitive,
     public archive::basic_binary_oarchive<packed_oarchive>
 {
 public:
@@ -53,7 +61,7 @@
    * default flags.
    */
   packed_oarchive( MPI_Comm const & comm, buffer_type & b, unsigned int flags = boost::archive::no_header)
- : packed_oprimitive(b,comm),
+ : oprimitive(b,comm),
            archive::basic_binary_oarchive<packed_oarchive>(flags)
         {}
 
@@ -69,10 +77,31 @@
    * default flags.
    */
   packed_oarchive ( MPI_Comm const & comm, unsigned int flags = boost::archive::no_header)
- : packed_oprimitive(internal_buffer_,comm),
+ : oprimitive(internal_buffer_,comm),
            archive::basic_binary_oarchive<packed_oarchive>(flags)
         {}
 
+ // Save everything else in the usual way, forwarding on to the Base class
+ template<class T>
+ void save_override(T const& x, int version, mpl::false_)
+ {
+ archive::basic_binary_oarchive<packed_oarchive>::save_override(x,version);
+ }
+
+ // Save it directly using the primnivites
+ template<class T>
+ void save_override(T const& x, int version, mpl::true_)
+ {
+ oprimitive::save(x);
+ }
+
+ // Save all supported datatypes directly
+ template<class T>
+ void save_override(T const& x, int version)
+ {
+ typedef typename mpl::apply1<use_array_optimization,T>::type use_optimized;
+ save_override(x, version, use_optimized());
+ }
 
 private:
   /// An internal buffer to be used when the user does not supply his
@@ -86,4 +115,5 @@
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::mpi::packed_oarchive)
 
 
+
 #endif // BOOST_MPI_PACKED_OARCHIVE_HPP

Modified: branches/proto/v3/boost/mpi/status.hpp
==============================================================================
--- branches/proto/v3/boost/mpi/status.hpp (original)
+++ branches/proto/v3/boost/mpi/status.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,6 +34,8 @@
 {
  public:
   status() : m_count(-1) { }
+
+ status(MPI_Status const& s) : m_status(s), m_count(-1) {}
 
   /**
    * Retrieve the source of the message.

Modified: branches/proto/v3/boost/program_options/detail/parsers.hpp
==============================================================================
--- branches/proto/v3/boost/program_options/detail/parsers.hpp (original)
+++ branches/proto/v3/boost/program_options/detail/parsers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -38,7 +38,7 @@
     : detail::cmdline(
         // Explicit template arguments are required by gcc 3.3.1
         // (at least mingw version), and do no harm on other compilers.
- to_internal(detail::make_vector<charT, charT**>(argv+1, argv+argc)))
+ to_internal(detail::make_vector<charT, charT**>(argv+1, argv+argc+!argc)))
     {}
 
     

Modified: branches/proto/v3/boost/range/as_literal.hpp
==============================================================================
--- branches/proto/v3/boost/range/as_literal.hpp (original)
+++ branches/proto/v3/boost/range/as_literal.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,7 +15,7 @@
 # pragma once
 #endif
 
-#if BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 #include <boost/range/detail/as_literal.hpp>
 #else
 
@@ -116,14 +116,14 @@
 
     
     template< class Char, std::size_t sz >
- inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
+ inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
     {
 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
         return boost::make_iterator_range<const Char*>( arr, arr + sz - 1 );
 #else
         return boost::make_iterator_range( arr, arr + sz - 1 );
 #endif
- }
+ }
 }
 
 #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING

Modified: branches/proto/v3/boost/range/detail/implementation_help.hpp
==============================================================================
--- branches/proto/v3/boost/range/detail/implementation_help.hpp (original)
+++ branches/proto/v3/boost/range/detail/implementation_help.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -25,6 +25,8 @@
 {
     namespace range_detail
     {
+ template <typename T>
+ inline void boost_range_silence_warning( const T& ) { }
         
         /////////////////////////////////////////////////////////////////////
         // end() help
@@ -82,12 +84,14 @@
         template< class T, std::size_t sz >
         inline std::size_t array_size( T BOOST_RANGE_ARRAY_REF()[sz] )
         {
+ boost_range_silence_warning( boost_range_array );
             return sz;
         }
 
         template< class T, std::size_t sz >
         inline std::size_t array_size( const T BOOST_RANGE_ARRAY_REF()[sz] )
         {
+ boost_range_silence_warning( boost_range_array );
             return sz;
         }
 

Modified: branches/proto/v3/boost/range/iterator_range.hpp
==============================================================================
--- branches/proto/v3/boost/range/iterator_range.hpp (original)
+++ branches/proto/v3/boost/range/iterator_range.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,8 +11,15 @@
 #ifndef BOOST_RANGE_ITERATOR_RANGE_HPP
 #define BOOST_RANGE_ITERATOR_RANGE_HPP
 
-// From boost/dynamic_bitset.hpp; thanks to Matthias Troyer for Cray X1 patch.
 #include <boost/config.hpp> // Define __STL_CONFIG_H, if appropriate.
+#include <boost/detail/workaround.hpp>
+
+#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+ #pragma warning( push )
+ #pragma warning( disable : 4996 )
+#endif
+
+// From boost/dynamic_bitset.hpp; thanks to Matthias Troyer for Cray X1 patch.
 #ifndef BOOST_OLD_IOSTREAMS
 # if defined(__STL_CONFIG_H) && \
     !defined (__STL_USE_NEW_IOSTREAMS) && !defined(__crayx1) \
@@ -21,12 +28,13 @@
 # endif
 #endif // #ifndef BOOST_OLD_IOSTREAMS
 
-#include <boost/detail/workaround.hpp>
+#include <boost/assert.hpp>
+#include <boost/iterator/iterator_traits.hpp>
+#include <boost/type_traits/is_abstract.hpp>
 #include <boost/range/functions.hpp>
 #include <boost/range/iterator.hpp>
 #include <boost/range/difference_type.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-#include <boost/assert.hpp>
+#include <boost/utility/enable_if.hpp>
 #include <iterator>
 #include <algorithm>
 #ifndef _STLP_NO_IOSTREAMS
@@ -38,10 +46,6 @@
 #endif // _STLP_NO_IOSTREAMS
 #include <cstddef>
 
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) || BOOST_WORKAROUND(BOOST_MSVC, == 1400)
- #pragma warning( disable : 4996 )
-#endif
-
 /*! \file
     Defines the \c iterator_class and related functions.
     \c iterator_range is a simple wrapper of iterator pair idiom. It provides
@@ -163,6 +167,12 @@
             //! iterator type
             typedef IteratorT iterator;
 
+ private: // for return value of operator()()
+ typedef BOOST_DEDUCED_TYPENAME
+ boost::mpl::if_< boost::is_abstract<value_type>,
+ reference, value_type >::type abstract_value_type;
+
+ public:
             iterator_range() : m_Begin( iterator() ), m_End( iterator() )
                 #ifndef NDEBUG
             , singular( true )
@@ -350,8 +360,8 @@
            // When storing transform iterators, operator[]()
            // fails because it returns by reference. Therefore
            // operator()() is provided for these cases.
- //
- value_type operator()( difference_type at ) const
+ //
+ abstract_value_type operator()( difference_type at ) const
            {
                BOOST_ASSERT( at >= 0 && at < size() );
                return m_Begin[at];
@@ -639,5 +649,9 @@
 
 #undef BOOST_OLD_IOSTREAMS
 
+#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+ #pragma warning( pop )
+#endif
+
 #endif
 

Modified: branches/proto/v3/boost/range/sub_range.hpp
==============================================================================
--- branches/proto/v3/boost/range/sub_range.hpp (original)
+++ branches/proto/v3/boost/range/sub_range.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,12 +11,12 @@
 #ifndef BOOST_RANGE_SUB_RANGE_HPP
 #define BOOST_RANGE_SUB_RANGE_HPP
 
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) || BOOST_WORKAROUND(BOOST_MSVC, == 1400)
+#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+ #pragma warning( push )
     #pragma warning( disable : 4996 )
 #endif
 
+#include <boost/detail/workaround.hpp>
 #include <boost/range/config.hpp>
 #include <boost/range/iterator_range.hpp>
 #include <boost/range/value_type.hpp>
@@ -46,7 +46,7 @@
         sub_range() : base()
         { }
         
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) || BOOST_WORKAROUND(BOOST_MSVC, == 1400)
+#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500) )
         sub_range( const sub_range& r )
             : base( static_cast<const base&>( r ) )
         { }
@@ -163,5 +163,9 @@
 
 } // namespace 'boost'
 
+#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+ #pragma warning( pop )
+#endif
+
 #endif
 

Modified: branches/proto/v3/boost/regex/concepts.hpp
==============================================================================
--- branches/proto/v3/boost/regex/concepts.hpp (original)
+++ branches/proto/v3/boost/regex/concepts.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -235,7 +235,7 @@
 struct BaseRegexConcept
 {
    typedef typename Regex::value_type value_type;
- typedef typename Regex::size_type size_type;
+ //typedef typename Regex::size_type size_type;
    typedef typename Regex::flag_type flag_type;
    typedef typename Regex::locale_type locale_type;
    typedef input_iterator_archetype<value_type> input_iterator_type;
@@ -370,7 +370,7 @@
       const Regex ce;
       bool b = ce.empty();
       ignore_unused_variable_warning(b);
- size_type i = ce.mark_count();
+ unsigned i = ce.mark_count();
       ignore_unused_variable_warning(i);
       m_flags = ce.flags();
       e.imbue(ce.getloc());
@@ -533,7 +533,7 @@
 
    pointer_type m_pointer;
    flag_type m_flags;
- size_type m_size;
+ std::size_t m_size;
    input_iterator_type in1, in2;
    const sub_match_type m_sub;
    const value_type m_char;
@@ -557,7 +557,7 @@
 struct RegexConcept
 {
    typedef typename Regex::value_type value_type;
- typedef typename Regex::size_type size_type;
+ //typedef typename Regex::size_type size_type;
    typedef typename Regex::flag_type flag_type;
    typedef typename Regex::locale_type locale_type;
 

Modified: branches/proto/v3/boost/regex/pending/unicode_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/regex/pending/unicode_iterator.hpp (original)
+++ branches/proto/v3/boost/regex/pending/unicode_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -68,6 +68,7 @@
 #include <stdexcept>
 #ifndef BOOST_NO_STD_LOCALE
 #include <sstream>
+#include <ios>
 #endif
 #include <limits.h> // CHAR_BIT
 

Modified: branches/proto/v3/boost/regex/v4/basic_regex_creator.hpp
==============================================================================
--- branches/proto/v3/boost/regex/v4/basic_regex_creator.hpp (original)
+++ branches/proto/v3/boost/regex/v4/basic_regex_creator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1270,6 +1270,19 @@
             state = state->next.p;
             continue;
          }
+ if((static_cast<re_brace*>(state)->index == -1)
+ || (static_cast<re_brace*>(state)->index == -2))
+ {
+ // skip past the zero width assertion:
+ state = static_cast<const re_jump*>(state->next.p)->alt.p->next.p;
+ continue;
+ }
+ if(static_cast<re_brace*>(state)->index == -3)
+ {
+ // Have to skip the leading jump state:
+ state = state->next.p->next.p;
+ continue;
+ }
          return;
       case syntax_element_endmark:
       case syntax_element_start_line:

Modified: branches/proto/v3/boost/regex/v4/basic_regex_parser.hpp
==============================================================================
--- branches/proto/v3/boost/regex/v4/basic_regex_parser.hpp (original)
+++ branches/proto/v3/boost/regex/v4/basic_regex_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -784,6 +784,7 @@
       case syntax_element_restart_continue:
       case syntax_element_jump:
       case syntax_element_startmark:
+ case syntax_element_backstep:
          // can't legally repeat any of the above:
          fail(regex_constants::error_badrepeat, m_position - m_base);
          return false;
@@ -1869,6 +1870,7 @@
    if(markid == -4)
    {
       re_syntax_base* b = this->getaddress(expected_alt_point);
+ // Make sure we have exactly one alternative following this state:
       if(b->type != syntax_element_alt)
       {
          re_alt* alt = static_cast<re_alt*>(this->insert_state(expected_alt_point, syntax_element_alt, sizeof(re_alt)));
@@ -1879,6 +1881,15 @@
          fail(regex_constants::error_bad_pattern, m_position - m_base);
          return false;
       }
+ // check for invalid repetition of next state:
+ b = this->getaddress(expected_alt_point);
+ b = this->getaddress(static_cast<re_alt*>(b)->next.i, b);
+ if((b->type != syntax_element_assert_backref)
+ && (b->type != syntax_element_startmark))
+ {
+ fail(regex_constants::error_badrepeat, m_position - m_base);
+ return false;
+ }
    }
    //
    // append closing parenthesis state:

Modified: branches/proto/v3/boost/regex/v4/perl_matcher_non_recursive.hpp
==============================================================================
--- branches/proto/v3/boost/regex/v4/perl_matcher_non_recursive.hpp (original)
+++ branches/proto/v3/boost/regex/v4/perl_matcher_non_recursive.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1193,6 +1193,9 @@
          pstate = rep->next.p;
       }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
    }
+ // remember where we got to if this is a leading repeat:
+ if((rep->leading) && (count < rep->max))
+ restart = position;
    if(position == last)
    {
       // can't repeat any more, remove the pushed state:
@@ -1259,6 +1262,9 @@
          pstate = rep->next.p;
       }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
    }
+ // remember where we got to if this is a leading repeat:
+ if((rep->leading) && (count < rep->max))
+ restart = position;
    if(position == last)
    {
       // can't repeat any more, remove the pushed state:
@@ -1326,6 +1332,9 @@
          pstate = rep->next.p;
       }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
    }
+ // remember where we got to if this is a leading repeat:
+ if((rep->leading) && (count < rep->max))
+ restart = position;
    if(position == last)
    {
       // can't repeat any more, remove the pushed state:

Modified: branches/proto/v3/boost/scoped_array.hpp
==============================================================================
--- branches/proto/v3/boost/scoped_array.hpp (original)
+++ branches/proto/v3/boost/scoped_array.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -46,6 +46,9 @@
 
     typedef scoped_array<T> this_type;
 
+ void operator==( scoped_array const& ) const;
+ void operator!=( scoped_array const& ) const;
+
 public:
 
     typedef T element_type;

Modified: branches/proto/v3/boost/scoped_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/scoped_ptr.hpp (original)
+++ branches/proto/v3/boost/scoped_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -47,6 +47,9 @@
 
     typedef scoped_ptr<T> this_type;
 
+ void operator==( scoped_ptr const& ) const;
+ void operator!=( scoped_ptr const& ) const;
+
 public:
 
     typedef T element_type;

Modified: branches/proto/v3/boost/serialization/utility.hpp
==============================================================================
--- branches/proto/v3/boost/serialization/utility.hpp (original)
+++ branches/proto/v3/boost/serialization/utility.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -50,9 +50,9 @@
 {
 };
 
-template <class T, class U>
-struct implementation_level<std::pair<T,U> >
- : mpl::int_<object_serializable> {} ;
+//template <class T, class U>
+//struct implementation_level<std::pair<T,U> >
+// : mpl::int_<object_serializable> {} ;
 
 } // serialization
 } // namespace boost

Modified: branches/proto/v3/boost/shared_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/shared_ptr.hpp (original)
+++ branches/proto/v3/boost/shared_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,7 +31,14 @@
 #include <algorithm> // for std::swap
 #include <functional> // for std::less
 #include <typeinfo> // for std::bad_cast
+
+#if !defined(BOOST_NO_IOSTREAM)
+#if !defined(BOOST_NO_IOSFWD)
 #include <iosfwd> // for std::basic_ostream
+#else
+#include <ostream>
+#endif
+#endif
 
 #ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
 # pragma warning(push)
@@ -555,6 +562,8 @@
 
 // operator<<
 
+#if !defined(BOOST_NO_IOSTREAM)
+
 #if defined(__GNUC__) && (__GNUC__ < 3)
 
 template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
@@ -584,6 +593,8 @@
 
 #endif // __GNUC__ < 3
 
+#endif // !defined(BOOST_NO_IOSTREAM)
+
 // get_deleter
 
 #if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \

Modified: branches/proto/v3/boost/spirit/tree/impl/tree_to_xml.ipp
==============================================================================
--- branches/proto/v3/boost/spirit/tree/impl/tree_to_xml.ipp (original)
+++ branches/proto/v3/boost/spirit/tree/impl/tree_to_xml.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 /*=============================================================================
- Copyright (c) 2001-2007 Hartmut Kaiser
+ Copyright (c) 2001-2008 Hartmut Kaiser
     Copyright (c) 2001-2003 Daniel Nuffer
     http://spirit.sourceforge.net/
 

Modified: branches/proto/v3/boost/statechart/detail/counted_base.hpp
==============================================================================
--- branches/proto/v3/boost/statechart/detail/counted_base.hpp (original)
+++ branches/proto/v3/boost/statechart/detail/counted_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -61,7 +61,7 @@
     // do nothing copy implementation is intentional (the number of
     // referencing pointers of the source and the destination is not changed
     // through the copy operation)
- counted_base( const counted_base & ) {}
+ counted_base( const counted_base & ) : base_type() {}
     counted_base & operator=( const counted_base & ) { return *this; }
 
   public:

Modified: branches/proto/v3/boost/statechart/in_state_reaction.hpp
==============================================================================
--- branches/proto/v3/boost/statechart/in_state_reaction.hpp (original)
+++ branches/proto/v3/boost/statechart/in_state_reaction.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,10 +10,7 @@
 
 #include <boost/statechart/result.hpp>
 
-#include <boost/mpl/if.hpp>
-
-#include <boost/cast.hpp> // boost::polymorphic_downcast
-#include <boost/type_traits/is_same.hpp>
+#include <boost/statechart/detail/reaction_dispatcher.hpp>
 
 
 
@@ -28,39 +25,25 @@
 
 //////////////////////////////////////////////////////////////////////////////
 template< class Event,
- class ReactionContext,
- void ( ReactionContext::*pAction )( const Event & ) >
+ class ReactionContext = detail::no_context< Event >,
+ void ( ReactionContext::*pAction )( const Event & ) =
+ &detail::no_context< Event >::no_function >
 class in_state_reaction
 {
   private:
     //////////////////////////////////////////////////////////////////////////
- struct react_base
+ template< class State >
+ struct reactions
     {
- template< class State, class EventBase, class IdType >
- static detail::reaction_result react(
- State & stt, const EventBase & evt, const IdType & )
+ static result react_without_action( State & stt )
       {
- ( stt.template context< ReactionContext >().*pAction )( evt );
- return detail::do_discard_event;
+ return stt.discard_event();
       }
- };
 
- struct react_derived
- {
- template< class State, class EventBase, class IdType >
- static detail::reaction_result react(
- State & stt, const EventBase & evt, const IdType & eventType )
+ static result react_with_action( State & stt, const Event & evt )
       {
- if ( eventType == Event::static_type() )
- {
- ( stt.template context< ReactionContext >().*pAction )(
- *polymorphic_downcast< const Event * >( &evt ) );
- return detail::do_discard_event;
- }
- else
- {
- return detail::no_reaction;
- }
+ ( stt.template context< ReactionContext >().*pAction )( evt );
+ return react_without_action( stt );
       }
     };
 
@@ -73,11 +56,10 @@
     static detail::reaction_result react(
       State & stt, const EventBase & evt, const IdType & eventType )
     {
- typedef typename mpl::if_<
- is_same< Event, event_base >, react_base, react_derived
- >::type impl;
-
- return impl::react( stt, evt, eventType );
+ typedef detail::reaction_dispatcher<
+ reactions< State >, State, EventBase, Event, ReactionContext, IdType
+ > dispatcher;
+ return dispatcher::react( stt, evt, eventType );
     }
 };
 

Modified: branches/proto/v3/boost/statechart/transition.hpp
==============================================================================
--- branches/proto/v3/boost/statechart/transition.hpp (original)
+++ branches/proto/v3/boost/statechart/transition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,9 +30,7 @@
 {
   private:
     //////////////////////////////////////////////////////////////////////////
- template<
- class State, class ActionContext,
- void ( ActionContext::*pAction )( const Event & ), class Destination >
+ template< class State >
     struct reactions
     {
       static result react_without_action( State & stt )
@@ -40,10 +38,9 @@
         return stt.template transit< Destination >();
       }
 
- template< class Event >
       static result react_with_action( State & stt, const Event & evt )
       {
- return stt.template transit< Destination >( pAction, evt );
+ return stt.template transit< Destination >( pTransitionAction, evt );
       }
     };
 
@@ -57,8 +54,8 @@
       State & stt, const EventBase & evt, const IdType & eventType )
     {
       typedef detail::reaction_dispatcher<
- reactions< State, TransitionContext, pTransitionAction, Destination >,
- State, EventBase, Event, TransitionContext, IdType > dispatcher;
+ reactions< State >, State, EventBase, Event, TransitionContext, IdType
+ > dispatcher;
       return dispatcher::react( stt, evt, eventType );
     }
 };

Modified: branches/proto/v3/boost/test/impl/debug.ipp
==============================================================================
--- branches/proto/v3/boost/test/impl/debug.ipp (original)
+++ branches/proto/v3/boost/test/impl/debug.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,6 +32,7 @@
 # include <windows.h>
 # include <winreg.h>
 # include <cstdio>
+# include <cstring>
 
 # if !defined(NDEBUG) && defined(_MSC_VER)
 # define BOOST_MS_CRT_BASED_DEBUG
@@ -966,3 +967,4 @@
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_DEBUG_API_IPP_112006GER
+

Modified: branches/proto/v3/boost/test/impl/execution_monitor.ipp
==============================================================================
--- branches/proto/v3/boost/test/impl/execution_monitor.ipp (original)
+++ branches/proto/v3/boost/test/impl/execution_monitor.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -65,7 +65,7 @@
 
 # include <windows.h>
 
-# if defined(__MWERKS__)
+# if defined(__MWERKS__) || (defined(BOOST_MSVC) && !defined(UNDER_CE))
 # include <eh.h>
 # endif
 
@@ -1149,3 +1149,4 @@
 #include <boost/test/detail/enable_warnings.hpp>
 
 #endif // BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
+

Modified: branches/proto/v3/boost/test/test_tools.hpp
==============================================================================
--- branches/proto/v3/boost/test/test_tools.hpp (original)
+++ branches/proto/v3/boost/test/test_tools.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,6 +44,7 @@
 // STL
 #include <cstddef> // for std::size_t
 #include <iosfwd>
+#include <ios> // for std::boolalpha
 #include <climits> // for CHAR_BIT
 
 #include <boost/test/detail/suppress_warnings.hpp>
@@ -377,6 +378,16 @@
 //____________________________________________________________________________//
 
 template<>
+struct BOOST_TEST_DECL print_log_value<bool> {
+ void operator()( std::ostream& ostr, bool t )
+ {
+ ostr << std::boolalpha << t;
+ }
+};
+
+//____________________________________________________________________________//
+
+template<>
 struct BOOST_TEST_DECL print_log_value<char> {
     void operator()( std::ostream& ostr, char t );
 };

Modified: branches/proto/v3/boost/thread/pthread/thread.hpp
==============================================================================
--- branches/proto/v3/boost/thread/pthread/thread.hpp (original)
+++ branches/proto/v3/boost/thread/pthread/thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,6 +21,7 @@
 #include <boost/thread/detail/move.hpp>
 #include <boost/shared_ptr.hpp>
 #include "thread_data.hpp"
+#include <boost/bind.hpp>
 
 namespace boost
 {
@@ -133,6 +134,12 @@
         explicit thread(detail::thread_data_ptr data);
 
         detail::thread_data_ptr get_thread_info() const;
+
+ template<typename F>
+ static inline detail::thread_data_ptr make_thread_info(F f)
+ {
+ return detail::thread_data_ptr(new thread_data<F>(f));
+ }
         
     public:
         thread();
@@ -140,13 +147,32 @@
 
         template <class F>
         explicit thread(F f):
- thread_info(new thread_data<F>(f))
+ thread_info(make_thread_info(f))
         {
             start_thread();
         }
         template <class F>
         thread(detail::thread_move_t<F> f):
- thread_info(new thread_data<F>(f))
+ thread_info(make_thread_info(f))
+ {
+ start_thread();
+ }
+
+ template <class F,class A1>
+ thread(F f,A1 a1):
+ thread_info(make_thread_info(boost::bind<void>(f,a1)))
+ {
+ start_thread();
+ }
+ template <class F,class A1,class A2>
+ thread(F f,A1 a1,A2 a2):
+ thread_info(make_thread_info(boost::bind<void>(f,a1,a2)))
+ {
+ start_thread();
+ }
+ template <class F,class A1,class A2,class A3>
+ thread(F f,A1 a1,A2 a2,A3 a3):
+ thread_info(make_thread_info(boost::bind<void>(f,a1,a2,a3)))
         {
             start_thread();
         }

Modified: branches/proto/v3/boost/thread/pthread/tss.hpp
==============================================================================
--- branches/proto/v3/boost/thread/pthread/tss.hpp (original)
+++ branches/proto/v3/boost/thread/pthread/tss.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -52,7 +52,7 @@
             
             void operator()(void* data)
             {
- cleanup_function(data);
+ cleanup_function(static_cast<T*>(data));
             }
         };
 

Modified: branches/proto/v3/boost/thread/win32/basic_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/basic_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/thread/win32/basic_recursive_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -56,6 +56,12 @@
                 long const current_thread_id=win32::GetCurrentThreadId();
                 return try_recursive_lock(current_thread_id) || try_timed_lock(current_thread_id,target);
             }
+ template<typename Duration>
+ bool timed_lock(Duration const& timeout)
+ {
+ return timed_lock(get_system_time()+timeout);
+ }
+
             long get_active_count()
             {
                 return mutex.get_active_count();

Modified: branches/proto/v3/boost/thread/win32/basic_timed_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/basic_timed_mutex.hpp (original)
+++ branches/proto/v3/boost/thread/win32/basic_timed_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -104,6 +104,12 @@
                 return true;
             }
 
+ template<typename Duration>
+ bool timed_lock(Duration const& timeout)
+ {
+ return timed_lock(get_system_time()+timeout);
+ }
+
             long get_active_count()
             {
                 return ::boost::detail::interlocked_read_acquire(&active_count);

Modified: branches/proto/v3/boost/thread/win32/once.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/once.hpp (original)
+++ branches/proto/v3/boost/thread/win32/once.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,9 +94,9 @@
             detail::int_to_string(win32::GetCurrentProcessId(), mutex_name + once_mutex_name_fixed_length + sizeof(void*)*2);
 
 #ifdef BOOST_NO_ANSI_APIS
- return win32::CreateMutexW(NULL, 0, mutex_name);
+ return win32::CreateMutexW(0, 0, mutex_name);
 #else
- return win32::CreateMutexA(NULL, 0, mutex_name);
+ return win32::CreateMutexA(0, 0, mutex_name);
 #endif
         }
 

Modified: branches/proto/v3/boost/thread/win32/shared_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/shared_mutex.hpp (original)
+++ branches/proto/v3/boost/thread/win32/shared_mutex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -57,12 +57,12 @@
         {
             if(old_state.exclusive_waiting)
             {
- BOOST_VERIFY(detail::win32::ReleaseSemaphore(exclusive_sem,1,NULL)!=0);
+ BOOST_VERIFY(detail::win32::ReleaseSemaphore(exclusive_sem,1,0)!=0);
             }
                         
             if(old_state.shared_waiting || old_state.exclusive_waiting)
             {
- BOOST_VERIFY(detail::win32::ReleaseSemaphore(unlock_sem,old_state.shared_waiting + (old_state.exclusive_waiting?1:0),NULL)!=0);
+ BOOST_VERIFY(detail::win32::ReleaseSemaphore(unlock_sem,old_state.shared_waiting + (old_state.exclusive_waiting?1:0),0)!=0);
             }
         }
         
@@ -215,7 +215,7 @@
                     {
                         if(old_state.upgrade)
                         {
- BOOST_VERIFY(detail::win32::ReleaseSemaphore(upgrade_sem,1,NULL)!=0);
+ BOOST_VERIFY(detail::win32::ReleaseSemaphore(upgrade_sem,1,0)!=0);
                         }
                         else
                         {

Modified: branches/proto/v3/boost/thread/win32/thread.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/thread.hpp (original)
+++ branches/proto/v3/boost/thread/win32/thread.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,6 +20,7 @@
 #include <algorithm>
 #include <boost/ref.hpp>
 #include <boost/cstdint.hpp>
+#include <boost/bind.hpp>
 
 namespace boost
 {
@@ -189,19 +190,44 @@
         explicit thread(detail::thread_data_ptr data);
 
         detail::thread_data_ptr get_thread_info() const;
+
+ template<typename F>
+ static inline detail::thread_data_ptr make_thread_info(F f)
+ {
+ return detail::heap_new<thread_data<F> >(f);
+ }
     public:
         thread();
         ~thread();
 
         template <class F>
         explicit thread(F f):
- thread_info(detail::heap_new<thread_data<F> >(f))
+ thread_info(make_thread_info(f))
         {
             start_thread();
         }
         template <class F>
         thread(detail::thread_move_t<F> f):
- thread_info(detail::heap_new<thread_data<F> >(f))
+ thread_info(make_thread_info(f))
+ {
+ start_thread();
+ }
+
+ template <class F,class A1>
+ thread(F f,A1 a1):
+ thread_info(make_thread_info(boost::bind<void>(f,a1)))
+ {
+ start_thread();
+ }
+ template <class F,class A1,class A2>
+ thread(F f,A1 a1,A2 a2):
+ thread_info(make_thread_info(boost::bind<void>(f,a1,a2)))
+ {
+ start_thread();
+ }
+ template <class F,class A1,class A2,class A3>
+ thread(F f,A1 a1,A2 a2,A3 a3):
+ thread_info(make_thread_info(boost::bind<void>(f,a1,a2,a3)))
         {
             start_thread();
         }

Modified: branches/proto/v3/boost/thread/win32/thread_primitives.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/thread_primitives.hpp (original)
+++ branches/proto/v3/boost/thread/win32/thread_primitives.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -181,9 +181,9 @@
             inline handle create_anonymous_semaphore(long initial_count,long max_count)
             {
 #if !defined(BOOST_NO_ANSI_APIS)
- handle const res=CreateSemaphoreA(NULL,initial_count,max_count,NULL);
+ handle const res=CreateSemaphoreA(0,initial_count,max_count,0);
 #else
- handle const res=CreateSemaphoreW(NULL,initial_count,max_count,NULL);
+ handle const res=CreateSemaphoreW(0,initial_count,max_count,0);
 #endif
                 if(!res)
                 {

Modified: branches/proto/v3/boost/thread/win32/tss.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/tss.hpp (original)
+++ branches/proto/v3/boost/thread/win32/tss.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -51,7 +51,7 @@
             
             void operator()(void* data)
             {
- cleanup_function(data);
+ cleanup_function(static_cast<T*>(data));
             }
         };
 

Modified: branches/proto/v3/boost/tr1/detail/config.hpp
==============================================================================
--- branches/proto/v3/boost/tr1/detail/config.hpp (original)
+++ branches/proto/v3/boost/tr1/detail/config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -112,13 +112,34 @@
 #if defined(_MSC_VER) && (_MSC_VER >= 1500) \
    && defined(_MSC_FULL_VER) && \
    !defined(__SGI_STL_PORT) && \
- !defined(_STLPORT_VERSION)
+ !defined(_STLPORT_VERSION) && \
+ !defined(_RWSTD_VER_STR) && \
+ !defined(_RWSTD_VER)
 //
 // MSVC-9.0 defines a not-quite TR1 conforming hash
 // function object in <functional>, so we must define
-// this here:
+// this here, in addition the feature pack for VC9
+// provides a more or less full TR1 implementation:
 //
+#if defined(_HAS_TR1) && (_HAS_TR1 + 0)
+# define BOOST_HAS_TR1_ARRAY
+# define BOOST_HAS_TR1_REFERENCE_WRAPPER
+# define BOOST_HAS_TR1_RESULT_OF
+# define BOOST_HAS_TR1_MEM_FN
+# define BOOST_HAS_TR1_BIND
+# define BOOST_HAS_TR1_FUNCTION
 # define BOOST_HAS_TR1_HASH
+# define BOOST_HAS_TR1_SHARED_PTR
+# define BOOST_HAS_TR1_RANDOM
+# define BOOST_HAS_TR1_REGEX
+# define BOOST_HAS_TR1_TUPLE
+# define BOOST_HAS_TR1_TYPE_TRAITS
+# define BOOST_HAS_TR1_UTILITY
+# define BOOST_HAS_TR1_UNORDERED_MAP
+# define BOOST_HAS_TR1_UNORDERED_SET
+#else
+# define BOOST_HAS_TR1_HASH
+#endif
 #endif
 
 #include <boost/config.hpp>

Modified: branches/proto/v3/boost/type_traits/make_signed.hpp
==============================================================================
--- branches/proto/v3/boost/type_traits/make_signed.hpp (original)
+++ branches/proto/v3/boost/type_traits/make_signed.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -72,7 +72,7 @@
                      is_same<t_no_cv, unsigned long>,
                      long,
 #if defined(BOOST_HAS_LONG_LONG)
- long long
+ boost::long_long_type
 #elif defined(BOOST_HAS_MS_INT64)
                      __int64
 #else
@@ -96,7 +96,7 @@
                      sizeof(t_no_cv) == sizeof(unsigned long),
                      long,
 #if defined(BOOST_HAS_LONG_LONG)
- long long
+ boost::long_long_type
 #elif defined(BOOST_HAS_MS_INT64)
                      __int64
 #else

Modified: branches/proto/v3/boost/type_traits/make_unsigned.hpp
==============================================================================
--- branches/proto/v3/boost/type_traits/make_unsigned.hpp (original)
+++ branches/proto/v3/boost/type_traits/make_unsigned.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -72,7 +72,7 @@
                      is_same<t_no_cv, long>,
                      unsigned long,
 #if defined(BOOST_HAS_LONG_LONG)
- unsigned long long
+ boost::ulong_long_type
 #elif defined(BOOST_HAS_MS_INT64)
                      unsigned __int64
 #else
@@ -96,7 +96,7 @@
                      sizeof(t_no_cv) == sizeof(unsigned long),
                      unsigned long,
 #if defined(BOOST_HAS_LONG_LONG)
- unsigned long long
+ boost::ulong_long_type
 #elif defined(BOOST_HAS_MS_INT64)
                      unsigned __int64
 #else

Modified: branches/proto/v3/boost/utility/value_init.hpp
==============================================================================
--- branches/proto/v3/boost/utility/value_init.hpp (original)
+++ branches/proto/v3/boost/utility/value_init.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,34 +1,24 @@
-// (C) Copyright 2002-2007, Fernando Luis Cacciola Carballal.
+// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal.
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 //
 // 21 Ago 2002 (Created) Fernando Cacciola
-// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker
+// 18 Feb 2008 (Worked around compiler bugs, added initialized_value) Fernando Cacciola, Niels Dekker
 //
 #ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
 #define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
 
 // Note: The implementation of boost::value_initialized had to deal with the
-// fact that various compilers haven't fully implemented value-initialization:
-// Microsoft Feedback ID 100744 - Value-initialization in new-expression
-// Reported by Pavel Kuznetsov (MetaCommunications Engineering), 2005-07-28
-// https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=100744
-// GCC Bug 30111 - Value-initialization of POD base class doesn't initialize members
-// Reported by Jonathan Wakely, 2006-12-07
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111
-// GCC Bug 33916 - Default constructor fails to initialize array members
-// Reported by Michael Elizabeth Chastain, 2007-10-26
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916
-// Borland Report 51854 - Value-initialization: POD struct should be zero-initialized
-// Reported by Niels Dekker (LKEB, Leiden University Medical Center), 2007-11-09
-// http://qc.codegear.com/wc/qcmain.aspx?d=51854
-// The constructor of boost::value_initialized<T> works around these issues, by
-// clearing the bytes of T, before constructing the T object it contains.
+// fact that various compilers haven't fully implemented value-initialization.
+// The constructor of boost::value_initialized<T> works around these compiler
+// issues, by clearing the bytes of T, before constructing the T object it
+// contains. More details on these issues are at libs/utility/value_init.htm
 
 #include <boost/aligned_storage.hpp>
 #include <boost/detail/workaround.hpp>
+#include <boost/static_assert.hpp>
 #include <boost/type_traits/cv_traits.hpp>
 #include <boost/type_traits/alignment_of.hpp>
 #include <cstring>
@@ -48,23 +38,32 @@
       remove_const<T>::type data;
     };
 
- mutable aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value> x;
+ mutable
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
+ typename
+#endif
+ aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x;
+
+ wrapper * wrapper_address() const
+ {
+ return static_cast<wrapper *>( static_cast<void*>(&x));
+ }
 
   public :
 
     value_initialized()
     {
- std::memset(x.address(), 0, sizeof(x));
+ std::memset(&x, 0, sizeof(x));
 #ifdef BOOST_MSVC
 #pragma warning(push)
 #if _MSC_VER >= 1310
 // When using MSVC 7.1 or higher, the following placement new expression may trigger warning C4345:
 // "behavior change: an object of POD type constructed with an initializer of the form ()
-// will be default-initialized". There is no need to worry about this, though.
+// will be default-initialized". It is safe to ignore this warning when using value_initialized.
 #pragma warning(disable: 4345)
 #endif
 #endif
- new (x.address()) wrapper();
+ new (wrapper_address()) wrapper();
 #ifdef BOOST_MSVC
 #pragma warning(pop)
 #endif
@@ -72,25 +71,25 @@
 
     value_initialized(value_initialized const & arg)
     {
- new (x.address()) wrapper( *static_cast<wrapper const *>(arg.x.address()) );
+ new (wrapper_address()) wrapper( static_cast<wrapper const &>(*(arg.wrapper_address())));
     }
 
     value_initialized & operator=(value_initialized const & arg)
     {
- T & this_data = this->data();
- T const & arg_data = arg.data();
- this_data = arg_data;
+ // Assignment is only allowed when T is non-const.
+ BOOST_STATIC_ASSERT( ! is_const<T>::value );
+ *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address()));
       return *this;
     }
 
     ~value_initialized()
     {
- static_cast<wrapper *>(x.address())->wrapper::~wrapper();
+ wrapper_address()->wrapper::~wrapper();
     }
 
     T& data() const
     {
- return static_cast<wrapper *>(x.address())->data;
+ return wrapper_address()->data;
     }
 
     operator T&() const { return this->data(); }
@@ -110,6 +109,18 @@
   return x.data() ;
 }
 
+
+class initialized_value
+{
+ public :
+
+ template <class T> operator T() const
+ {
+ return get( value_initialized<T>() );
+ }
+};
+
+
 } // namespace boost
 
 

Modified: branches/proto/v3/boost/wave.hpp
==============================================================================
--- branches/proto/v3/boost/wave.hpp (original)
+++ branches/proto/v3/boost/wave.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
     See http://www.boost.org/libs/wave for documentation
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpp_context.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpp_context.hpp (original)
+++ branches/proto/v3/boost/wave/cpp_context.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -50,7 +50,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 //
-// The C preprocessor context template class
+// The C/C++ preprocessor context template class
 //
 // The boost::wave::context template is the main interface class to
 // control the behavior of the preprocessing engine.

Modified: branches/proto/v3/boost/wave/cpp_exceptions.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpp_exceptions.hpp (original)
+++ branches/proto/v3/boost/wave/cpp_exceptions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpp_iteration_context.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpp_iteration_context.hpp (original)
+++ branches/proto/v3/boost/wave/cpp_iteration_context.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpp_throw.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpp_throw.hpp (original)
+++ branches/proto/v3/boost/wave/cpp_throw.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/convert_trigraphs.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/convert_trigraphs.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/convert_trigraphs.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/cpp_lex_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/cpp_lex_iterator.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/cpp_lex_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/cpp_lex_token.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/cpp_lex_token.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/cpp_lex_token.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/cpplexer_exceptions.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/cpplexer_exceptions.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/cpplexer_exceptions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/detect_include_guards.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/detect_include_guards.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/detect_include_guards.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -22,7 +22,7 @@
     will work as well). The code allows for any whitespace, newline and single
     '#' tokens before the #if/#ifndef and after the final #endif.
     
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/re2clex/aq.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/re2clex/aq.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/re2clex/aq.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     http://www.boost.org/
     
     Copyright (c) 2001 Daniel C. Nuffer.
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/re2clex/scanner.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/re2clex/scanner.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/re2clex/scanner.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     http://www.boost.org/
     
     Copyright (c) 2001 Daniel C. Nuffer.
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/token_cache.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/token_cache.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/token_cache.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/cpplexer/validate_universal_char.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/validate_universal_char.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/validate_universal_char.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -161,7 +161,9 @@
         definition(chlit_grammar const &self)
         {
             using namespace boost::spirit;
- using namespace phoenix;
+ using phoenix::var;
+ using phoenix::val;
+ using phoenix::arg1;
             
             // special parsers for '\x..' and L'\x....'
             typedef uint_parser<

Modified: branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_defined_grammar_gen.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_defined_grammar_gen.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_defined_grammar_gen.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_expression_grammar_gen.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_expression_grammar_gen.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_expression_grammar_gen.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_grammar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_grammar_gen.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_grammar_gen.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_grammar_gen.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -90,11 +90,13 @@
         definition(intlit_grammar const &self)
         {
             using namespace boost::spirit;
- using namespace phoenix;
+ using phoenix::var;
+ using phoenix::arg1;
+
             
             int_lit = (
                     sub_int_lit =
- ( ch_p('0')[self.val = 0] >> (hex_lit | oct_lit)
+ ( ch_p('0')[self.val = 0] >> (hex_lit | oct_lit)
                         | dec_lit
                         )
>> !as_lower_d[

Modified: branches/proto/v3/boost/wave/grammars/cpp_literal_grammar_gen.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_literal_grammar_gen.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_literal_grammar_gen.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_predef_macros_gen.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_predef_macros_gen.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_predef_macros_gen.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_predef_macros_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_predef_macros_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_predef_macros_grammar.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/grammars/cpp_value_error.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_value_error.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_value_error.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/language_support.hpp
==============================================================================
--- branches/proto/v3/boost/wave/language_support.hpp (original)
+++ branches/proto/v3/boost/wave/language_support.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/preprocessing_hooks.hpp
==============================================================================
--- branches/proto/v3/boost/wave/preprocessing_hooks.hpp (original)
+++ branches/proto/v3/boost/wave/preprocessing_hooks.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/token_ids.hpp
==============================================================================
--- branches/proto/v3/boost/wave/token_ids.hpp (original)
+++ branches/proto/v3/boost/wave/token_ids.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -167,125 +167,124 @@
     T_CONSTCAST = TOKEN_FROM_ID(316, KeywordTokenType),
     T_CONTINUE = TOKEN_FROM_ID(317, KeywordTokenType),
     T_DEFAULT = TOKEN_FROM_ID(318, KeywordTokenType),
- T_DEFINED = TOKEN_FROM_ID(319, KeywordTokenType),
- T_DELETE = TOKEN_FROM_ID(320, KeywordTokenType),
- T_DO = TOKEN_FROM_ID(321, KeywordTokenType),
- T_DOUBLE = TOKEN_FROM_ID(322, KeywordTokenType),
- T_DYNAMICCAST = TOKEN_FROM_ID(323, KeywordTokenType),
- T_ELSE = TOKEN_FROM_ID(324, KeywordTokenType),
- T_ENUM = TOKEN_FROM_ID(325, KeywordTokenType),
- T_EXPLICIT = TOKEN_FROM_ID(326, KeywordTokenType),
- T_EXPORT = TOKEN_FROM_ID(327, KeywordTokenType),
- T_EXTERN = TOKEN_FROM_ID(328, KeywordTokenType),
- T_FLOAT = TOKEN_FROM_ID(329, KeywordTokenType),
- T_FOR = TOKEN_FROM_ID(330, KeywordTokenType),
- T_FRIEND = TOKEN_FROM_ID(331, KeywordTokenType),
- T_GOTO = TOKEN_FROM_ID(332, KeywordTokenType),
- T_IF = TOKEN_FROM_ID(333, KeywordTokenType),
- T_INLINE = TOKEN_FROM_ID(334, KeywordTokenType),
- T_INT = TOKEN_FROM_ID(335, KeywordTokenType),
- T_LONG = TOKEN_FROM_ID(336, KeywordTokenType),
- T_MUTABLE = TOKEN_FROM_ID(337, KeywordTokenType),
- T_NAMESPACE = TOKEN_FROM_ID(338, KeywordTokenType),
- T_NEW = TOKEN_FROM_ID(339, KeywordTokenType),
- T_OPERATOR = TOKEN_FROM_ID(340, KeywordTokenType),
- T_PRIVATE = TOKEN_FROM_ID(341, KeywordTokenType),
- T_PROTECTED = TOKEN_FROM_ID(342, KeywordTokenType),
- T_PUBLIC = TOKEN_FROM_ID(343, KeywordTokenType),
- T_REGISTER = TOKEN_FROM_ID(344, KeywordTokenType),
- T_REINTERPRETCAST = TOKEN_FROM_ID(345, KeywordTokenType),
- T_RETURN = TOKEN_FROM_ID(346, KeywordTokenType),
- T_SHORT = TOKEN_FROM_ID(347, KeywordTokenType),
- T_SIGNED = TOKEN_FROM_ID(348, KeywordTokenType),
- T_SIZEOF = TOKEN_FROM_ID(349, KeywordTokenType),
- T_STATIC = TOKEN_FROM_ID(350, KeywordTokenType),
- T_STATICCAST = TOKEN_FROM_ID(351, KeywordTokenType),
- T_STRUCT = TOKEN_FROM_ID(352, KeywordTokenType),
- T_SWITCH = TOKEN_FROM_ID(353, KeywordTokenType),
- T_TEMPLATE = TOKEN_FROM_ID(354, KeywordTokenType),
- T_THIS = TOKEN_FROM_ID(355, KeywordTokenType),
- T_THROW = TOKEN_FROM_ID(356, KeywordTokenType),
- T_TRY = TOKEN_FROM_ID(357, KeywordTokenType),
- T_TYPEDEF = TOKEN_FROM_ID(358, KeywordTokenType),
- T_TYPEID = TOKEN_FROM_ID(359, KeywordTokenType),
- T_TYPENAME = TOKEN_FROM_ID(360, KeywordTokenType),
- T_UNION = TOKEN_FROM_ID(361, KeywordTokenType),
- T_UNSIGNED = TOKEN_FROM_ID(362, KeywordTokenType),
- T_USING = TOKEN_FROM_ID(363, KeywordTokenType),
- T_VIRTUAL = TOKEN_FROM_ID(364, KeywordTokenType),
- T_VOID = TOKEN_FROM_ID(365, KeywordTokenType),
- T_VOLATILE = TOKEN_FROM_ID(366, KeywordTokenType),
- T_WCHART = TOKEN_FROM_ID(367, KeywordTokenType),
- T_WHILE = TOKEN_FROM_ID(368, KeywordTokenType),
- T_PP_DEFINE = TOKEN_FROM_ID(369, PPTokenType),
- T_PP_IF = TOKEN_FROM_ID(370, PPConditionalTokenType),
- T_PP_IFDEF = TOKEN_FROM_ID(371, PPConditionalTokenType),
- T_PP_IFNDEF = TOKEN_FROM_ID(372, PPConditionalTokenType),
- T_PP_ELSE = TOKEN_FROM_ID(373, PPConditionalTokenType),
- T_PP_ELIF = TOKEN_FROM_ID(374, PPConditionalTokenType),
- T_PP_ENDIF = TOKEN_FROM_ID(375, PPConditionalTokenType),
- T_PP_ERROR = TOKEN_FROM_ID(376, PPTokenType),
- T_PP_LINE = TOKEN_FROM_ID(377, PPTokenType),
- T_PP_PRAGMA = TOKEN_FROM_ID(378, PPTokenType),
- T_PP_UNDEF = TOKEN_FROM_ID(379, PPTokenType),
- T_PP_WARNING = TOKEN_FROM_ID(380, PPTokenType),
- T_IDENTIFIER = TOKEN_FROM_ID(381, IdentifierTokenType),
- T_OCTALINT = TOKEN_FROM_ID(382, IntegerLiteralTokenType),
- T_DECIMALINT = TOKEN_FROM_ID(383, IntegerLiteralTokenType),
- T_HEXAINT = TOKEN_FROM_ID(384, IntegerLiteralTokenType),
- T_INTLIT = TOKEN_FROM_ID(385, IntegerLiteralTokenType),
- T_LONGINTLIT = TOKEN_FROM_ID(386, IntegerLiteralTokenType),
- T_FLOATLIT = TOKEN_FROM_ID(387, FloatingLiteralTokenType),
- T_FIXEDPOINTLIT = TOKEN_FROM_ID(387, FloatingLiteralTokenType|AltTokenType), // IDL specific
- T_CCOMMENT = TOKEN_FROM_ID(388, WhiteSpaceTokenType|AltTokenType),
- T_CPPCOMMENT = TOKEN_FROM_ID(389, WhiteSpaceTokenType|AltTokenType),
- T_CHARLIT = TOKEN_FROM_ID(390, CharacterLiteralTokenType),
- T_STRINGLIT = TOKEN_FROM_ID(391, StringLiteralTokenType),
- T_CONTLINE = TOKEN_FROM_ID(392, EOLTokenType),
- T_SPACE = TOKEN_FROM_ID(393, WhiteSpaceTokenType),
- T_SPACE2 = TOKEN_FROM_ID(394, WhiteSpaceTokenType),
- T_NEWLINE = TOKEN_FROM_ID(395, EOLTokenType),
- T_GENERATEDNEWLINE = TOKEN_FROM_ID(395, EOLTokenType|AltTokenType),
- T_POUND_POUND = TOKEN_FROM_ID(396, OperatorTokenType),
- T_POUND_POUND_ALT = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType),
- T_POUND_POUND_TRIGRAPH = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType),
- T_POUND = TOKEN_FROM_ID(397, OperatorTokenType),
- T_POUND_ALT = TOKEN_FROM_ID(397, OperatorTokenType|AltTokenType),
- T_POUND_TRIGRAPH = TOKEN_FROM_ID(397, OperatorTokenType|TriGraphTokenType),
- T_ANY = TOKEN_FROM_ID(398, UnknownTokenType),
- T_ANY_TRIGRAPH = TOKEN_FROM_ID(398, UnknownTokenType|TriGraphTokenType),
- T_PP_INCLUDE = TOKEN_FROM_ID(399, PPTokenType),
- T_PP_QHEADER = TOKEN_FROM_ID(400, PPTokenType),
- T_PP_HHEADER = TOKEN_FROM_ID(401, PPTokenType),
- T_PP_INCLUDE_NEXT = TOKEN_FROM_ID(399, PPTokenType|AltTokenType),
- T_PP_QHEADER_NEXT = TOKEN_FROM_ID(400, PPTokenType|AltTokenType),
- T_PP_HHEADER_NEXT = TOKEN_FROM_ID(401, PPTokenType|AltTokenType),
- T_EOF = TOKEN_FROM_ID(402, EOFTokenType), // end of file reached
- T_EOI = TOKEN_FROM_ID(403, EOFTokenType), // end of input reached
- T_PP_NUMBER = TOKEN_FROM_ID(404, InternalTokenType),
+ T_DELETE = TOKEN_FROM_ID(319, KeywordTokenType),
+ T_DO = TOKEN_FROM_ID(320, KeywordTokenType),
+ T_DOUBLE = TOKEN_FROM_ID(321, KeywordTokenType),
+ T_DYNAMICCAST = TOKEN_FROM_ID(322, KeywordTokenType),
+ T_ELSE = TOKEN_FROM_ID(323, KeywordTokenType),
+ T_ENUM = TOKEN_FROM_ID(324, KeywordTokenType),
+ T_EXPLICIT = TOKEN_FROM_ID(325, KeywordTokenType),
+ T_EXPORT = TOKEN_FROM_ID(326, KeywordTokenType),
+ T_EXTERN = TOKEN_FROM_ID(327, KeywordTokenType),
+ T_FLOAT = TOKEN_FROM_ID(328, KeywordTokenType),
+ T_FOR = TOKEN_FROM_ID(329, KeywordTokenType),
+ T_FRIEND = TOKEN_FROM_ID(330, KeywordTokenType),
+ T_GOTO = TOKEN_FROM_ID(331, KeywordTokenType),
+ T_IF = TOKEN_FROM_ID(332, KeywordTokenType),
+ T_INLINE = TOKEN_FROM_ID(333, KeywordTokenType),
+ T_INT = TOKEN_FROM_ID(334, KeywordTokenType),
+ T_LONG = TOKEN_FROM_ID(335, KeywordTokenType),
+ T_MUTABLE = TOKEN_FROM_ID(336, KeywordTokenType),
+ T_NAMESPACE = TOKEN_FROM_ID(337, KeywordTokenType),
+ T_NEW = TOKEN_FROM_ID(338, KeywordTokenType),
+ T_OPERATOR = TOKEN_FROM_ID(339, KeywordTokenType),
+ T_PRIVATE = TOKEN_FROM_ID(340, KeywordTokenType),
+ T_PROTECTED = TOKEN_FROM_ID(341, KeywordTokenType),
+ T_PUBLIC = TOKEN_FROM_ID(342, KeywordTokenType),
+ T_REGISTER = TOKEN_FROM_ID(343, KeywordTokenType),
+ T_REINTERPRETCAST = TOKEN_FROM_ID(344, KeywordTokenType),
+ T_RETURN = TOKEN_FROM_ID(345, KeywordTokenType),
+ T_SHORT = TOKEN_FROM_ID(346, KeywordTokenType),
+ T_SIGNED = TOKEN_FROM_ID(347, KeywordTokenType),
+ T_SIZEOF = TOKEN_FROM_ID(348, KeywordTokenType),
+ T_STATIC = TOKEN_FROM_ID(349, KeywordTokenType),
+ T_STATICCAST = TOKEN_FROM_ID(350, KeywordTokenType),
+ T_STRUCT = TOKEN_FROM_ID(351, KeywordTokenType),
+ T_SWITCH = TOKEN_FROM_ID(352, KeywordTokenType),
+ T_TEMPLATE = TOKEN_FROM_ID(353, KeywordTokenType),
+ T_THIS = TOKEN_FROM_ID(354, KeywordTokenType),
+ T_THROW = TOKEN_FROM_ID(355, KeywordTokenType),
+ T_TRY = TOKEN_FROM_ID(356, KeywordTokenType),
+ T_TYPEDEF = TOKEN_FROM_ID(357, KeywordTokenType),
+ T_TYPEID = TOKEN_FROM_ID(358, KeywordTokenType),
+ T_TYPENAME = TOKEN_FROM_ID(359, KeywordTokenType),
+ T_UNION = TOKEN_FROM_ID(360, KeywordTokenType),
+ T_UNSIGNED = TOKEN_FROM_ID(361, KeywordTokenType),
+ T_USING = TOKEN_FROM_ID(362, KeywordTokenType),
+ T_VIRTUAL = TOKEN_FROM_ID(363, KeywordTokenType),
+ T_VOID = TOKEN_FROM_ID(364, KeywordTokenType),
+ T_VOLATILE = TOKEN_FROM_ID(365, KeywordTokenType),
+ T_WCHART = TOKEN_FROM_ID(366, KeywordTokenType),
+ T_WHILE = TOKEN_FROM_ID(367, KeywordTokenType),
+ T_PP_DEFINE = TOKEN_FROM_ID(368, PPTokenType),
+ T_PP_IF = TOKEN_FROM_ID(369, PPConditionalTokenType),
+ T_PP_IFDEF = TOKEN_FROM_ID(370, PPConditionalTokenType),
+ T_PP_IFNDEF = TOKEN_FROM_ID(371, PPConditionalTokenType),
+ T_PP_ELSE = TOKEN_FROM_ID(372, PPConditionalTokenType),
+ T_PP_ELIF = TOKEN_FROM_ID(373, PPConditionalTokenType),
+ T_PP_ENDIF = TOKEN_FROM_ID(374, PPConditionalTokenType),
+ T_PP_ERROR = TOKEN_FROM_ID(375, PPTokenType),
+ T_PP_LINE = TOKEN_FROM_ID(376, PPTokenType),
+ T_PP_PRAGMA = TOKEN_FROM_ID(377, PPTokenType),
+ T_PP_UNDEF = TOKEN_FROM_ID(378, PPTokenType),
+ T_PP_WARNING = TOKEN_FROM_ID(379, PPTokenType),
+ T_IDENTIFIER = TOKEN_FROM_ID(380, IdentifierTokenType),
+ T_OCTALINT = TOKEN_FROM_ID(381, IntegerLiteralTokenType),
+ T_DECIMALINT = TOKEN_FROM_ID(382, IntegerLiteralTokenType),
+ T_HEXAINT = TOKEN_FROM_ID(383, IntegerLiteralTokenType),
+ T_INTLIT = TOKEN_FROM_ID(384, IntegerLiteralTokenType),
+ T_LONGINTLIT = TOKEN_FROM_ID(385, IntegerLiteralTokenType),
+ T_FLOATLIT = TOKEN_FROM_ID(386, FloatingLiteralTokenType),
+ T_FIXEDPOINTLIT = TOKEN_FROM_ID(386, FloatingLiteralTokenType|AltTokenType), // IDL specific
+ T_CCOMMENT = TOKEN_FROM_ID(387, WhiteSpaceTokenType|AltTokenType),
+ T_CPPCOMMENT = TOKEN_FROM_ID(388, WhiteSpaceTokenType|AltTokenType),
+ T_CHARLIT = TOKEN_FROM_ID(389, CharacterLiteralTokenType),
+ T_STRINGLIT = TOKEN_FROM_ID(390, StringLiteralTokenType),
+ T_CONTLINE = TOKEN_FROM_ID(391, EOLTokenType),
+ T_SPACE = TOKEN_FROM_ID(392, WhiteSpaceTokenType),
+ T_SPACE2 = TOKEN_FROM_ID(393, WhiteSpaceTokenType),
+ T_NEWLINE = TOKEN_FROM_ID(394, EOLTokenType),
+ T_GENERATEDNEWLINE = TOKEN_FROM_ID(394, EOLTokenType|AltTokenType),
+ T_POUND_POUND = TOKEN_FROM_ID(395, OperatorTokenType),
+ T_POUND_POUND_ALT = TOKEN_FROM_ID(395, OperatorTokenType|AltTokenType),
+ T_POUND_POUND_TRIGRAPH = TOKEN_FROM_ID(395, OperatorTokenType|TriGraphTokenType),
+ T_POUND = TOKEN_FROM_ID(396, OperatorTokenType),
+ T_POUND_ALT = TOKEN_FROM_ID(396, OperatorTokenType|AltTokenType),
+ T_POUND_TRIGRAPH = TOKEN_FROM_ID(396, OperatorTokenType|TriGraphTokenType),
+ T_ANY = TOKEN_FROM_ID(397, UnknownTokenType),
+ T_ANY_TRIGRAPH = TOKEN_FROM_ID(397, UnknownTokenType|TriGraphTokenType),
+ T_PP_INCLUDE = TOKEN_FROM_ID(398, PPTokenType),
+ T_PP_QHEADER = TOKEN_FROM_ID(399, PPTokenType),
+ T_PP_HHEADER = TOKEN_FROM_ID(400, PPTokenType),
+ T_PP_INCLUDE_NEXT = TOKEN_FROM_ID(398, PPTokenType|AltTokenType),
+ T_PP_QHEADER_NEXT = TOKEN_FROM_ID(399, PPTokenType|AltTokenType),
+ T_PP_HHEADER_NEXT = TOKEN_FROM_ID(400, PPTokenType|AltTokenType),
+ T_EOF = TOKEN_FROM_ID(401, EOFTokenType), // end of file reached
+ T_EOI = TOKEN_FROM_ID(402, EOFTokenType), // end of input reached
+ T_PP_NUMBER = TOKEN_FROM_ID(403, InternalTokenType),
     
 // MS extensions
- T_MSEXT_INT8 = TOKEN_FROM_ID(405, KeywordTokenType),
- T_MSEXT_INT16 = TOKEN_FROM_ID(406, KeywordTokenType),
- T_MSEXT_INT32 = TOKEN_FROM_ID(407, KeywordTokenType),
- T_MSEXT_INT64 = TOKEN_FROM_ID(408, KeywordTokenType),
- T_MSEXT_BASED = TOKEN_FROM_ID(409, KeywordTokenType),
- T_MSEXT_DECLSPEC = TOKEN_FROM_ID(410, KeywordTokenType),
- T_MSEXT_CDECL = TOKEN_FROM_ID(411, KeywordTokenType),
- T_MSEXT_FASTCALL = TOKEN_FROM_ID(412, KeywordTokenType),
- T_MSEXT_STDCALL = TOKEN_FROM_ID(413, KeywordTokenType),
- T_MSEXT_TRY = TOKEN_FROM_ID(414, KeywordTokenType),
- T_MSEXT_EXCEPT = TOKEN_FROM_ID(415, KeywordTokenType),
- T_MSEXT_FINALLY = TOKEN_FROM_ID(416, KeywordTokenType),
- T_MSEXT_LEAVE = TOKEN_FROM_ID(417, KeywordTokenType),
- T_MSEXT_INLINE = TOKEN_FROM_ID(418, KeywordTokenType),
- T_MSEXT_ASM = TOKEN_FROM_ID(419, KeywordTokenType),
+ T_MSEXT_INT8 = TOKEN_FROM_ID(404, KeywordTokenType),
+ T_MSEXT_INT16 = TOKEN_FROM_ID(405, KeywordTokenType),
+ T_MSEXT_INT32 = TOKEN_FROM_ID(406, KeywordTokenType),
+ T_MSEXT_INT64 = TOKEN_FROM_ID(407, KeywordTokenType),
+ T_MSEXT_BASED = TOKEN_FROM_ID(408, KeywordTokenType),
+ T_MSEXT_DECLSPEC = TOKEN_FROM_ID(409, KeywordTokenType),
+ T_MSEXT_CDECL = TOKEN_FROM_ID(410, KeywordTokenType),
+ T_MSEXT_FASTCALL = TOKEN_FROM_ID(411, KeywordTokenType),
+ T_MSEXT_STDCALL = TOKEN_FROM_ID(412, KeywordTokenType),
+ T_MSEXT_TRY = TOKEN_FROM_ID(413, KeywordTokenType),
+ T_MSEXT_EXCEPT = TOKEN_FROM_ID(414, KeywordTokenType),
+ T_MSEXT_FINALLY = TOKEN_FROM_ID(415, KeywordTokenType),
+ T_MSEXT_LEAVE = TOKEN_FROM_ID(416, KeywordTokenType),
+ T_MSEXT_INLINE = TOKEN_FROM_ID(417, KeywordTokenType),
+ T_MSEXT_ASM = TOKEN_FROM_ID(418, KeywordTokenType),
 
- T_MSEXT_PP_REGION = TOKEN_FROM_ID(420, PPTokenType),
- T_MSEXT_PP_ENDREGION = TOKEN_FROM_ID(421, PPTokenType),
+ T_MSEXT_PP_REGION = TOKEN_FROM_ID(419, PPTokenType),
+ T_MSEXT_PP_ENDREGION = TOKEN_FROM_ID(420, PPTokenType),
 
 // import is needed to be a keyword for the C++ module Standards proposal
- T_IMPORT = TOKEN_FROM_ID(422, KeywordTokenType),
+ T_IMPORT = TOKEN_FROM_ID(421, KeywordTokenType),
 
     T_LAST_TOKEN_ID,
     T_LAST_TOKEN = ID_FROM_TOKEN(T_LAST_TOKEN_ID),

Modified: branches/proto/v3/boost/wave/util/cpp_ifblock.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_ifblock.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_ifblock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/cpp_include_paths.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_include_paths.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_include_paths.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/cpp_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_iterator.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/cpp_macromap.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_macromap.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_macromap.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -162,10 +162,18 @@
         bool expand_operator_defined);
 
 // Collect all arguments supplied to a macro invocation
+#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
     template <typename IteratorT, typename ContainerT, typename SizeT>
     typename std::vector<ContainerT>::size_type collect_arguments (
         token_type const curr_token, std::vector<ContainerT> &arguments,
         IteratorT &next, IteratorT const &end, SizeT const &parameter_count);
+#else
+ template <typename IteratorT, typename ContainerT, typename SizeT>
+ typename std::vector<ContainerT>::size_type collect_arguments (
+ token_type const curr_token, std::vector<ContainerT> &arguments,
+ IteratorT &next, IteratorT &endparen, IteratorT const &end,
+ SizeT const &parameter_count);
+#endif
 
 // Expand a single macro name
     template <typename IteratorT, typename ContainerT>
@@ -688,12 +696,21 @@
 // return the number of successfully detected non-empty arguments
 //
 ///////////////////////////////////////////////////////////////////////////////
+#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
+template <typename ContextT>
+template <typename IteratorT, typename ContainerT, typename SizeT>
+inline typename std::vector<ContainerT>::size_type
+macromap<ContextT>::collect_arguments (token_type const curr_token,
+ std::vector<ContainerT> &arguments, IteratorT &next,
+ IteratorT const &end, SizeT const &parameter_count)
+#else
 template <typename ContextT>
 template <typename IteratorT, typename ContainerT, typename SizeT>
 inline typename std::vector<ContainerT>::size_type
 macromap<ContextT>::collect_arguments (token_type const curr_token,
- std::vector<ContainerT> &arguments, IteratorT &next, IteratorT const &end,
- SizeT const &parameter_count)
+ std::vector<ContainerT> &arguments, IteratorT &next, IteratorT &endparen,
+ IteratorT const &end, SizeT const &parameter_count)
+#endif
 {
     using namespace boost::wave;
 
@@ -734,6 +751,9 @@
                 else {
                 // found closing parenthesis
 // trim_sequence(argument);
+#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS == 0
+ endparen = next;
+#endif
                     if (parameter_count > 0) {
                         if (argument->empty() ||
                             impl::is_whitespace_only(*argument))
@@ -1186,6 +1206,7 @@
         
 #if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS == 0
         IteratorT seqstart = first;
+ IteratorT seqend = first;
 #endif
 
         if (macro_def.is_functionlike) {
@@ -1193,9 +1214,15 @@
         
         // collect the arguments
         std::vector<ContainerT> arguments;
+#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
         typename std::vector<ContainerT>::size_type count_args =
             collect_arguments (curr_token, arguments, first, last,
                 macro_def.macroparameters.size());
+#else
+ typename std::vector<ContainerT>::size_type count_args =
+ collect_arguments (curr_token, arguments, first, seqend, last,
+ macro_def.macroparameters.size());
+#endif
 
         // verify the parameter count
             if (count_args < macro_def.macroparameters.size() ||
@@ -1240,7 +1267,7 @@
             if (ctx.get_hooks().expanding_function_like_macro(
                     ctx, macro_def.macroname, macro_def.macroparameters,
                     macro_def.macrodefinition, curr_token, arguments,
- seqstart, first))
+ seqstart, seqend))
             {
                 // do not expand this macro, just copy the whole sequence
                 std::copy(seqstart, first,
@@ -1477,8 +1504,14 @@
     }
     
     std::vector<ContainerT> arguments;
+#if BOOST_WAVE_USE_DEPRECIATED_PREPROCESSING_HOOKS != 0
     typename std::vector<ContainerT>::size_type count_args =
         collect_arguments (pragma_token, arguments, first, last, 1);
+#else
+ IteratorT endparen = first;
+ typename std::vector<ContainerT>::size_type count_args =
+ collect_arguments (pragma_token, arguments, first, endparen, last, 1);
+#endif
 
 // verify the parameter count
     if (pragma_token.get_position().get_file().empty())

Modified: branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/file_position.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/file_position.hpp (original)
+++ branches/proto/v3/boost/wave/util/file_position.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/flex_string.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/flex_string.hpp (original)
+++ branches/proto/v3/boost/wave/util/flex_string.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2256,7 +2256,7 @@
     {
         Enforce(pos1 <= size(), (std::out_of_range*)0, "");
         Procust(n1, size() - pos1);
- const int r = traits_type::compare(data(), s, Min(n1, n2));
+ const int r = traits_type::compare(data()+pos1, s, Min(n1, n2));
         return
             r != 0 ? r :
             n1 > n2 ? 1 :

Modified: branches/proto/v3/boost/wave/util/functor_input.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/functor_input.hpp (original)
+++ branches/proto/v3/boost/wave/util/functor_input.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp (original)
+++ branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -199,7 +199,29 @@
         }
         return false;
     }
-
+
+ inline bool
+ handle_parens(boost::wave::token_id prev)
+ {
+ switch (static_cast<unsigned int>(prev)) {
+ case T_LEFTPAREN:
+ case T_RIGHTPAREN:
+ case T_LEFTBRACKET:
+ case T_RIGHTBRACKET:
+ case T_LEFTBRACE:
+ case T_RIGHTBRACE:
+ case T_SEMICOLON:
+ case T_COMMA:
+ case T_COLON:
+ // no insertion between parens/brackets/braces and operators
+ return false;
+
+ default:
+ break;
+ }
+ return true;
+ }
+
 } // namespace impl
 
 class insert_whitespace_detection
@@ -260,6 +282,8 @@
                 return false; // no insertion between parens/brackets/braces
 
             default:
+ if (IS_CATEGORY(prev, OperatorTokenType))
+ return false;
                 break;
             }
             break;
@@ -281,6 +305,8 @@
             case T_QUESTION_MARK:
                 if (T_QUESTION_MARK == beforeprev)
                     return true;
+ if (IS_CATEGORY(prev, OperatorTokenType))
+ return false;
                 break;
                 
             default:
@@ -290,20 +316,113 @@
                             
         case T_MINUS:
         case T_MINUSMINUS:
- case T_LESS:
+ case T_MINUSASSIGN:
+ if (T_MINUS == prev || T_MINUSMINUS == prev)
+ return true;
+ if (!impl::handle_parens(prev))
+ return false;
+ if (T_QUESTION_MARK == prev && T_QUESTION_MARK == beforeprev)
+ return true;
+ break;
+
+ case T_PLUS:
+ case T_PLUSPLUS:
+ case T_PLUSASSIGN:
+ if (T_PLUS == prev || T_PLUSPLUS == prev)
+ return true;
+ if (!impl::handle_parens(prev))
+ return false;
+ if (T_QUESTION_MARK == prev && T_QUESTION_MARK == beforeprev)
+ return true;
+ break;
+
+ case T_DIVIDE:
+ case T_DIVIDEASSIGN:
+ if (T_DIVIDE == prev)
+ return true;
+ if (!impl::handle_parens(prev))
+ return false;
+ if (T_QUESTION_MARK == prev && T_QUESTION_MARK == beforeprev)
+ return true;
+ break;
+
         case T_EQUAL:
         case T_ASSIGN:
+ switch (static_cast<unsigned int>(prev)) {
+ case T_PLUSASSIGN:
+ case T_MINUSASSIGN:
+ case T_DIVIDEASSIGN:
+ case T_STARASSIGN:
+ case T_SHIFTRIGHTASSIGN:
+ case T_SHIFTLEFTASSIGN:
+ case T_EQUAL:
+ case T_NOTEQUAL:
+ case T_LESSEQUAL:
+ case T_GREATEREQUAL:
+ case T_LESS:
+ case T_GREATER:
+ case T_PLUS:
+ case T_MINUS:
+ case T_STAR:
+ case T_DIVIDE:
+ case T_ORASSIGN:
+ case T_ANDASSIGN:
+ case T_XORASSIGN:
+ case T_OR:
+ case T_AND:
+ case T_XOR:
+ case T_OROR:
+ case T_ANDAND:
+ return true;
+
+ case T_QUESTION_MARK:
+ if (T_QUESTION_MARK == beforeprev)
+ return true;
+ break;
+
+ default:
+ if (!impl::handle_parens(prev))
+ return false;
+ break;
+ }
+ break;
+
         case T_GREATER:
- case T_DIVIDE:
+ if (T_MINUS == prev)
+ return true; // prevent ->
+ // fall through
+ case T_LESS:
         case T_CHARLIT:
         case T_NOT:
         case T_NOTEQUAL:
- case T_DIVIDEASSIGN:
- case T_MINUSASSIGN:
+ if (!impl::handle_parens(prev))
+ return false;
             if (T_QUESTION_MARK == prev && T_QUESTION_MARK == beforeprev)
- return true; // ??{op}
+ return true;
             break;
 
+ case T_AND:
+ case T_ANDAND:
+ if (!impl::handle_parens(prev))
+ return false;
+ if (T_AND == prev || T_ANDAND == prev)
+ return true;
+ break;
+
+ case T_OR:
+ if (!impl::handle_parens(prev))
+ return false;
+ if (T_OR == prev)
+ return true;
+ break;
+
+ case T_XOR:
+ if (!impl::handle_parens(prev))
+ return false;
+ if (T_XOR == prev)
+ return true;
+ break;
+
         case T_COMPL_ALT:
         case T_OR_ALT:
         case T_AND_ALT:
@@ -313,23 +432,50 @@
         case T_ORASSIGN_ALT:
         case T_XORASSIGN_ALT:
         case T_NOTEQUAL_ALT:
- if (T_IDENTIFIER == prev || T_NONREPLACABLE_IDENTIFIER == prev ||
- IS_CATEGORY(prev, KeywordTokenType))
- return true;
+ switch (static_cast<unsigned int>(prev)) {
+ case T_LEFTPAREN:
+ case T_RIGHTPAREN:
+ case T_LEFTBRACKET:
+ case T_RIGHTBRACKET:
+ case T_LEFTBRACE:
+ case T_RIGHTBRACE:
+ case T_SEMICOLON:
+ case T_COMMA:
+ case T_COLON:
+ // no insertion between parens/brackets/braces and operators
+ return false;
+
+ case T_IDENTIFIER:
+ if (T_NONREPLACABLE_IDENTIFIER == prev ||
+ IS_CATEGORY(prev, KeywordTokenType))
+ {
+ return true;
+ }
+ break;
+
+ default:
+ break;
+ }
             break;
             
         case T_STAR:
             if (T_STAR == prev)
                 return false; // '*****' do not need to be separated
+ if (T_GREATER== prev &&
+ (T_MINUS == beforeprev || T_MINUSMINUS == beforeprev)
+ )
+ {
+ return true; // prevent ->*
+ }
             break;
         }
 
- // else, handle operators separately
- if (IS_CATEGORY(current, OperatorTokenType) &&
- IS_CATEGORY(prev, OperatorTokenType))
- {
- return true; // operators must be delimited always
- }
+ // FIXME: else, handle operators separately (will catch to many cases)
+// if (IS_CATEGORY(current, OperatorTokenType) &&
+// IS_CATEGORY(prev, OperatorTokenType))
+// {
+// return true; // operators must be delimited always
+// }
         return false;
     }
     void shift_tokens (boost::wave::token_id next_id)

Modified: branches/proto/v3/boost/wave/util/interpret_pragma.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/interpret_pragma.hpp (original)
+++ branches/proto/v3/boost/wave/util/interpret_pragma.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/iteration_context.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/iteration_context.hpp (original)
+++ branches/proto/v3/boost/wave/util/iteration_context.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/macro_definition.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/macro_definition.hpp (original)
+++ branches/proto/v3/boost/wave/util/macro_definition.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/macro_helpers.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/macro_helpers.hpp (original)
+++ branches/proto/v3/boost/wave/util/macro_helpers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/pattern_parser.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/pattern_parser.hpp (original)
+++ branches/proto/v3/boost/wave/util/pattern_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/symbol_table.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/symbol_table.hpp (original)
+++ branches/proto/v3/boost/wave/util/symbol_table.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/time_conversion_helper.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/time_conversion_helper.hpp (original)
+++ branches/proto/v3/boost/wave/util/time_conversion_helper.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/transform_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/transform_iterator.hpp (original)
+++ branches/proto/v3/boost/wave/util/transform_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp (original)
+++ branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/wave_config.hpp
==============================================================================
--- branches/proto/v3/boost/wave/wave_config.hpp (original)
+++ branches/proto/v3/boost/wave/wave_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -388,9 +388,22 @@
 }}
 
 ///////////////////////////////////////////////////////////////////////////////
-// configure Boost.Spirit thread support, Boost.Pool is configured
-// automatically
+// Configure Wave thread support, Boost.Spirit and Boost.Pool are configured
+// based on these settings automatically
+//
+// If BOOST_WAVE_SUPPORT_THREADING is not defined, Wave will use the global
+// Boost build settings (BOOST_HAS_THREADS), if it is defined its value
+// defines, whether threading will be enabled or not (should be set to '0'
+// or '1').
+#if !defined(BOOST_WAVE_SUPPORT_THREADING)
 #if defined(BOOST_HAS_THREADS)
+#define BOOST_WAVE_SUPPORT_THREADING 1
+#else
+#define BOOST_WAVE_SUPPORT_THREADING 0
+#endif
+#endif
+
+#if BOOST_WAVE_SUPPORT_THREADING != 0
 #define BOOST_SPIRIT_THREADSAFE 1
 #define PHOENIX_THREADSAFE 1
 #else

Modified: branches/proto/v3/boost/wave/wave_config_constant.hpp
==============================================================================
--- branches/proto/v3/boost/wave/wave_config_constant.hpp (original)
+++ branches/proto/v3/boost/wave/wave_config_constant.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/wave_version.hpp
==============================================================================
--- branches/proto/v3/boost/wave/wave_version.hpp (original)
+++ branches/proto/v3/boost/wave/wave_version.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/wave/whitespace_handling.hpp
==============================================================================
--- branches/proto/v3/boost/wave/whitespace_handling.hpp (original)
+++ branches/proto/v3/boost/wave/whitespace_handling.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     http://www.boost.org/
 
     Copyright (c) 2003 Paul Mensonides
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/boost/xpressive/basic_regex.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/basic_regex.hpp (original)
+++ branches/proto/v3/boost/xpressive/basic_regex.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains the definition of the basic_regex\<\> class template and its
 /// associated helper functions.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/access.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/access.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/access.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // access.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/action.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/action.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/action.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // action.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/adaptor.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/adaptor.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/adaptor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // adaptor.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/finder.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/finder.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/finder.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /// Contains the definition of the basic_regex\<\> class template and its associated helper functions.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -36,6 +36,11 @@
     {
     }
 
+ bool ok_for_partial_matches() const
+ {
+ return false;
+ }
+
     bool operator ()(match_state<BidiIter> &state) const
     {
         Traits const &traits = traits_cast<Traits>(state);
@@ -185,6 +190,28 @@
     bool bits_[256];
 };
 
+///////////////////////////////////////////////////////////////////////////////
+// leading_simple_repeat_finder
+//
+template<typename BidiIter>
+struct leading_simple_repeat_finder
+ : finder<BidiIter>
+{
+ leading_simple_repeat_finder()
+ : finder<BidiIter>()
+ {}
+
+ bool operator ()(match_state<BidiIter> &state) const
+ {
+ state.cur_ = state.next_search_;
+ return true;
+ }
+
+private:
+ leading_simple_repeat_finder(leading_simple_repeat_finder const &);
+ leading_simple_repeat_finder &operator =(leading_simple_repeat_finder const &);
+};
+
 }}}
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)

Modified: branches/proto/v3/boost/xpressive/detail/core/flow_control.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/flow_control.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/flow_control.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // flow_control.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/icase.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/icase.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/icase.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // icase.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/linker.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/linker.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/linker.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // linker.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -145,6 +145,7 @@
       : back_stack_()
       , traits_(&traits)
       , traits_type_(&typeid(Traits))
+ , has_backrefs_(false)
     {
     }
 
@@ -154,6 +155,24 @@
         // no-op
     }
 
+ template<typename Traits, typename ICase>
+ void accept(mark_matcher<Traits, ICase> const &, void const *)
+ {
+ this->has_backrefs_ = true;
+ }
+
+ template<typename Action>
+ void accept(action_matcher<Action> const &, void const *)
+ {
+ this->has_backrefs_ = true;
+ }
+
+ template<typename Predicate>
+ void accept(predicate_matcher<Predicate> const &, void const *)
+ {
+ this->has_backrefs_ = true;
+ }
+
     void accept(repeat_begin_matcher const &, void const *next)
     {
         this->back_stack_.push(next);
@@ -217,6 +236,12 @@
         matcher.xpr_.link(*this);
     }
 
+ // accessors
+ bool has_backrefs() const
+ {
+ return this->has_backrefs_;
+ }
+
     // for use by alt_link_pred below
     template<typename Xpr>
     void alt_branch_link(Xpr const &xpr, void const *next, xpression_peeker<Char> *peeker)
@@ -292,6 +317,7 @@
     std::stack<void const *> back_stack_;
     void const *traits_;
     std::type_info const *traits_type_;
+ bool has_backrefs_;
 };
 
 }}} // namespace boost::xpressive::detail

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/action_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/action_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/action_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,8 +1,8 @@
 ///////////////////////////////////////////////////////////////////////////////
 // action_matcher.hpp
 //
-// Copyright 2007 Eric Niebler.
-// Copyright 2007 David Jenkins.
+// Copyright 2008 Eric Niebler.
+// Copyright 2008 David Jenkins.
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
@@ -16,6 +16,7 @@
 # pragma once
 #endif
 
+#include <boost/config.hpp>
 #include <boost/version.hpp>
 #include <boost/ref.hpp>
 #include <boost/assert.hpp>
@@ -39,6 +40,13 @@
 # include <boost/fusion/include/pop_front.hpp>
 #endif
 
+#if BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable : 4510) // default constructor could not be generated
+#pragma warning(disable : 4512) // assignment operator could not be generated
+#pragma warning(disable : 4610) // can never be instantiated - user defined constructor required
+#endif
+
 namespace boost { namespace xpressive { namespace detail
 {
 
@@ -419,4 +427,8 @@
 
 }}}
 
+#if BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_end_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // alternate_end_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/alternate_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // alternate_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/any_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/any_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/any_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // any_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bol_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // assert_bol_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/assert_bos_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // assert_bos_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eol_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // assert_eol_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/assert_eos_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // assert_eos_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/assert_line_base.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/assert_line_base.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/assert_line_base.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // assert_line_base.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/assert_word_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // assert_word_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -16,6 +16,7 @@
 #include <boost/assert.hpp>
 #include <boost/xpressive/detail/detail_fwd.hpp>
 #include <boost/xpressive/detail/core/quant_style.hpp>
+#include <boost/xpressive/detail/utility/ignore_unused.hpp>
 #include <boost/xpressive/detail/core/state.hpp>
 
 namespace boost { namespace xpressive { namespace detail
@@ -95,6 +96,7 @@
 
         bool is_word(Traits const &traits, char_type ch) const
         {
+ detail::ignore_unused(traits);
             return traits.isctype(traits.translate(ch), this->word_);
         }
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/attr_begin_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // attr_begin_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/attr_end_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // attr_end_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/attr_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/attr_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/attr_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,8 +1,8 @@
 ///////////////////////////////////////////////////////////////////////////////
 // attr_matcher.hpp
 //
-// Copyright 2007 Eric Niebler.
-// Copyright 2007 David Jenkins.
+// Copyright 2008 Eric Niebler.
+// Copyright 2008 David Jenkins.
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
@@ -41,6 +41,8 @@
         {
             return this->traits_.translate(ch1);
         }
+ private:
+ char_translate &operator =(char_translate const &);
     };
 
     ///////////////////////////////////////////////////////////////////////////////
@@ -60,6 +62,8 @@
         {
             return this->traits_.translate_nocase(ch1);
         }
+ private:
+ char_translate &operator =(char_translate const &);
     };
 
     ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/charset_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/charset_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/charset_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // charset_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/end_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/end_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/end_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // end_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -74,6 +74,25 @@
         }
     };
 
+ ///////////////////////////////////////////////////////////////////////////////
+ // independent_end_matcher
+ //
+ struct independent_end_matcher
+ : quant_style_assertion
+ {
+ template<typename BidiIter, typename Next>
+ bool match(match_state<BidiIter> &state, Next const &) const
+ {
+ // Now execute any actions that have been queued
+ for(actionable const *actor = state.action_list_.next; 0 != actor; actor = actor->next)
+ {
+ actor->execute(state.action_args_);
+ }
+
+ return true;
+ }
+ };
+
 }}}
 
 #endif

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/epsilon_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // epsilon_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/keeper_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/keeper_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/keeper_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // keeper_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -71,10 +71,12 @@
 
             if(!this->xpr_.match(state))
             {
+ restore_action_queue(mem, state);
                 reclaim_sub_matches(mem, state, false);
                 return false;
             }
- else if(next.match(state))
+ restore_action_queue(mem, state);
+ if(next.match(state))
             {
                 reclaim_sub_matches(mem, state, true);
                 return true;

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/literal_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/literal_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/literal_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // literal_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/logical_newline_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // logical_newline_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/lookahead_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // lookahead_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -106,11 +106,13 @@
 
                 if(this->xpr_.match(state))
                 {
+ restore_action_queue(mem, state);
                     restore_sub_matches(mem, state);
                     state.cur_ = tmp;
                     return false;
                 }
- else if(next.match(state))
+ restore_action_queue(mem, state);
+ if(next.match(state))
                 {
                     reclaim_sub_matches(mem, state, true);
                     return true;
@@ -121,10 +123,12 @@
             {
                 if(!this->xpr_.match(state))
                 {
+ restore_action_queue(mem, state);
                     reclaim_sub_matches(mem, state, false);
                     return false;
                 }
                 state.cur_ = tmp;
+ restore_action_queue(mem, state);
                 if(next.match(state))
                 {
                     reclaim_sub_matches(mem, state, true);

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/lookbehind_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // lookbehind_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -120,11 +120,13 @@
 
                 if(this->xpr_.match(state))
                 {
+ restore_action_queue(mem, state);
                     restore_sub_matches(mem, state);
                     BOOST_ASSERT(state.cur_ == tmp);
                     return false;
                 }
                 state.cur_ = tmp;
+ restore_action_queue(mem, state);
                 if(next.match(state))
                 {
                     reclaim_sub_matches(mem, state, true);
@@ -137,10 +139,12 @@
                 if(!this->xpr_.match(state))
                 {
                     state.cur_ = tmp;
+ restore_action_queue(mem, state);
                     reclaim_sub_matches(mem, state, false);
                     return false;
                 }
                 BOOST_ASSERT(state.cur_ == tmp);
+ restore_action_queue(mem, state);
                 if(next.match(state))
                 {
                     reclaim_sub_matches(mem, state, true);

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/mark_begin_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // mark_begin_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/mark_end_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // mark_end_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/mark_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/mark_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/mark_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // mark_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -28,11 +28,11 @@
     ///////////////////////////////////////////////////////////////////////////////
     // mark_matcher
     //
- template<typename Traits, bool ICase>
+ template<typename Traits, typename ICase>
     struct mark_matcher
       : quant_style_variable_width
     {
- typedef mpl::bool_<ICase> icase_type;
+ typedef ICase icase_type;
         int mark_number_;
 
         mark_matcher(int mark_number, Traits const &)

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/optional_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/optional_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/optional_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // optional_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // posix_charset_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/predicate_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/predicate_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/predicate_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // predicate_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/range_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/range_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/range_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // range_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/regex_byref_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // regex_byref_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/regex_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/regex_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/regex_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // regex_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_begin_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // repeat_end_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/repeat_end_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // repeat_end_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -28,6 +28,7 @@
     struct repeat_end_matcher
       : quant_style<quant_none, 0, false>
     {
+ typedef Greedy greedy_type;
         int mark_number_;
         unsigned int min_, max_;
         mutable void const *back_;

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/set_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/set_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/set_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // set.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // simple_repeat_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -16,6 +16,7 @@
 #include <boost/assert.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/next_prior.hpp>
 #include <boost/xpressive/detail/detail_fwd.hpp>
 #include <boost/xpressive/detail/core/quant_style.hpp>
 #include <boost/xpressive/detail/core/state.hpp>
@@ -65,12 +66,14 @@
         Xpr xpr_;
         unsigned int min_, max_;
         std::size_t width_;
+ mutable bool leading_;
 
         simple_repeat_matcher(Xpr const &xpr, unsigned int min, unsigned int max, std::size_t width)
           : xpr_(xpr)
           , min_(min)
           , max_(max)
           , width_(width)
+ , leading_(false)
         {
             // it is the job of the parser to make sure this never happens
             BOOST_ASSERT(min <= max);
@@ -101,6 +104,16 @@
                 ++matches;
             }
 
+ // If this repeater is at the front of the pattern, note
+ // how much of the input we consumed so that a repeated search
+ // doesn't have to cover the same ground again.
+ if(this->leading_)
+ {
+ state.next_search_ = (matches && matches < this->max_)
+ ? state.cur_
+ : (tmp == state.end_) ? tmp : boost::next(tmp);
+ }
+
             if(this->min_ > matches)
             {
                 state.cur_ = tmp;
@@ -126,6 +139,7 @@
         template<typename BidiIter, typename Next>
         bool match_(match_state<BidiIter> &state, Next const &next, non_greedy_tag) const
         {
+ BOOST_ASSERT(!this->leading_);
             BidiIter const tmp = state.cur_;
             unsigned int matches = 0;
 
@@ -161,12 +175,24 @@
             // is there enough room?
             if(this->min_ > diff_to_end)
             {
+ if(this->leading_)
+ {
+ // BUGBUG
+ state.next_search_ = boost::next(tmp);
+ }
                 return false;
             }
 
             BidiIter const min_iter = tmp + this->min_;
             state.cur_ += (std::min)((std::size_t)this->max_, diff_to_end);
 
+ if(this->leading_)
+ {
+ state.next_search_ = (diff_to_end && diff_to_end < this->max_)
+ ? state.cur_
+ : (tmp == state.end_) ? tmp : boost::next(tmp);
+ }
+
             for(;; --state.cur_)
             {
                 if(next.match(state))

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/string_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/string_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/string_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // string_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -26,13 +26,13 @@
     ///////////////////////////////////////////////////////////////////////////////
     // string_matcher
     //
- template<typename Traits, bool ICase>
+ template<typename Traits, typename ICase>
     struct string_matcher
       : quant_style_fixed_unknown_width
     {
         typedef typename Traits::char_type char_type;
         typedef typename Traits::string_type string_type;
- typedef mpl::bool_<ICase> icase_type;
+ typedef ICase icase_type;
         string_type str_;
         char_type const *end_;
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matcher/true_matcher.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matcher/true_matcher.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matcher/true_matcher.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // true_matcher.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/matchers.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/matchers.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/matchers.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // matchers.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/optimize.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/optimize.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/optimize.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // optimize.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -39,6 +39,13 @@
             new line_start_finder<BidiIter, Traits>(traits)
         );
     }
+ else if(peeker.leading_simple_repeat())
+ {
+ return intrusive_ptr<finder<BidiIter> >
+ (
+ new leading_simple_repeat_finder<BidiIter>()
+ );
+ }
     else if(256 != peeker.bitset().count())
     {
         return intrusive_ptr<finder<BidiIter> >
@@ -96,7 +103,7 @@
 
     // "peek" into the compiled regex to see if there are optimization opportunities
     hash_peek_bitset<char_type> bset;
- xpression_peeker<char_type> peeker(bset, traits);
+ xpression_peeker<char_type> peeker(bset, traits, linker.has_backrefs());
     regex->peek(peeker);
 
     // optimization: get the peek chars OR the boyer-moore search string

Modified: branches/proto/v3/boost/xpressive/detail/core/peeker.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/peeker.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/peeker.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // peeker.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -31,28 +31,7 @@
 {
 
 ///////////////////////////////////////////////////////////////////////////////
-// peek_next
-// tell whether or not to keep looking for a peek optimization
-template<typename Matcher>
-struct peek_next
- : mpl::bool_<Matcher::width == 0>
-{
-};
-
-template<>
-struct peek_next<mark_begin_matcher>
- : mpl::true_
-{
-};
-
-template<>
-struct peek_next<repeat_begin_matcher>
- : mpl::true_
-{
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// xpression_peeker
+// peeker_string
 //
 template<typename Char>
 struct peeker_string
@@ -82,6 +61,8 @@
 
     hash_peek_bitset<char_type> &bset_;
     Traits const &traits_;
+private:
+ char_sink &operator =(char_sink const &);
 };
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -91,12 +72,14 @@
 struct xpression_peeker
 {
     template<typename Traits>
- xpression_peeker(hash_peek_bitset<Char> &bset, Traits const &traits)
+ xpression_peeker(hash_peek_bitset<Char> &bset, Traits const &traits, bool has_backrefs = false)
       : bset_(bset)
       , str_()
       , line_start_(false)
       , traits_(0)
       , traits_type_(0)
+ , leading_simple_repeat_(0)
+ , has_backrefs_(has_backrefs)
     {
         this->set_traits(traits);
     }
@@ -113,6 +96,11 @@
         return this->line_start_;
     }
 
+ bool leading_simple_repeat() const
+ {
+ return 0 < this->leading_simple_repeat_;
+ }
+
     hash_peek_bitset<Char> const &bitset() const
     {
         return this->bset_;
@@ -120,19 +108,31 @@
 
     ///////////////////////////////////////////////////////////////////////////////
     // modifiers
- void fail(bool do_fail = true)
+ void fail()
     {
- if(do_fail)
+ this->bset_.set_all();
+ }
+
+ template<typename Matcher>
+ mpl::false_ accept(Matcher const &)
+ {
+ this->fail();
+ return mpl::false_();
+ }
+
+ mpl::true_ accept(mark_begin_matcher const &)
+ {
+ if(this->has_backrefs_)
         {
- this->bset_.set_all();
+ --this->leading_simple_repeat_;
         }
+ return mpl::true_();
     }
 
- template<typename Matcher>
- peek_next<Matcher> accept(Matcher const &)
+ mpl::true_ accept(repeat_begin_matcher const &)
     {
- this->fail(!peek_next<Matcher>::value);
- return peek_next<Matcher>();
+ --this->leading_simple_repeat_;
+ return mpl::true_();
     }
 
     template<typename Traits>
@@ -149,13 +149,13 @@
         return mpl::false_();
     }
 
- template<typename Traits, bool ICase>
+ template<typename Traits, typename ICase>
     mpl::false_ accept(string_matcher<Traits, ICase> const &xpr)
     {
- this->bset_.set_char(xpr.str_[0], ICase, this->get_traits_<Traits>());
+ this->bset_.set_char(xpr.str_[0], ICase(), this->get_traits_<Traits>());
         this->str_.begin_ = detail::data_begin(xpr.str_);
         this->str_.end_ = detail::data_end(xpr.str_);
- this->str_.icase_ = ICase;
+ this->str_.icase_ = ICase::value;
         return mpl::false_();
     }
 
@@ -188,14 +188,14 @@
         return mpl::false_();
     }
 
- //template<typename Xpr, bool Greedy>
+ //template<typename Xpr, typename Greedy>
     //mpl::true_ accept(optional_matcher<Xpr, Greedy> const &xpr)
     //{
     // xpr.xpr_.peek(*this); // a union of xpr and next
     // return mpl::true_();
     //}
 
- //template<typename Xpr, bool Greedy>
+ //template<typename Xpr, typename Greedy>
     //mpl::true_ accept(optional_mark_matcher<Xpr, Greedy> const &xpr)
     //{
     // xpr.xpr_.peek(*this); // a union of xpr and next
@@ -228,10 +228,22 @@
     template<typename Xpr, typename Greedy>
     mpl::false_ accept(simple_repeat_matcher<Xpr, Greedy> const &xpr)
     {
+ if(Greedy() && 1U == xpr.width_)
+ {
+ ++this->leading_simple_repeat_;
+ xpr.leading_ = this->leading_simple_repeat();
+ }
         0 != xpr.min_ ? xpr.xpr_.peek(*this) : this->fail(); // could be a union of xpr and next
         return mpl::false_();
     }
 
+ template<typename Xpr>
+ mpl::false_ accept(keeper_matcher<Xpr> const &xpr)
+ {
+ xpr.xpr_.peek(*this);
+ return mpl::false_();
+ }
+
     template<typename Traits>
     void set_traits(Traits const &traits)
     {
@@ -247,6 +259,8 @@
     }
 
 private:
+ xpression_peeker(xpression_peeker const &);
+ xpression_peeker &operator =(xpression_peeker const &);
 
     template<typename Traits>
     Traits const &get_traits_() const
@@ -261,6 +275,8 @@
     bool line_start_;
     void const *traits_;
     std::type_info const *traits_type_;
+ int leading_simple_repeat_;
+ bool has_backrefs_;
 };
 
 }}} // namespace boost::xpressive::detail

Modified: branches/proto/v3/boost/xpressive/detail/core/quant_style.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/quant_style.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/quant_style.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // quant_style.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/regex_impl.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/regex_impl.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/regex_impl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // regex_impl.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -31,6 +31,7 @@
   : counted_base<finder<BidiIter> >
 {
     virtual ~finder() {}
+ virtual bool ok_for_partial_matches() const { return true; }
     virtual bool operator ()(match_state<BidiIter> &state) const = 0;
 };
 

Modified: branches/proto/v3/boost/xpressive/detail/core/results_cache.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/results_cache.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/results_cache.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // results_cache.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -14,6 +14,7 @@
 #endif
 
 #include <list>
+#include <boost/detail/workaround.hpp>
 #include <boost/assert.hpp>
 #include <boost/xpressive/detail/detail_fwd.hpp>
 #include <boost/xpressive/detail/core/access.hpp>

Modified: branches/proto/v3/boost/xpressive/detail/core/state.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/state.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/state.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // state.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -127,6 +127,7 @@
     actionable const **action_list_tail_;
     action_args_type *action_args_;
     attr_context attr_context_;
+ BidiIter next_search_;
 
     ///////////////////////////////////////////////////////////////////////////////
     //
@@ -151,6 +152,7 @@
       , action_list_tail_(&action_list_.next)
       , action_args_(&core_access<BidiIter>::get_action_args(what))
       , attr_context_() // zero-initializes the fields of attr_context_
+ , next_search_(begin)
     {
         // reclaim any cached memory in the match_results struct
         this->extras_->sub_match_stack_.unwind();
@@ -314,6 +316,7 @@
 {
     sub_match_impl<BidiIter> *old_sub_matches_;
     std::size_t nested_results_count_;
+ actionable const *action_list_head_;
     actionable const **action_list_tail_;
     attr_context attr_context_;
 };
@@ -328,14 +331,28 @@
     {
         state.extras_->sub_match_stack_.push_sequence(state.mark_count_, no_fill)
       , state.context_.results_ptr_->nested_results().size()
+ , state.action_list_.next
       , state.action_list_tail_
       , state.attr_context_
     };
+ state.action_list_.next = 0;
+ state.action_list_tail_ = &state.action_list_.next;
     std::copy(state.sub_matches_, state.sub_matches_ + state.mark_count_, mem.old_sub_matches_);
     return mem;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
+// restore_action_queue
+//
+template<typename BidiIter>
+inline void restore_action_queue(memento<BidiIter> const &mem, match_state<BidiIter> &state)
+{
+ state.action_list_.next = mem.action_list_head_;
+ state.action_list_tail_ = mem.action_list_tail_;
+ *state.action_list_tail_ = 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
 // restore_sub_matches
 //
 template<typename BidiIter>
@@ -348,8 +365,6 @@
     std::copy(mem.old_sub_matches_, mem.old_sub_matches_ + state.mark_count_, state.sub_matches_);
     state.extras_->sub_match_stack_.unwind_to(mem.old_sub_matches_);
     state.attr_context_ = mem.attr_context_;
- state.action_list_tail_ = mem.action_list_tail_;
- *state.action_list_tail_ = 0;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -369,8 +384,6 @@
     if(!success)
     {
         state.attr_context_ = mem.attr_context_;
- state.action_list_tail_ = mem.action_list_tail_;
- *state.action_list_tail_ = 0;
     }
 }
 

Modified: branches/proto/v3/boost/xpressive/detail/core/sub_match_impl.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/sub_match_impl.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/sub_match_impl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // sub_match_impl.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/core/sub_match_vector.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/core/sub_match_vector.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/core/sub_match_vector.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // sub_match_vector.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/detail_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/detail_fwd.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/detail_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // detail_fwd.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -69,6 +69,8 @@
     //
     struct end_matcher;
 
+ struct independent_end_matcher;
+
     struct assert_bos_matcher;
 
     struct assert_eos_matcher;
@@ -95,7 +97,7 @@
     template<typename BidiIter>
     struct sequence;
 
- template<typename Traits, bool ICase>
+ template<typename Traits, typename ICase>
     struct mark_matcher;
 
     struct mark_begin_matcher;
@@ -131,7 +133,7 @@
     template<typename Traits, typename ICase, typename Not>
     struct literal_matcher;
 
- template<typename Traits, bool ICase>
+ template<typename Traits, typename ICase>
     struct string_matcher;
 
     template<typename Actor>
@@ -264,6 +266,8 @@
 
     typedef static_xpression<alternate_end_matcher, no_next> alternate_end_xpression;
 
+ typedef static_xpression<independent_end_matcher, no_next> independent_end_xpression;
+
     typedef static_xpression<true_matcher, no_next> true_xpression;
 
     template<typename Matcher, typename Next = end_xpression>

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/dynamic.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/dynamic.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/dynamic.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // dynamic.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/matchable.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/matchable.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/matchable.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // matchable.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/parse_charset.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/parse_charset.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/parse_charset.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // parse_charset.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/parser.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/parser.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains the definition of regex_compiler, a factory for building regex objects
 /// from strings.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -22,6 +22,7 @@
 #include <boost/xpressive/regex_constants.hpp>
 #include <boost/xpressive/detail/detail_fwd.hpp>
 #include <boost/xpressive/detail/core/matchers.hpp>
+#include <boost/xpressive/detail/utility/ignore_unused.hpp>
 #include <boost/xpressive/detail/dynamic/dynamic.hpp>
 
 // The Regular Expression grammar, in pseudo BNF:
@@ -124,12 +125,12 @@
 
     if(0 != (regex_constants::icase_ & flags))
     {
- string_matcher<Traits, true> matcher(literal, traits);
+ string_matcher<Traits, mpl::true_> matcher(literal, traits);
         return make_dynamic<BidiIter>(matcher);
     }
     else
     {
- string_matcher<Traits, false> matcher(literal, traits);
+ string_matcher<Traits, mpl::false_> matcher(literal, traits);
         return make_dynamic<BidiIter>(matcher);
     }
 }
@@ -149,14 +150,14 @@
     {
         return make_dynamic<BidiIter>
         (
- mark_matcher<Traits, true>(mark_nbr, traits)
+ mark_matcher<Traits, mpl::true_>(mark_nbr, traits)
         );
     }
     else
     {
         return make_dynamic<BidiIter>
         (
- mark_matcher<Traits, false>(mark_nbr, traits)
+ mark_matcher<Traits, mpl::false_>(mark_nbr, traits)
         );
     }
 }
@@ -172,6 +173,7 @@
   , Traits const &traits
 )
 {
+ detail::ignore_unused(traits);
     if(0 != compound.posix_yes())
     {
         typename Traits::char_class_type mask = compound.posix_yes();
@@ -334,6 +336,22 @@
     );
 }
 
+///////////////////////////////////////////////////////////////////////////////
+// make_independent_end_xpression
+//
+template<typename BidiIter>
+inline sequence<BidiIter> make_independent_end_xpression(bool pure)
+{
+ if(pure)
+ {
+ return detail::make_dynamic<BidiIter>(detail::true_matcher());
+ }
+ else
+ {
+ return detail::make_dynamic<BidiIter>(detail::independent_end_matcher());
+ }
+}
+
 }}} // namespace boost::xpressive::detail
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/parser_enum.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/parser_enum.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/parser_enum.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // parser_enum.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/parser_traits.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/parser_traits.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/parser_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // detail/dynamic/parser_traits.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/dynamic/sequence.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/dynamic/sequence.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/dynamic/sequence.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // sequence.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/compile.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/compile.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/compile.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // compile.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/is_pure.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/is_pure.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/is_pure.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // is_pure.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -110,7 +110,7 @@
 
     template<typename Expr, typename Char>
     struct use_simple_repeat_<Expr, Char, modifier_tag>
- : use_simple_repeat_<typename unref_arg_c<Expr, 0>::type, Char>
+ : use_simple_repeat_<typename unref_arg_c<Expr, 1>::type, Char>
     {};
 
     template<typename Expr, typename Char>

Modified: branches/proto/v3/boost/xpressive/detail/static/modifier.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/modifier.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/modifier.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // modifier.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/placeholders.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/placeholders.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/placeholders.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // placeholders.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/static.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/static.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/static.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // static.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/transmogrify.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/transmogrify.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/transmogrify.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // transmogrify.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -45,7 +45,7 @@
         <
             is_char_literal<Matcher, char_type>
           , literal_matcher<Traits, ICase, false_>
- , string_matcher<Traits, ICase::value>
+ , string_matcher<Traits, ICase>
>::type type;
 
         template<typename Matcher2, typename Visitor>
@@ -140,7 +140,7 @@
     template<typename BidiIter, typename ICase, typename Traits>
     struct transmogrify<BidiIter, ICase, Traits, mark_placeholder >
     {
- typedef mark_matcher<Traits, ICase::value> type;
+ typedef mark_matcher<Traits, ICase> type;
 
         template<typename Matcher2, typename Visitor>
         static type call(Matcher2 const &m, Visitor &visitor)

Modified: branches/proto/v3/boost/xpressive/detail/static/type_traits.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/type_traits.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/type_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // type_traits.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/visitor.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/visitor.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/visitor.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // visitor.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/static/width_of.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/static/width_of.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/static/width_of.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // width_of.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/algorithm.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/algorithm.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/algorithm.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // algorithm.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/any.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/any.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/any.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // any.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/boyer_moore.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/boyer_moore.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/boyer_moore.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /// purpose boyer-moore implementation. It truncates the search string at
 /// 256 characters, but it is sufficient for the needs of xpressive.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/chset/chset.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/chset/chset.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/chset/chset.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // chset.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/cons.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/cons.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/cons.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // cons.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/dont_care.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/dont_care.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/dont_care.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // dont_care.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/hash_peek_bitset.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/hash_peek_bitset.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/hash_peek_bitset.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // hash_peek_bitset.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/ignore_unused.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/ignore_unused.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/ignore_unused.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // ignore_unused.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/literals.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/literals.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/literals.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // literals.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/never_true.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/never_true.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/never_true.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // never_true.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/save_restore.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/save_restore.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/save_restore.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // save_restore.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/sequence_stack.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/sequence_stack.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/sequence_stack.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // sequence_stack.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/symbols.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/symbols.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/symbols.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,6 +21,7 @@
 # pragma once
 #endif
 
+#include <boost/noncopyable.hpp>
 #include <boost/range/begin.hpp>
 #include <boost/range/end.hpp>
 #include <boost/range/value_type.hpp>

Modified: branches/proto/v3/boost/xpressive/detail/utility/tracking_ptr.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/tracking_ptr.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/tracking_ptr.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // tracking_ptr.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -24,6 +24,7 @@
 #include <boost/shared_ptr.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/intrusive_ptr.hpp>
+#include <boost/detail/workaround.hpp>
 #include <boost/detail/atomic_count.hpp>
 #include <boost/iterator/iterator_facade.hpp>
 #include <boost/iterator/filter_iterator.hpp>

Modified: branches/proto/v3/boost/xpressive/detail/utility/traits_utils.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/traits_utils.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/traits_utils.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // traits_utils.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/detail/utility/width.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/detail/utility/width.hpp (original)
+++ branches/proto/v3/boost/xpressive/detail/utility/width.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // width.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/match_results.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/match_results.hpp (original)
+++ branches/proto/v3/boost/xpressive/match_results.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /// The match_results type holds the results of a regex_match() or
 /// regex_search() operation.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/boost/xpressive/proto/args.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/proto/args.hpp (original)
+++ branches/proto/v3/boost/xpressive/proto/args.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
     /// \file args.hpp
     /// Contains definition of args\<\> and term\<\> class templates.
     //
- // Copyright 2007 Eric Niebler. Distributed under the Boost
+ // Copyright 2008 Eric Niebler. Distributed under the Boost
     // Software License, Version 1.0. (See accompanying file
     // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/proto/context.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/proto/context.hpp (original)
+++ branches/proto/v3/boost/xpressive/proto/context.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file context.hpp
 /// Includes all the context classes in the context/ sub-directory.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/proto/literal.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/proto/literal.hpp (original)
+++ branches/proto/v3/boost/xpressive/proto/literal.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,13 +3,14 @@
 /// The literal\<\> terminal wrapper, and the proto::lit() function for
 /// creating literal\<\> wrappers.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #ifndef BOOST_PROTO_LITERAL_HPP_EAN_01_03_2007
 #define BOOST_PROTO_LITERAL_HPP_EAN_01_03_2007
 
+#include <boost/config.hpp>
 #include <boost/xpressive/proto/proto_fwd.hpp>
 #include <boost/xpressive/proto/expr.hpp>
 #include <boost/xpressive/proto/traits.hpp>
@@ -19,13 +20,30 @@
 {
     namespace utility
     {
- template<typename T, typename Domain>
+ /// \brief A simple wrapper for a terminal, provided for
+ /// ease of use.
+ ///
+ /// A simple wrapper for a terminal, provided for
+ /// ease of use. In all cases, <tt>literal\<X\> l(x);</tt>
+ /// is equivalent to <tt>terminal\<X\>::::type l = {x};</tt>.
+ ///
+ /// The \c Domain template parameter defaults to
+ /// \c proto::default_domain.
+ template<
+ typename T
+ , typename Domain BOOST_PROTO_FOR_DOXYGEN_ONLY(= default_domain)
+ >
         struct literal
           : extends<typename terminal<T>::type, literal<T, Domain>, Domain>
         {
+ private:
             typedef typename terminal<T>::type terminal_type;
             typedef extends<terminal_type, literal<T, Domain>, Domain> base_type;
 
+ public:
+ typedef typename proto::result_of::arg<terminal_type>::type reference;
+ typedef typename proto::result_of::arg<terminal_type const>::type const_reference;
+
             template<typename U>
             literal(U &u)
               : base_type(proto::construct<terminal_type>(u))
@@ -42,11 +60,24 @@
             {}
 
             using base_type::operator =;
+
+ reference get()
+ {
+ return proto::arg(*this);
+ }
+
+ const_reference get() const
+ {
+ return proto::arg(*this);
+ }
         };
     }
 
- /// lit
- ///
+ /// \brief A helper function for creating a \c literal\<\> wrapper.
+ /// \param t The object to wrap.
+ /// \return literal\<T &\>(t)
+ /// \attention The returned value holds the argument by reference.
+ /// \throw nothrow
     template<typename T>
     inline literal<T &> const lit(T &t)
     {
@@ -58,14 +89,14 @@
     template<typename T>
     inline literal<T const &> const lit(T const &t)
     {
- #ifdef _MSC_VER
+ #ifdef BOOST_MSVC
         #pragma warning(push)
         #pragma warning(disable: 4180) // warning C4180: qualifier applied to function type has no meaning; ignored
         #endif
 
         return literal<T const &>(t);
 
- #ifdef _MSC_VER
+ #ifdef BOOST_MSVC
         #pragma warning(pop)
         #endif
     }

Modified: branches/proto/v3/boost/xpressive/proto/proto_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/proto/proto_fwd.hpp (original)
+++ branches/proto/v3/boost/xpressive/proto/proto_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -41,6 +41,51 @@
 # define BOOST_PROTO_DISABLE_IF_IS_CONST(T)
 #endif
 
+#if BOOST_VERSION < 103500
+#define BOOST_PROTO_DEFINE_FUSION_TAG(X) typedef X tag;
+#define BOOST_PROTO_DEFINE_FUSION_CATEGORY(X)
+#define BOOST_PROTO_FUSION_RESULT_OF meta
+#define BOOST_PROTO_FUSION_EXTENSION meta
+#define BOOST_PROTO_FUSION_AT_C(N, X) at<N>(X)
+#else
+#define BOOST_PROTO_DEFINE_FUSION_TAG(X) typedef X fusion_tag;
+#define BOOST_PROTO_DEFINE_FUSION_CATEGORY(X) typedef X category;
+#define BOOST_PROTO_FUSION_RESULT_OF result_of
+#define BOOST_PROTO_FUSION_EXTENSION extension
+#define BOOST_PROTO_FUSION_AT_C(N, X) at_c<N>(X)
+#endif
+
+#ifdef BOOST_PROTO_DOXYGEN_INVOKED
+// HACKHACK so Doxygen shows inheritance from mpl::true_ and mpl::false_
+namespace boost
+{
+ /// INTERNAL ONLY
+ ///
+ namespace mpl
+ {
+ /// INTERNAL ONLY
+ ///
+ struct true_ {};
+ /// INTERNAL ONLY
+ ///
+ struct false_ {};
+ }
+
+ /// INTERNAL ONLY
+ ///
+ namespace fusion
+ {
+ /// INTERNAL ONLY
+ ///
+ template<typename Function>
+ class unfused_generic {};
+ }
+}
+#define BOOST_PROTO_FOR_DOXYGEN_ONLY(x) x
+#else
+#define BOOST_PROTO_FOR_DOXYGEN_ONLY(x)
+#endif
+
 namespace boost { namespace proto
 {
     namespace wildns_

Modified: branches/proto/v3/boost/xpressive/proto/proto_typeof.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/proto/proto_typeof.hpp (original)
+++ branches/proto/v3/boost/xpressive/proto/proto_typeof.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Type registrations so that proto expression templates can be used together
 /// with the Boost.Typeof library.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/regex_actions.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_actions.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_actions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file regex_actions.hpp
 /// Defines the syntax elements of xpressive's action expressions.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -14,6 +14,7 @@
 # pragma once
 #endif
 
+#include <boost/config.hpp>
 #include <boost/ref.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/or.hpp>
@@ -40,7 +41,7 @@
 
 // Doxygen can't handle proto :-(
 #ifndef BOOST_XPRESSIVE_DOXYGEN_INVOKED
-# include <boost/xpressive/proto/transform/fold.hpp>
+# include <boost/xpressive/proto/transform.hpp>
 # include <boost/xpressive/detail/core/matcher/action_matcher.hpp>
 #endif
 
@@ -52,6 +53,13 @@
 ///
 #define UNCVREF(x) typename remove_cv<typename remove_reference<x>::type>::type
 
+#if BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable : 4510) // default constructor could not be generated
+#pragma warning(disable : 4512) // assignment operator could not be generated
+#pragma warning(disable : 4610) // can never be instantiated - user defined constructor required
+#endif
+
 namespace boost { namespace xpressive
 {
 
@@ -868,4 +876,8 @@
 #undef UNREF
 #undef UNCVREF
 
+#if BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_XPRESSIVE_ACTIONS_HPP_EAN_03_22_2007

Modified: branches/proto/v3/boost/xpressive/regex_algorithms.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_algorithms.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_algorithms.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file regex_algorithms.hpp
 /// Contains the regex_match(), regex_search() and regex_replace() algorithms.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -81,7 +81,8 @@
         // handle partial matches
         else if(state.found_partial_match_ && 0 != (flags & regex_constants::match_partial))
         {
- return state.set_partial_match(), true;
+ state.set_partial_match();
+ return true;
         }
     }
 
@@ -256,7 +257,7 @@
         }
 
         // If we have a finder, use it to find where a potential match can start
- else if(impl.finder_)
+ else if(impl.finder_ && (!partial_ok || impl.finder_->ok_for_partial_matches()))
         {
             finder<BidiIter> const &find = *impl.finder_;
             if(find(state))
@@ -537,7 +538,7 @@
         }
 
         out = what.format(out, fmt, flags);
- cur = state.cur_ = what[0].second;
+ cur = state.cur_ = state.next_search_ = what[0].second;
 
         if(0 == (flags & format_first_only))
         {
@@ -552,7 +553,7 @@
 
                 access::set_prefix_suffix(what, begin, end);
                 out = what.format(out, fmt, flags);
- cur = state.cur_ = what[0].second;
+ cur = state.cur_ = state.next_search_ = what[0].second;
                 not_null = (0 == what.length());
                 state.reset(what, *access::get_regex_impl(re));
             }

Modified: branches/proto/v3/boost/xpressive/regex_compiler.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_compiler.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_compiler.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains the definition of regex_compiler, a factory for building regex objects
 /// from strings.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -320,19 +320,16 @@
             negative = true; // fall-through
         case token_positive_lookahead:
             lookahead = true;
- seq_end = detail::make_dynamic<BidiIter>(detail::true_matcher());
             break;
 
         case token_negative_lookbehind:
             negative = true; // fall-through
         case token_positive_lookbehind:
             lookbehind = true;
- seq_end = detail::make_dynamic<BidiIter>(detail::true_matcher());
             break;
 
         case token_independent_sub_expression:
             keeper = true;
- seq_end = detail::make_dynamic<BidiIter>(detail::true_matcher());
             break;
 
         case token_comment:
@@ -430,16 +427,19 @@
         typedef detail::shared_matchable<BidiIter> xpr_type;
         if(lookahead)
         {
+ seq += detail::make_independent_end_xpression<BidiIter>(seq.pure());
             detail::lookahead_matcher<xpr_type> lookahead(seq.xpr(), negative, seq.pure());
             seq = detail::make_dynamic<BidiIter>(lookahead);
         }
         else if(lookbehind)
         {
+ seq += detail::make_independent_end_xpression<BidiIter>(seq.pure());
             detail::lookbehind_matcher<xpr_type> lookbehind(seq.xpr(), seq.width().value(), negative, seq.pure());
             seq = detail::make_dynamic<BidiIter>(lookbehind);
         }
         else if(keeper) // independent sub-expression
         {
+ seq += detail::make_independent_end_xpression<BidiIter>(seq.pure());
             detail::keeper_matcher<xpr_type> keeper(seq.xpr(), seq.pure());
             seq = detail::make_dynamic<BidiIter>(keeper);
         }

Modified: branches/proto/v3/boost/xpressive/regex_constants.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_constants.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_constants.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains definitions for the syntax_option_type, match_flag_type and
 /// error_type enumerations.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/regex_error.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_error.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_error.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file regex_error.hpp
 /// Contains the definition of the regex_error exception class.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/regex_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_iterator.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains the definition of the regex_iterator type, an STL-compatible iterator
 /// for stepping through all the matches in a sequence.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -39,6 +39,7 @@
         BidiIter begin
       , BidiIter cur
       , BidiIter end
+ , BidiIter next_search
       , basic_regex<BidiIter> const *rex
       , regex_constants::match_flag_type flags
       , bool not_null = false
@@ -50,6 +51,7 @@
       , not_null_(not_null)
     {
         this->state_.cur_ = cur;
+ this->state_.next_search_ = next_search;
     }
 
     bool next()
@@ -63,7 +65,7 @@
         // Report position() correctly by setting the base different from prefix().first
         access::set_base(this->what_, this->state_.begin_);
 
- this->state_.cur_ = this->what_[0].second;
+ this->state_.cur_ = this->state_.next_search_ = this->what_[0].second;
         this->not_null_ = (0 == this->what_.length());
 
         return true;
@@ -116,7 +118,7 @@
       , basic_regex<BidiIter> const &rex
       , regex_constants::match_flag_type flags = regex_constants::match_default
     )
- : impl_(new impl_type_(begin, begin, end, &rex, flags))
+ : impl_(new impl_type_(begin, begin, end, begin, &rex, flags))
     {
         this->next_();
     }
@@ -130,7 +132,7 @@
       , detail::let_<LetExpr> const &args
       , regex_constants::match_flag_type flags = regex_constants::match_default
     )
- : impl_(new impl_type_(begin, begin, end, &rex, flags))
+ : impl_(new impl_type_(begin, begin, end, begin, &rex, flags))
     {
         detail::bind_args(args, this->impl_->what_);
         this->next_();
@@ -222,6 +224,7 @@
                 that->state_.begin_
               , that->state_.cur_
               , that->state_.end_
+ , that->state_.next_search_
               , that->rex_
               , that->flags_
               , that->not_null_

Modified: branches/proto/v3/boost/xpressive/regex_primitives.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_primitives.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_primitives.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file regex_primitives.hpp
 /// Contains the syntax elements for writing static regular expressions.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -11,9 +11,11 @@
 
 #include <vector>
 #include <climits>
+#include <boost/config.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/and.hpp>
 #include <boost/mpl/assert.hpp>
+#include <boost/detail/workaround.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/xpressive/detail/detail_fwd.hpp>
 #include <boost/xpressive/detail/core/matchers.hpp>
@@ -22,7 +24,7 @@
 // Doxygen can't handle proto :-(
 #ifndef BOOST_XPRESSIVE_DOXYGEN_INVOKED
 # include <boost/xpressive/proto/proto.hpp>
-# include <boost/xpressive/proto/transform/arg.hpp>
+# include <boost/xpressive/proto/transform.hpp>
 # include <boost/xpressive/detail/core/icase.hpp>
 # include <boost/xpressive/detail/static/compile.hpp>
 # include <boost/xpressive/detail/static/modifier.hpp>
@@ -52,6 +54,13 @@
         using proto::extends<basic_mark_tag, mark_tag>::operator =;
     };
 
+ // workaround msvc-7.1 bug with function pointer types
+ // within function types:
+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+ #define mark_number(x) proto::call<mark_number(x)>
+ #define minus_one() proto::make<minus_one()>
+ #endif
+
     struct push_back : proto::callable
     {
         typedef int result_type;
@@ -64,32 +73,139 @@
         }
     };
 
- //using grammar_detail::mark_number;
+ struct mark_number : proto::callable
+ {
+ typedef int result_type;
 
- //// s1 or -s1
- //struct SubMatch
- // : proto::or_<
- // proto::when<basic_mark_tag, push_back(proto::_visitor, mark_number(proto::_arg)) >
- // , proto::when<proto::negate<basic_mark_tag>, push_back(proto::_visitor, mpl::int_<-1>()) >
- // >
- //{};
-
- //struct SubMatchList
- // : proto::or_<SubMatch, proto::comma<SubMatchList, SubMatch> >
- //{};
-
- //template<typename Subs>
- //typename enable_if<
- // mpl::and_<proto::is_expr<Subs>, proto::matches<Subs, SubMatchList> >
- // , std::vector<int>
- //>::type
- //to_vector(Subs const &subs)
- //{
- // std::vector<int> subs_;
- // SubMatchList()(subs, 0, subs_);
- // return subs_;
- //}
+ template<typename Expr>
+ int operator ()(Expr const &expr) const
+ {
+ return expr.mark_number_;
+ }
+ };
+
+ typedef mpl::int_<-1> minus_one;
 
+ // s1 or -s1
+ struct SubMatch
+ : proto::or_<
+ proto::when<basic_mark_tag, push_back(proto::_visitor, mark_number(proto::_arg)) >
+ , proto::when<proto::negate<basic_mark_tag>, push_back(proto::_visitor, minus_one()) >
+ >
+ {};
+
+ struct SubMatchList
+ : proto::or_<SubMatch, proto::comma<SubMatchList, SubMatch> >
+ {};
+
+ template<typename Subs>
+ typename enable_if<
+ mpl::and_<proto::is_expr<Subs>, proto::matches<Subs, SubMatchList> >
+ , std::vector<int>
+ >::type
+ to_vector(Subs const &subs)
+ {
+ std::vector<int> subs_;
+ SubMatchList()(subs, 0, subs_);
+ return subs_;
+ }
+
+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+ #undef mark_number
+ #undef minus_one
+ #endif
+
+ // replace "Expr" with "keep(*State) >> Expr"
+ struct skip_primitives : proto::callable
+ {
+ template<typename Sig> struct result {};
+
+ template<typename This, typename Expr, typename State, typename Visitor>
+ struct result<This(Expr, State, Visitor)>
+ {
+ typedef
+ typename proto::shift_right<
+ typename proto::unary_expr<
+ keeper_tag
+ , typename proto::dereference<State>::type
+ >::type
+ , Expr
+ >::type
+ type;
+ };
+
+ template<typename Expr, typename State, typename Visitor>
+ typename result<void(Expr, State, Visitor)>::type
+ operator ()(Expr const &expr, State const &state, Visitor &) const
+ {
+ typedef typename result<void(Expr, State, Visitor)>::type type;
+ type that = {{{state}}, expr};
+ return that;
+ }
+ };
+
+ struct Primitives
+ : proto::or_<
+ proto::terminal<proto::_>
+ , proto::comma<proto::_, proto::_>
+ , proto::subscript<proto::terminal<set_initializer>, proto::_>
+ , proto::assign<proto::terminal<set_initializer>, proto::_>
+ , proto::assign<proto::terminal<attribute_placeholder<proto::_> >, proto::_>
+ , proto::complement<Primitives>
+ >
+ {};
+
+ struct SkipGrammar
+ : proto::or_<
+ proto::when<Primitives, skip_primitives>
+ , proto::assign<proto::terminal<mark_placeholder>, SkipGrammar> // don't "skip" mark tags
+ , proto::subscript<SkipGrammar, proto::_> // don't put skips in actions
+ , proto::binary_expr<modifier_tag, proto::_, SkipGrammar> // don't skip modifiers
+ , proto::unary_expr<lookbehind_tag, proto::_> // don't skip lookbehinds
+ , proto::nary_expr<proto::_, proto::vararg<SkipGrammar> > // everything else is fair game!
+ >
+ {};
+
+ template<typename Skip>
+ struct skip_directive
+ {
+ typedef typename proto::result_of::as_expr<Skip>::type skip_type;
+
+ skip_directive(Skip const &skip)
+ : skip_(proto::as_expr(skip))
+ {}
+
+ template<typename Sig>
+ struct result;
+
+ template<typename This, typename Expr>
+ struct result<This(Expr)>
+ {
+ typedef
+ typename proto::shift_right<
+ typename SkipGrammar::result<void(
+ typename proto::result_of::as_expr<Expr>::type
+ , skip_type
+ , mpl::void_
+ )>::type
+ , typename proto::dereference<skip_type>::type
+ >::type
+ type;
+ };
+
+ template<typename Expr>
+ typename result<skip_directive(Expr)>::type
+ operator ()(Expr const &expr) const
+ {
+ mpl::void_ ignore;
+ typedef typename result<skip_directive(Expr)>::type result_type;
+ result_type result = {SkipGrammar()(proto::as_expr(expr), this->skip_, ignore), {skip_}};
+ return result;
+ }
+
+ private:
+ skip_type skip_;
+ };
 
 /*
 ///////////////////////////////////////////////////////////////////////////////
@@ -665,6 +781,48 @@
 proto::terminal<detail::attribute_placeholder<mpl::int_<8> > >::type const a8 = {{{}}};
 proto::terminal<detail::attribute_placeholder<mpl::int_<9> > >::type const a9 = {{{}}};
 
+///////////////////////////////////////////////////////////////////////////////
+/// \brief Specify which characters to skip when matching a regex.
+///
+/// <tt>skip()</tt> instructs the regex engine to skip certain characters when matching
+/// a regex. It is most useful for writing regexes that ignore whitespace.
+/// For instance, the following specifies a regex that skips whitespace and
+/// punctuation:
+///
+/// \code
+/// // A sentence is one or more words separated by whitespace
+/// // and punctuation.
+/// sregex word = +alpha;
+/// sregex sentence = skip(set[_s | punct])( +word );
+/// \endcode
+///
+/// The way it works in the above example is to insert
+/// <tt>keep(*set[_s | punct])</tt> before each primitive within the regex.
+/// A "primitive" includes terminals like strings, character sets and nested
+/// regexes. A final <tt>*set[_s | punct]</tt> is added to the end of the
+/// regex. The regex <tt>sentence</tt> specified above is equivalent to
+/// the following:
+///
+/// \code
+/// sregex sentence = +( keep(*set[_s | punct]) >> word )
+/// >> *set[_s | punct];
+/// \endcode
+///
+/// \attention Skipping does not affect how nested regexes are handled because
+/// they are treated atomically. String literals are also treated
+/// atomically; that is, no skipping is done within a string literal. So
+/// <tt>skip(_s)("this that")</tt> is not the same as
+/// <tt>skip(_s)("this" >> as_xpr("that"))</tt>. The first will only match
+/// when there is only one space between "this" and "that". The second will
+/// skip any and all whitespace between "this" and "that".
+///
+/// \param skip A regex that specifies which characters to skip.
+template<typename Skip>
+detail::skip_directive<Skip> skip(Skip const &skip)
+{
+ return detail::skip_directive<Skip>(skip);
+}
+
 namespace detail
 {
     inline void ignore_unused_regex_primitives()

Modified: branches/proto/v3/boost/xpressive/regex_token_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_token_iterator.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_token_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains the definition of regex_token_iterator, and STL-compatible iterator
 /// for tokenizing a string using a regular expression.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -39,13 +39,14 @@
         BidiIter begin
       , BidiIter cur
       , BidiIter end
+ , BidiIter next_search
       , basic_regex<BidiIter> const *rex
       , regex_constants::match_flag_type flags = regex_constants::match_default
       , std::vector<int> subs = std::vector<int>(1, 0)
       , int n = -2
       , bool not_null = false
     )
- : iter_(begin, cur, end, rex, flags, not_null)
+ : iter_(begin, cur, end, next_search, rex, flags, not_null)
       , result_()
       , n_((-2 == n) ? (int)subs.size() - 1 : n)
       , subs_()
@@ -158,7 +159,7 @@
       , BidiIter end
       , basic_regex<BidiIter> const &rex
     )
- : impl_(new impl_type_(begin, begin, end, &rex))
+ : impl_(new impl_type_(begin, begin, end, begin, &rex))
     {
         this->next_();
     }
@@ -176,7 +177,7 @@
       , basic_regex<BidiIter> const &rex
       , detail::let_<LetExpr> const &args
     )
- : impl_(new impl_type_(begin, begin, end, &rex))
+ : impl_(new impl_type_(begin, begin, end, begin, &rex))
     {
         detail::bind_args(args, this->impl_->iter_.what_);
         this->next_();
@@ -198,7 +199,7 @@
       , Subs const &subs
       , regex_constants::match_flag_type flags = regex_constants::match_default
     )
- : impl_(new impl_type_(begin, begin, end, &rex, flags, detail::to_vector(subs)))
+ : impl_(new impl_type_(begin, begin, end, begin, &rex, flags, detail::to_vector(subs)))
     {
         this->next_();
     }
@@ -221,7 +222,7 @@
       , detail::let_<LetExpr> const &args
       , regex_constants::match_flag_type flags = regex_constants::match_default
     )
- : impl_(new impl_type_(begin, begin, end, &rex, flags, detail::to_vector(subs)))
+ : impl_(new impl_type_(begin, begin, end, begin, &rex, flags, detail::to_vector(subs)))
     {
         detail::bind_args(args, this->impl_->iter_.what_);
         this->next_();
@@ -307,6 +308,7 @@
                 this->impl_->iter_.state_.begin_
               , this->impl_->iter_.state_.cur_
               , this->impl_->iter_.state_.end_
+ , this->impl_->iter_.state_.next_search_
               , this->impl_->iter_.rex_
               , this->impl_->iter_.flags_
               , this->impl_->subs_

Modified: branches/proto/v3/boost/xpressive/regex_traits.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/regex_traits.hpp (original)
+++ branches/proto/v3/boost/xpressive/regex_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Includes the C regex traits or the CPP regex traits header file depending on the
 /// BOOST_XPRESSIVE_USE_C_TRAITS macro.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/sub_match.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/sub_match.hpp (original)
+++ branches/proto/v3/boost/xpressive/sub_match.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Contains the definition of the class template sub_match\<\>
 /// and associated helper functions
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/traits/c_regex_traits.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/traits/c_regex_traits.hpp (original)
+++ branches/proto/v3/boost/xpressive/traits/c_regex_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /// wrapper for the C locale functions that can be used to customize the
 /// behavior of static and dynamic regexes.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/traits/cpp_regex_traits.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/traits/cpp_regex_traits.hpp (original)
+++ branches/proto/v3/boost/xpressive/traits/cpp_regex_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /// wrapper for std::locale that can be used to customize the behavior of
 /// static and dynamic regexes.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -24,6 +24,7 @@
 #include <boost/assert.hpp>
 #include <boost/integer.hpp>
 #include <boost/mpl/assert.hpp>
+#include <boost/detail/workaround.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/xpressive/detail/detail_fwd.hpp>
 #include <boost/xpressive/detail/utility/literals.hpp>
@@ -118,6 +119,8 @@
     // Reserve some bits for the implementation
     #if defined(__GLIBCXX__)
     umaskex_t const std_ctype_reserved = 0x8000;
+ #elif defined(_CPPLIB_VER) && defined(BOOST_WINDOWS)
+ umaskex_t const std_ctype_reserved = 0x8200;
     #else
     umaskex_t const std_ctype_reserved = 0;
     #endif

Modified: branches/proto/v3/boost/xpressive/traits/detail/c_ctype.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/traits/detail/c_ctype.hpp (original)
+++ branches/proto/v3/boost/xpressive/traits/detail/c_ctype.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // c_ctype.hpp
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/traits/null_regex_traits.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/traits/null_regex_traits.hpp (original)
+++ branches/proto/v3/boost/xpressive/traits/null_regex_traits.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 /// stub regex traits implementation that can be used by static and dynamic
 /// regexes for searching non-character data.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/xpressive.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/xpressive.hpp (original)
+++ branches/proto/v3/boost/xpressive/xpressive.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Includes all of xpressive including support for both static and
 /// dynamic regular expressions.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/xpressive_dynamic.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/xpressive_dynamic.hpp (original)
+++ branches/proto/v3/boost/xpressive/xpressive_dynamic.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file xpressive_dynamic.hpp
 /// Includes everything you need to write and use dynamic regular expressions.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/xpressive_fwd.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/xpressive_fwd.hpp (original)
+++ branches/proto/v3/boost/xpressive/xpressive_fwd.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file xpressive_fwd.hpp
 /// Forward declarations for all of xpressive's public data types.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/xpressive_static.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/xpressive_static.hpp (original)
+++ branches/proto/v3/boost/xpressive/xpressive_static.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /// Includes everything you need to write static regular expressions and use
 /// them.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/boost/xpressive/xpressive_typeof.hpp
==============================================================================
--- branches/proto/v3/boost/xpressive/xpressive_typeof.hpp (original)
+++ branches/proto/v3/boost/xpressive/xpressive_typeof.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /// \file xpressive_typeof.hpp
 /// Type registrations so that xpressive can be used with the Boost.Typeof library.
 //
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -24,6 +24,8 @@
 
 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
 
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::bool_, (bool))
+
 ///////////////////////////////////////////////////////////////////////////////
 // Misc.
 //
@@ -70,6 +72,7 @@
 BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::epsilon_matcher)
 BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::true_matcher)
 BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::end_matcher)
+BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::independent_end_matcher)
 BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::any_matcher)
 BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::assert_bos_matcher)
 BOOST_TYPEOF_REGISTER_TYPE(boost::xpressive::detail::assert_eos_matcher)
@@ -81,10 +84,10 @@
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::assert_bol_matcher, (typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::assert_eol_matcher, (typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::literal_matcher, (typename)(typename)(typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::string_matcher, (typename)(bool))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::string_matcher, (typename)(typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::charset_matcher, (typename)(typename)(typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::logical_newline_matcher, (typename))
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::mark_matcher, (typename)(bool))
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::mark_matcher, (typename)(typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::repeat_end_matcher, (typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::alternate_matcher, (typename)(typename))
 BOOST_TYPEOF_REGISTER_TEMPLATE(boost::xpressive::detail::optional_matcher, (typename)(typename))

Modified: branches/proto/v3/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/doc/Jamfile.v2 (original)
+++ branches/proto/v3/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -39,6 +39,7 @@
     <dependency>../libs/interprocess/doc//interprocess
     <dependency>../libs/intrusive/doc//autodoc.xml
     <dependency>../libs/intrusive/doc//intrusive
+ <dependency>../libs/unordered/doc//unordered
 
     ## Add path references to the QuickBook generated docs...
 
@@ -55,6 +56,7 @@
     <implicit-dependency>../libs/mpi/doc//mpi
     <implicit-dependency>../libs/interprocess/doc//interprocess
     <implicit-dependency>../libs/intrusive/doc//intrusive
+ <implicit-dependency>../libs/unordered/doc//unordered
 
     <xsl:param>boost.libraries=../../libs/libraries.htm
 

Deleted: branches/proto/v3/doc/html/boost_math.html
==============================================================================
--- branches/proto/v3/doc/html/boost_math.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <!-- Copyright (C) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
-
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt) -->
- <title>Redirect to generated documentation</title>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_math.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_math.html
- </body>
-</html>
-
-
-

Deleted: branches/proto/v3/doc/html/boost_typetraits.html
==============================================================================
--- branches/proto/v3/doc/html/boost_typetraits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,17 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <!-- Copyright (C) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
-
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt) -->
- <title>Redirect to generated documentation</title>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_typetraits.html
- </body>
-</html>
-

Modified: branches/proto/v3/doc/html/boostbook.css
==============================================================================
--- branches/proto/v3/doc/html/boostbook.css (original)
+++ branches/proto/v3/doc/html/boostbook.css 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -372,6 +372,10 @@
 
     @media screen
     {
+ body {
+ background-color: #FFFFFF;
+ }
+
     /* Links */
         a
         {

Deleted: branches/proto/v3/doc/html/functionN.html
==============================================================================
--- branches/proto/v3/doc/html/functionN.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,16 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <!-- Copyright (C) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
-
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt) -->
- <title>Redirect to generated documentation</title>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/functionN.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/functionN.html
- </body>
-</html>

Modified: branches/proto/v3/doc/src/boost.xml
==============================================================================
--- branches/proto/v3/doc/src/boost.xml (original)
+++ branches/proto/v3/doc/src/boost.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -709,6 +709,8 @@
      </libraryinfo>
    </library>
 
+ <xi:include href="unordered.xml"/>
+
    <library name="Utility" dirname="utility" html-only="1">
      <libraryinfo>
        <author>

Modified: branches/proto/v3/doc/src/boostbook.css
==============================================================================
--- branches/proto/v3/doc/src/boostbook.css (original)
+++ branches/proto/v3/doc/src/boostbook.css 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -372,6 +372,10 @@
 
     @media screen
     {
+ body {
+ background-color: #FFFFFF;
+ }
+
     /* Links */
         a
         {

Modified: branches/proto/v3/libs/accumulators/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/accumulators/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/accumulators/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,6 +2,8 @@
 # subject to the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
+import os ;
+import common ;
 import doxygen ;
 import quickbook ;
 
@@ -46,6 +48,49 @@
         <reftitle>"Accumulators Framework Reference"
     ;
 
+# Generate the HTML form of the stats documentation, as this
+# causes Doxygen to generate .png images for the LaTeX formulas
+# embedded in the doc comments.
+doxygen statsdoc.html
+ :
+ [ glob ../../../boost/accumulators/statistics*.hpp ]
+ [ glob ../../../boost/accumulators/statistics/*.hpp ]
+ [ glob ../../../boost/accumulators/statistics/variates/*.hpp ]
+ ;
+
+if [ os.name ] = NT
+{
+ CP = copy /y ;
+ MKDIR = mkdir ;
+ FROM = \\..\\..\\html\\statsdoc\\*.png ;
+ TOHTML = .\\html\\images\\accumulators ;
+ TOPDF = \\images\\accumulators ;
+}
+else
+{
+ CP = cp ;
+ MKDIR = mkdir -p ;
+ FROM = /../../html/statsdoc/*.png ;
+ TOHTML = ./html/images/accumulators ;
+ TOPDF = /images/accumulators ;
+}
+
+actions copy-latex-pngs
+{
+ $(MKDIR) $(TOHTML)
+ $(MKDIR) $(<:D)$(TOPDF)
+ $(CP) $(<:D)$(FROM) $(TOHTML)
+ $(CP) $(<:D)$(FROM) $(<:D)$(TOPDF)
+ echo "Stamped" > "$(<)"
+}
+
+# This causes the png files built above to be copied
+# into the html/images/accumulators directory.
+make statsdoclatex.tag
+ : statsdoc.html
+ : @copy-latex-pngs
+ ;
+
 doxygen statsdoc
     :
         [ glob ../../../boost/accumulators/statistics*.hpp ]
@@ -67,8 +112,10 @@
         <doxygen:param>EXPAND_ONLY_PREDEF=YES
         <doxygen:param>SEARCH_INCLUDES=NO
         <doxygen:param>TAGFILES=accumulators.tag
+ <xsl:param>boost.doxygen.formuladir=images/accumulators/
         <reftitle>"Statistics Library Reference"
         <dependency>tagfile
+ <dependency>statsdoclatex.tag
     ;
 
 doxygen opdoc
@@ -125,9 +172,6 @@
         <xsl:param>toc.max.depth=4
         <xsl:param>toc.section.depth=4
         <xsl:param>chunk.section.depth=2
- <dependency>accdoc
- <dependency>statsdoc
- <dependency>opdoc
     ;
 
 boostbook standalone
@@ -138,4 +182,7 @@
         <xsl:param>toc.max.depth=4
         <xsl:param>toc.section.depth=4
         <xsl:param>chunk.section.depth=2
+ <dependency>accdoc
+ <dependency>statsdoc
+ <dependency>opdoc
     ;

Modified: branches/proto/v3/libs/accumulators/doc/accumulators.qbk
==============================================================================
--- branches/proto/v3/libs/accumulators/doc/accumulators.qbk (original)
+++ branches/proto/v3/libs/accumulators/doc/accumulators.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,7 +34,7 @@
 [def _boost_ [@http://www.boost.org Boost]]
 [def _mpl_ [@../../libs/mpl MPL]]
 [def _mpl_lambda_expression_ [@../../libs/mpl/doc/refmanual/lambda-expression.html MPL Lambda Expression]]
-[def _parameters_ [@../../libs/parameters Boost.Parameters]]
+[def _parameter_ [@../../libs/parameter Boost.Parameter]]
 [def _accumulator_set_ [classref boost::accumulators::accumulator_set `accumulator_set<>`]]
 [def _accumulator_base_ [classref boost::accumulators::accumulator_base `accumulator_base`]]
 [def _depends_on_ [classref boost::accumulators::depends_on `depends_on<>`]]
@@ -342,7 +342,7 @@
 
 Some accumulators need initialization parameters. In addition, perhaps some auxiliary
 information needs to be passed into the _accumulator_set_ along with each sample.
-Boost.Accumulators handles these cases with named parameters from the _parameters_
+Boost.Accumulators handles these cases with named parameters from the _parameter_
 library.
 
 For example, consider the _tail_ and _tail_variate_ features. _tail_ keeps
@@ -354,7 +354,7 @@
     // Define a feature for tracking covariate data
     typedef tag::tail_variate< int, tag::covariate1, left > my_tail_variate_tag;
 
- // This will calculate the left tail and my_order_variate for N == 2
+ // This will calculate the left tail and my_tail_variate_tag for N == 2
     // using the tag::tail<left>::cache_size named parameter
     accumulator_set< double, features< my_tail_variate_tag > > acc(
         tag::tail<left>::cache_size = 2 );
@@ -367,7 +367,7 @@
     acc( 4.5, covariate1 = -45 );
 
     // Define an extractor for the my_tail_variate_tag feature
- extractor< my_tail_variate_tag > my_order_variate;
+ extractor< my_tail_variate_tag > my_tail_variate;
     
     // Write the tail statistic to std::cout. This will print "4.5, 3.4, "
     std::ostream_iterator< double > dout( std::cout, ", " );
@@ -375,7 +375,7 @@
     
     // Write the tail_variate statistic to std::cout. This will print "-45, 34, "
     std::ostream_iterator< int > iout( std::cout, ", " );
- std::copy( my_order_variate( acc ).begin(), my_order_variate( acc ).end(), iout );
+ std::copy( my_tail_variate( acc ).begin(), my_tail_variate( acc ).end(), iout );
 
 There are several things to note about the code above. First, notice that we didn't have
 to request that the _tail_ feature be calculated. That is implicit because the _tail_variate_
@@ -388,7 +388,7 @@
 We also use a named parameter to pass covariate data into the accumulator set along with
 the samples. As with the constructor parameters, all parameters to the accumulate function
 are made available to all the accumulators in the set. In this case, only the accumulator
-for the `my_order_variate` feature would be interested in the value of the `covariate1` named
+for the `my_tail_variate` feature would be interested in the value of the `covariate1` named
 parameter.
 
 We can make one final observation about the example above. Since _tail_ and _tail_variate_
@@ -524,7 +524,7 @@
     }}}
 
 Much of the above should be pretty self-explanitory, except for the use of argument packs
-which may be confusing if you have never used the _parameters_ library before. An argument
+which may be confusing if you have never used the _parameter_ library before. An argument
 pack is a cluster of values, each of which can be accessed with a key. So `args[sample]`
 extracts from the pack the value associated with the `sample` key. And the cryptic
 `args[sample | Sample()]` evaluates to the value associated with the `sample` key if it
@@ -538,10 +538,6 @@
                              dropped. See the section on
                              [link accumulators.user_s_guide.the_accumulators_framework.extending_the_accumulators_framework.defining_a_new_accumulator.droppable_accumulators
                               Droppable Accumulators].]]
-[[[^post_construct(Args)]] [An action to be executed after all accumulators in the
- accumulator set have been constructed. This is useful when the
- successful initialization of one accumulator depends on another
- accumulator.]]
 ]
 
 [h3 Accessing Other Accumulators in the Set]
@@ -578,12 +574,9 @@
  accumulators like `mean_accumulator` above need not define one.]
 
 All the member functions that accept an argument pack have access to the enclosing
-_accumulator_set_ via the `accumulator` key, with one exception: the constructor. The
-order in which accumulators within the set are constructed is unspecified. As a result,
-it would not be safe for one accumulator to access another during construction. If there are
-initialization dependencies between accumulators in the set, those can be managed with
-`post_construct(Args)`. The _accumulator_set_ post-constructs all its contained accumulators,
-in an order that satisfies the dependency relationships between them.
+_accumulator_set_ via the `accumulator` key, including the constructor. The
+accumulators within the set are constructed in an order determined by their interdependencies.
+As a result, it is safe for an accumulator to access one on which it depends during construction.
 
 [h3 Infix Notation and the Numeric Operators Sub-Library]
 
@@ -621,7 +614,7 @@
     // add more data
     acc(3.0);
     
- // This will display "3" and "1.5"
+ // This will display "6" and "1.5"
     std::cout << sum(acc) << '\n' << mean(acc);
 
 Dropping an accumulator essentially freezes it in its current state. It no longer gets
@@ -643,9 +636,7 @@
     {
         template<typename Args>
         droppable_accumulator(Args const & args)
- : droppable_accumulator_base<
- with_cached_result<impl::mean_accumulator<Sample> >
- >(args)
+ : droppable_accumulator::base(args)
         {
         }
     };
@@ -822,7 +813,7 @@
 [h2 Accumulator Concept]
 
 In the following table, `Acc` is the type of an accumulator, `acc` and `acc2` are objects of type
-`Acc`, and `args` is the name of an argument pack from the _parameters_ library.
+`Acc`, and `args` is the name of an argument pack from the _parameter_ library.
 
 [table Accumulator Requirements
     [[[*Expression]] [[*Return type]] [[*Assertion / Note /
@@ -830,13 +821,11 @@
     [[`Acc::result_type`] [['implementation
                                        defined]] [The type returned by `Acc::result()`.]]
     [[`Acc acc(args)`] [none] [Construct from an argument pack.]]
- [[`Acc acc(acc2)`] [none] [Pre: `acc2` has been post-constructed.
- Post: `acc.result(args)` is equivalent
+ [[`Acc acc(acc2)`] [none] [Post: `acc.result(args)` is equivalent
                                                              to `acc2.result(args)`]]
- [[`acc(args)`] [['unspecified]] [Pre: `acc` has been post-constructed.]]
- [[`acc.post_construct(args)`] [['unspecified]] [Run `acc`'s post-constructor.]]
- [[`acc.on_drop(args)`] [['unspecified]] [Pre: `acc` has been post-constructed.]]
- [[`acc.result(args)`] [`Acc::result_type`] [Pre: `acc` has been post-constructed.]]
+ [[`acc(args)`] [['unspecified]] []]
+ [[`acc.on_drop(args)`] [['unspecified]] []]
+ [[`acc.result(args)`] [`Acc::result_type`] []]
 ]
 
 [h2 Feature Concept]

Modified: branches/proto/v3/libs/accumulators/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/accumulators/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/accumulators/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,9 +20,10 @@
       <library>/boost/test//boost_unit_test_framework
       <link>static
       <include>../../..
- <toolset>msvc-8.0:<define>_SCL_SECURE_NO_DEPRECATE
- # MSVC-8's iterator debugging causes some tests to run forever.
- <toolset>msvc-8.0:<iterator_debugging>off
+ <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
+ # MSVC's iterator debugging causes some tests to run forever.
+ <toolset>msvc:<iterator_debugging>off
+ <toolset>intel-win:<iterator_debugging>off
     ;
 
 test-suite "accumulators"

Modified: branches/proto/v3/libs/accumulators/test/covariance.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/covariance.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/covariance.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,12 +24,12 @@
     std::vector<double> dummy;
     dummy.push_back(0);
     dummy.push_back(0);
-
+
     accumulator_set<double, stats<tag::covariance<double, tag::covariate1> > > acc;
     accumulator_set<std::vector<double>, stats<tag::covariance<double, tag::covariate1> > > acc2(sample = dummy);
     accumulator_set<double, stats<tag::covariance<std::vector<double>, tag::covariate1> > > acc3(covariate1 = dummy);
     accumulator_set<std::vector<double>, stats<tag::covariance<std::vector<double>, tag::covariate1> > > acc4(sample = dummy, covariate1 = dummy);
-
+
     std::vector<double> a;
     a.push_back(1.);
     a.push_back(2.);
@@ -42,7 +42,7 @@
     std::vector<double> d;
     d.push_back(4.);
     d.push_back(2.);
-
+
     // double - double
     {
         acc(1., covariate1 = 2.);
@@ -50,7 +50,7 @@
         acc(2., covariate1 = 3.);
         acc(6., covariate1 = 1.);
     }
-
+
     // vector - double
     {
         acc2(a, covariate1 = 1.);
@@ -58,7 +58,7 @@
         acc2(c, covariate1 = 2.);
         acc2(d, covariate1 = 6.);
     }
-
+
     // double - vector
     {
         acc3(1., covariate1 = a);
@@ -66,7 +66,7 @@
         acc3(2., covariate1 = c);
         acc3(6., covariate1 = d);
     }
-
+
     // vector - vector
     {
         acc4(a, covariate1 = b);
@@ -74,9 +74,9 @@
         acc4(a, covariate1 = c);
         acc4(d, covariate1 = b);
     }
-
+
     double epsilon = 1e-6;
-
+
     BOOST_CHECK_CLOSE((covariance(acc)), -1.75, epsilon);
     BOOST_CHECK_CLOSE((covariance(acc2))[0], 1.75, epsilon);
     BOOST_CHECK_CLOSE((covariance(acc2))[1], -1.125, epsilon);

Modified: branches/proto/v3/libs/accumulators/test/extended_p_square.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/extended_p_square.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/extended_p_square.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -53,7 +53,7 @@
     BOOST_CHECK_CLOSE(extended_p_square(acc)[0], probs[0], 25);
     BOOST_CHECK_CLOSE(extended_p_square(acc)[1], probs[1], 10);
     BOOST_CHECK_CLOSE(extended_p_square(acc)[2], probs[2], 5);
-
+
     for (std::size_t i=3; i<probs.size(); ++i)
     {
         BOOST_CHECK_CLOSE(extended_p_square(acc)[i], probs[i], epsilon);

Modified: branches/proto/v3/libs/accumulators/test/extended_p_square_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/extended_p_square_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/extended_p_square_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -53,7 +53,7 @@
     accumulator_t_weighted acc_weighted(extended_p_square_probabilities = probs);
     accumulator_t_quadratic acc2(extended_p_square_probabilities = probs);
     accumulator_t_weighted_quadratic acc_weighted2(extended_p_square_probabilities = probs);
-
+
     for (int i=0; i<10000; ++i)
     {
         double sample = rng();
@@ -62,7 +62,7 @@
         acc_weighted(sample, weight = 1.);
         acc_weighted2(sample, weight = 1.);
     }
-
+
     for (std::size_t i = 0; i < probs.size() - 1; ++i)
     {
         BOOST_CHECK_CLOSE(

Modified: branches/proto/v3/libs/accumulators/test/kurtosis.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/kurtosis.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/kurtosis.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,29 +26,29 @@
 {
     // tolerance in %
     // double epsilon = 1;
-
+
     accumulator_set<double, stats<tag::kurtosis > > acc1;
     accumulator_set<int, stats<tag::kurtosis > > acc2;
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         acc1(normal());
     }
-
+
     // This check fails because epsilon is relative and not absolute
- // BOOST_CHECK_CLOSE( kurtosis(acc1), 0., epsilon );
-
+ // BOOST_CHECK_CLOSE( kurtosis(acc1), 0., epsilon );
+
     acc2(2);
     acc2(7);
     acc2(4);
     acc2(9);
     acc2(3);
-
+
     BOOST_CHECK_EQUAL( mean(acc2), 5 );
     BOOST_CHECK_EQUAL( moment<2>(acc2), 159./5. );
     BOOST_CHECK_EQUAL( moment<3>(acc2), 1171./5. );

Modified: branches/proto/v3/libs/accumulators/test/mean.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/mean.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/mean.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -38,7 +38,7 @@
     BOOST_CHECK_EQUAL(1u, count(acc));
     BOOST_CHECK_EQUAL(1, sum(acc));
     BOOST_CHECK_CLOSE(3., (mean_of_variates<int, tag::covariate1>(acc)), 1e-5);
-
+
     acc(0, covariate1 = 4);
     BOOST_CHECK_CLOSE(0.5, mean(acc), 1e-5);
     BOOST_CHECK_EQUAL(2u, count(acc));

Modified: branches/proto/v3/libs/accumulators/test/median.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/median.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/median.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,13 +24,13 @@
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(mu,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     accumulator_set<double, stats<tag::median(with_p_square_quantile) > > acc;
- accumulator_set<double, stats<tag::median(with_density) > >
+ accumulator_set<double, stats<tag::median(with_density) > >
         acc_dens( density_cache_size = 10000, density_num_bins = 1000 );
- accumulator_set<double, stats<tag::median(with_p_square_cumulative_distribution) > >
+ accumulator_set<double, stats<tag::median(with_p_square_cumulative_distribution) > >
         acc_cdist( p_square_cumulative_distribution_num_cells = 100 );
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         double sample = normal();
@@ -38,7 +38,7 @@
         acc_dens(sample);
         acc_cdist(sample);
     }
-
+
     BOOST_CHECK_CLOSE(1., median(acc), 1.);
     BOOST_CHECK_CLOSE(1., median(acc_dens), 1.);
     BOOST_CHECK_CLOSE(1., median(acc_cdist), 3.);

Modified: branches/proto/v3/libs/accumulators/test/p_square_cumulative_distribution.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/p_square_cumulative_distribution.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/p_square_cumulative_distribution.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -43,28 +43,28 @@
     double epsilon = 3;
 
     typedef accumulator_set<double, stats<tag::p_square_cumulative_distribution> > accumulator_t;
-
+
     accumulator_t acc(p_square_cumulative_distribution_num_cells = 100);
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         acc(normal());
     }
-
+
     typedef iterator_range<std::vector<std::pair<double, double> >::iterator > histogram_type;
     histogram_type histogram = p_square_cumulative_distribution(acc);
-
+
     for (std::size_t i = 0; i < histogram.size(); ++i)
- {
+ {
         // problem with small results: epsilon is relative (in percent), not absolute!
- if ( histogram[i].second > 0.001 )
+ if ( histogram[i].second > 0.001 )
             BOOST_CHECK_CLOSE( 0.5 * (1.0 + my_erf( histogram[i].first / sqrt(2.0) )), histogram[i].second, epsilon );
- }
+ }
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/p_square_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/p_square_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/p_square_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,10 +28,10 @@
 
     // tolerance in %
     double epsilon = 1;
-
+
     // a random number generator
     boost::lagged_fibonacci607 rng;
-
+
     accumulator_t acc0(quantile_probability = 0.001);
     accumulator_t acc1(quantile_probability = 0.01 );
     accumulator_t acc2(quantile_probability = 0.1 );
@@ -41,7 +41,7 @@
     accumulator_t acc6(quantile_probability = 0.9 );
     accumulator_t acc7(quantile_probability = 0.99 );
     accumulator_t acc8(quantile_probability = 0.999);
-
+
     for (int i=0; i<100000; ++i)
     {
         double sample = rng();
@@ -55,7 +55,7 @@
         acc7(sample);
         acc8(sample);
     }
-
+
     BOOST_CHECK_CLOSE( p_square_quantile(acc0), 0.001, 15*epsilon );
     BOOST_CHECK_CLOSE( p_square_quantile(acc1), 0.01 , 5*epsilon );
     BOOST_CHECK_CLOSE( p_square_quantile(acc2), 0.1 , epsilon );
@@ -64,7 +64,7 @@
     BOOST_CHECK_CLOSE( p_square_quantile(acc5), 0.75 , epsilon );
     BOOST_CHECK_CLOSE( p_square_quantile(acc6), 0.9 , epsilon );
     BOOST_CHECK_CLOSE( p_square_quantile(acc7), 0.99 , epsilon );
- BOOST_CHECK_CLOSE( p_square_quantile(acc8), 0.999, epsilon );
+ BOOST_CHECK_CLOSE( p_square_quantile(acc8), 0.999, epsilon );
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/pot_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/pot_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/pot_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,7 +34,7 @@
     boost::exponential_distribution<> lambda(1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::exponential_distribution<> > exponential(rng, lambda);
-
+
     accumulator_set<double, stats<tag::pot_quantile<right>(with_threshold_value)> > acc1(
         pot_threshold_value = 3.
     );
@@ -49,7 +49,7 @@
         left_tail_cache_size = 2000
       , pot_threshold_probability = 0.01
     );
-
+
     accumulator_set<double, stats<tag::pot_quantile<right>(with_threshold_value)> > acc5(
         pot_threshold_value = 5.
     );
@@ -57,7 +57,7 @@
         right_tail_cache_size = 2000
       , pot_threshold_probability = 0.995
     );
-
+
     for (std::size_t i = 0; i < 100000; ++i)
     {
         double sample = normal();
@@ -66,21 +66,21 @@
         acc3(sample);
         acc4(sample);
     }
-
+
     for (std::size_t i = 0; i < 100000; ++i)
     {
         double sample = exponential();
         acc5(sample);
         acc6(sample);
     }
-
+
     BOOST_CHECK_CLOSE( quantile(acc1, quantile_probability = 0.999), 3.090232, epsilon );
- BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.999), 3.090232, epsilon );
+ BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.999), 3.090232, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc3, quantile_probability = 0.001), -3.090232, epsilon );
- BOOST_CHECK_CLOSE( quantile(acc4, quantile_probability = 0.001), -3.090232, epsilon );
-
+ BOOST_CHECK_CLOSE( quantile(acc4, quantile_probability = 0.001), -3.090232, epsilon );
+
     BOOST_CHECK_CLOSE( quantile(acc5, quantile_probability = 0.999), 6.908, epsilon );
- BOOST_CHECK_CLOSE( quantile(acc6, quantile_probability = 0.999), 6.908, epsilon );
+ BOOST_CHECK_CLOSE( quantile(acc6, quantile_probability = 0.999), 6.908, epsilon );
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/reference.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/reference.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/reference.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -52,9 +52,9 @@
 
     sum_acc(1);
     sum_acc(2); // sum is now 3 for both
-
- BOOST_CHECK_EQUAL(sum(acc_with_ref), sum(sum_acc));
- BOOST_CHECK_EQUAL(sum(acc_with_ref), 3);
+
+ BOOST_CHECK_EQUAL(sum(acc_with_ref), sum(sum_acc));
+ BOOST_CHECK_EQUAL(sum(acc_with_ref), 3);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -69,15 +69,15 @@
       , stats<
             tag::mean
             // make sum external and hold a reference to it
- , tag::external<tag::sum, my::tag::sum_acc, sum_acc_type>
+ , tag::external<tag::sum, my::tag::sum_acc, sum_acc_type>
>
> acc_with_ref(my::sum_acc = sum_acc); // initialize the reference sum
 
     sum_acc(1);
     sum_acc(2); // sum is now 3 for both
-
- BOOST_CHECK_EQUAL(sum(acc_with_ref), sum(sum_acc));
- BOOST_CHECK_EQUAL(sum(acc_with_ref), 3);
+
+ BOOST_CHECK_EQUAL(sum(acc_with_ref), sum(sum_acc));
+ BOOST_CHECK_EQUAL(sum(acc_with_ref), 3);
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/skewness.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/skewness.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/skewness.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,29 +26,29 @@
 {
     // tolerance in %
     // double epsilon = 1;
-
+
     accumulator_set<double, stats<tag::skewness > > acc1;
     accumulator_set<int, stats<tag::skewness > > acc2;
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         acc1(normal());
     }
-
+
     // This check fails because epsilon is relative and not absolute
- // BOOST_CHECK_CLOSE( skewness(acc1), 0., epsilon );
-
+ // BOOST_CHECK_CLOSE( skewness(acc1), 0., epsilon );
+
     acc2(2);
     acc2(7);
     acc2(4);
     acc2(9);
     acc2(3);
-
+
     BOOST_CHECK_EQUAL( mean(acc2), 5 );
     BOOST_CHECK_EQUAL( moment<2>(acc2), 159./5. );
     BOOST_CHECK_EQUAL( moment<3>(acc2), 1171./5. );

Modified: branches/proto/v3/libs/accumulators/test/tail_mean.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/tail_mean.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/tail_mean.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,10 +27,10 @@
 {
     // tolerance in %
     double epsilon = 1;
-
+
     std::size_t n = 100000; // number of MC steps
     std::size_t c = 10000; // cache size
-
+
     typedef accumulator_set<double, stats<tag::non_coherent_tail_mean<right>, tag::tail_quantile<right> > > accumulator_t_right1;
     typedef accumulator_set<double, stats<tag::non_coherent_tail_mean<left>, tag::tail_quantile<left> > > accumulator_t_left1;
     typedef accumulator_set<double, stats<tag::coherent_tail_mean<right>, tag::tail_quantile<right> > > accumulator_t_right2;
@@ -40,10 +40,10 @@
     accumulator_t_left1 acc1( left_tail_cache_size = c );
     accumulator_t_right2 acc2( right_tail_cache_size = c );
     accumulator_t_left2 acc3( left_tail_cache_size = c );
-
+
     // a random number generator
     boost::lagged_fibonacci607 rng;
-
+
     for (std::size_t i = 0; i < n; ++i)
     {
         double sample = rng();
@@ -52,7 +52,7 @@
         acc2(sample);
         acc3(sample);
     }
-
+
     // check uniform distribution
     BOOST_CHECK_CLOSE( non_coherent_tail_mean(acc0, quantile_probability = 0.95), 0.975, epsilon );
     BOOST_CHECK_CLOSE( non_coherent_tail_mean(acc0, quantile_probability = 0.975), 0.9875, epsilon );

Modified: branches/proto/v3/libs/accumulators/test/tail_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/tail_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/tail_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,23 +26,23 @@
 {
     // tolerance in %
     double epsilon = 1;
-
+
     std::size_t n = 100000; // number of MC steps
     std::size_t c = 10000; // cache size
-
+
     typedef accumulator_set<double, stats<tag::tail_quantile<right> > > accumulator_t_right;
     typedef accumulator_set<double, stats<tag::tail_quantile<left> > > accumulator_t_left;
-
+
     accumulator_t_right acc0( right_tail_cache_size = c );
     accumulator_t_right acc1( right_tail_cache_size = c );
     accumulator_t_left acc2( left_tail_cache_size = c );
     accumulator_t_left acc3( left_tail_cache_size = c );
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     for (std::size_t i = 0; i < n; ++i)
     {
         double sample1 = rng();
@@ -52,7 +52,7 @@
         acc2(sample1);
         acc3(sample2);
     }
-
+
     // check uniform distribution
     BOOST_CHECK_CLOSE( quantile(acc0, quantile_probability = 0.95 ), 0.95, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc0, quantile_probability = 0.975), 0.975, epsilon );
@@ -62,13 +62,13 @@
     BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.025), 0.025, 2 );
     BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.01 ), 0.01, 3 );
     BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.001), 0.001, 20 );
-
+
     // check standard normal distribution
     BOOST_CHECK_CLOSE( quantile(acc1, quantile_probability = 0.975), 1.959963, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc1, quantile_probability = 0.999), 3.090232, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc3, quantile_probability = 0.025), -1.959963, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc3, quantile_probability = 0.001), -3.090232, epsilon );
-
+
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/tail_variate_means.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/tail_variate_means.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/tail_variate_means.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,20 +26,20 @@
 void test_stat()
 {
     std::size_t c = 5; // cache size
-
+
     typedef double variate_type;
     typedef std::vector<variate_type> variate_set_type;
-
+
     typedef accumulator_set<double, stats<tag::tail_variate_means<right, variate_set_type, tag::covariate1>(relative)> > accumulator_t1;
     typedef accumulator_set<double, stats<tag::tail_variate_means<right, variate_set_type, tag::covariate1>(absolute)> > accumulator_t2;
     typedef accumulator_set<double, stats<tag::tail_variate_means<left, variate_set_type, tag::covariate1>(relative)> > accumulator_t3;
     typedef accumulator_set<double, stats<tag::tail_variate_means<left, variate_set_type, tag::covariate1>(absolute)> > accumulator_t4;
-
+
     accumulator_t1 acc1( right_tail_cache_size = c );
     accumulator_t2 acc2( right_tail_cache_size = c );
     accumulator_t3 acc3( left_tail_cache_size = c );
     accumulator_t4 acc4( left_tail_cache_size = c );
-
+
     variate_set_type cov1, cov2, cov3, cov4, cov5;
     double c1[] = { 10., 20., 30., 40. }; // 100
     double c2[] = { 26., 4., 17., 3. }; // 50
@@ -50,32 +50,32 @@
     cov2.assign(c2, c2 + sizeof(c2)/sizeof(variate_type));
     cov3.assign(c3, c3 + sizeof(c3)/sizeof(variate_type));
     cov4.assign(c4, c4 + sizeof(c4)/sizeof(variate_type));
- cov5.assign(c5, c5 + sizeof(c5)/sizeof(variate_type));
-
+ cov5.assign(c5, c5 + sizeof(c5)/sizeof(variate_type));
+
     acc1(100., covariate1 = cov1);
     acc1( 50., covariate1 = cov2);
     acc1(200., covariate1 = cov3);
     acc1( 80., covariate1 = cov4);
     acc1( 20., covariate1 = cov5);
-
+
     acc2(100., covariate1 = cov1);
     acc2( 50., covariate1 = cov2);
     acc2(200., covariate1 = cov3);
     acc2( 80., covariate1 = cov4);
     acc2( 20., covariate1 = cov5);
-
+
     acc3(100., covariate1 = cov1);
     acc3( 50., covariate1 = cov2);
     acc3(200., covariate1 = cov3);
     acc3( 80., covariate1 = cov4);
     acc3( 20., covariate1 = cov5);
-
+
     acc4(100., covariate1 = cov1);
     acc4( 50., covariate1 = cov2);
     acc4(200., covariate1 = cov3);
     acc4( 80., covariate1 = cov4);
     acc4( 20., covariate1 = cov5);
-
+
     // check relative risk contributions
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc1, quantile_probability = 0.7).begin() ), 14./75. ); // (10 + 46) / 300 = 14/75
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc1, quantile_probability = 0.7).begin() + 1), 7./25. ); // (20 + 64) / 300 = 7/25
@@ -85,7 +85,7 @@
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc3, quantile_probability = 0.3).begin() + 1), 3./35. ); // ( 4 + 2) / 70 = 3/35
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc3, quantile_probability = 0.3).begin() + 2), 19./70. ); // (17 + 2) / 70 = 19/70
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc3, quantile_probability = 0.3).begin() + 3), 17./70. ); // ( 3 + 14) / 70 = 17/70
-
+
     // check absolute risk contributions
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc2, quantile_probability = 0.7).begin() ), 28 ); // (10 + 46) / 2 = 28
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc2, quantile_probability = 0.7).begin() + 1), 42 ); // (20 + 64) / 2 = 42
@@ -95,7 +95,7 @@
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc4, quantile_probability = 0.3).begin() + 1), 3 ); // ( 4 + 2) / 2 = 3
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc4, quantile_probability = 0.3).begin() + 2),9.5 ); // (17 + 2) / 2 = 9.5
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc4, quantile_probability = 0.3).begin() + 3),8.5 ); // ( 3 + 14) / 2 = 8.5
-
+
     // check relative risk contributions
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc1, quantile_probability = 0.9).begin() ), 23./100. ); // 46/200 = 23/100
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc1, quantile_probability = 0.9).begin() + 1), 8./25. ); // 64/200 = 8/25
@@ -105,7 +105,7 @@
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc3, quantile_probability = 0.1).begin() + 1), 1./10. ); // 2/ 20 = 1/10
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc3, quantile_probability = 0.1).begin() + 2), 1./10. ); // 2/ 20 = 1/10
     BOOST_CHECK_EQUAL( *(relative_tail_variate_means(acc3, quantile_probability = 0.1).begin() + 3), 7./10. ); // 14/ 20 = 7/10
-
+
     // check absolute risk contributions
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc2, quantile_probability = 0.9).begin() ), 46 ); // 46
     BOOST_CHECK_EQUAL( *(tail_variate_means(acc2, quantile_probability = 0.9).begin() + 1), 64 ); // 64

Modified: branches/proto/v3/libs/accumulators/test/variance.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/variance.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/variance.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -23,7 +23,7 @@
     // >> mean(samples)
     // ans = 3
     // >> sum(samples .* samples) / length(samples)
- // ans = 11
+ // ans = 11
     // >> sum(samples .* samples) / length(samples) - mean(samples)^2
     // ans = 2
 

Modified: branches/proto/v3/libs/accumulators/test/weighted_covariance.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_covariance.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_covariance.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,12 +24,12 @@
     std::vector<double> dummy;
     dummy.push_back(0);
     dummy.push_back(0);
-
+
     accumulator_set<double, stats<tag::weighted_covariance<double, tag::covariate1> >, double > acc;
     accumulator_set<std::vector<double>, stats<tag::weighted_covariance<double, tag::covariate1> >, double > acc2(sample = dummy);
     accumulator_set<double, stats<tag::weighted_covariance<std::vector<double>, tag::covariate1> >, double > acc3(covariate1 = dummy);
     accumulator_set<std::vector<double>, stats<tag::weighted_covariance<std::vector<double>, tag::covariate1> >, double > acc4(sample = dummy, covariate1 = dummy);
-
+
     std::vector<double> a;
     a.push_back(1.);
     a.push_back(2.);
@@ -42,15 +42,15 @@
     std::vector<double> d;
     d.push_back(4.);
     d.push_back(2.);
-
+
     // double - double
     {
         acc(1., weight = 1.1, covariate1 = 2.);
         acc(1., weight = 2.2, covariate1 = 4.);
         acc(2., weight = 3.3, covariate1 = 3.);
- acc(6., weight = 4.4, covariate1 = 1.);
+ acc(6., weight = 4.4, covariate1 = 1.);
     }
-
+
     // vector - double
     {
         acc2(a, weight = 1.1, covariate1 = 1.);
@@ -58,7 +58,7 @@
         acc2(c, weight = 3.3, covariate1 = 2.);
         acc2(d, weight = 4.4, covariate1 = 6.);
     }
-
+
     // double - vector
     {
         acc3(1., weight = 1.1, covariate1 = a);
@@ -66,7 +66,7 @@
         acc3(2., weight = 3.3, covariate1 = c);
         acc3(6., weight = 4.4, covariate1 = d);
     }
-
+
     // vector - vector
     {
         acc4(a, weight = 1.1, covariate1 = b);
@@ -74,9 +74,9 @@
         acc4(a, weight = 3.3, covariate1 = c);
         acc4(d, weight = 4.4, covariate1 = b);
     }
-
+
     double epsilon = 1e-6;
-
+
     BOOST_CHECK_CLOSE((weighted_covariance(acc)), -2.39, epsilon);
     BOOST_CHECK_CLOSE((weighted_covariance(acc2))[0], 1.93, epsilon);
     BOOST_CHECK_CLOSE((weighted_covariance(acc2))[1], -2.09, epsilon);

Modified: branches/proto/v3/libs/accumulators/test/weighted_extended_p_square.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_extended_p_square.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_extended_p_square.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,7 +28,7 @@
     typedef accumulator_set<double, stats<tag::weighted_extended_p_square>, double> accumulator_t;
 
     // problem with small results: epsilon is relative (in percent), not absolute
-
+
     // tolerance in %
     double epsilon = 1;
 
@@ -45,17 +45,17 @@
 
     double p1[] = {/*0.001,*/ 0.01, 0.1, 0.5, 0.9, 0.99, 0.999};
     probs_uniform.assign(p1, p1 + sizeof(p1) / sizeof(double));
-
+
     double p2[] = {0.001, 0.025};
     double p3[] = {0.975, 0.999};
     probs_normal1.assign(p2, p2 + sizeof(p2) / sizeof(double));
     probs_normal2.assign(p3, p3 + sizeof(p3) / sizeof(double));
-
+
     double p4[] = {-3.090232, -1.959963};
     double p5[] = {1.959963, 3.090232};
     probs_normal_exact1.assign(p4, p4 + sizeof(p4) / sizeof(double));
     probs_normal_exact2.assign(p5, p5 + sizeof(p5) / sizeof(double));
-
+
     accumulator_t acc_uniform(extended_p_square_probabilities = probs_uniform);
     accumulator_t acc_normal1(extended_p_square_probabilities = probs_normal1);
     accumulator_t acc_normal2(extended_p_square_probabilities = probs_normal2);
@@ -63,19 +63,19 @@
     for (std::size_t i = 0; i < 100000; ++i)
     {
         acc_uniform(rng(), weight = 1.);
-
+
         double sample1 = normal1();
         double sample2 = normal2();
         acc_normal1(sample1, weight = std::exp(-mu1 * (sample1 - 0.5 * mu1)));
         acc_normal2(sample2, weight = std::exp(-mu2 * (sample2 - 0.5 * mu2)));
     }
-
- // check for uniform distribution
+
+ // check for uniform distribution
     for (std::size_t i = 0; i < probs_uniform.size(); ++i)
     {
         BOOST_CHECK_CLOSE(weighted_extended_p_square(acc_uniform)[i], probs_uniform[i], epsilon);
     }
-
+
     // check for standard normal distribution
     for (std::size_t i = 0; i < probs_normal1.size(); ++i)
     {

Modified: branches/proto/v3/libs/accumulators/test/weighted_kurtosis.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_kurtosis.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_kurtosis.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,29 +26,29 @@
 {
     // tolerance in %
     // double epsilon = 1;
-
+
     accumulator_set<double, stats<tag::weighted_kurtosis>, double > acc1;
     accumulator_set<int, stats<tag::weighted_kurtosis>, int > acc2;
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         acc1(normal(), weight = rng());
     }
-
+
     // This check fails because epsilon is relative and not absolute
- // BOOST_CHECK_CLOSE( weighted_kurtosis(acc1), 0., epsilon );
-
+ // BOOST_CHECK_CLOSE( weighted_kurtosis(acc1), 0., epsilon );
+
     acc2(2, weight = 4);
     acc2(7, weight = 1);
     acc2(4, weight = 3);
     acc2(9, weight = 1);
     acc2(3, weight = 2);
-
+
     BOOST_CHECK_EQUAL( weighted_mean(acc2), 42./11. );
     BOOST_CHECK_EQUAL( weighted_moment<2>(acc2), 212./11. );
     BOOST_CHECK_EQUAL( weighted_moment<3>(acc2), 1350./11. );

Modified: branches/proto/v3/libs/accumulators/test/weighted_mean.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_mean.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_mean.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,7 +32,7 @@
           , tag::mean_of_weights
           , tag::weighted_mean_of_variates<int, tag::covariate1>
>
- , int
+ , int
> acc, test_acc(sample = 0);
 
     acc(1, weight = 2, covariate1 = 3);
@@ -73,13 +73,13 @@
     BOOST_CHECK_EQUAL(1u, count(acc2));
     BOOST_CHECK_CLOSE(2., mean_of_weights(acc2), 1e-5);
     BOOST_CHECK_CLOSE(3., (weighted_mean_of_variates<int, tag::covariate1>(acc2)), 1e-5);
-
+
     acc2(0, weight = 4, covariate1 = 4);
     BOOST_CHECK_CLOSE(1./3., weighted_mean(acc2), 1e-5);
     BOOST_CHECK_EQUAL(2u, count(acc2));
     BOOST_CHECK_CLOSE(3., mean_of_weights(acc2), 1e-5);
     BOOST_CHECK_CLOSE(11./3., (weighted_mean_of_variates<int, tag::covariate1>(acc2)), 1e-5);
-
+
     acc2(2, weight = 9, covariate1 = 8);
     BOOST_CHECK_CLOSE(4./3., weighted_mean(acc2), 1e-5);
     BOOST_CHECK_EQUAL(3u, count(acc2));

Modified: branches/proto/v3/libs/accumulators/test/weighted_median.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_median.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_median.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -22,7 +22,7 @@
 {
     // Median estimation of normal distribution N(1,1) using samples from a narrow normal distribution N(1,0.01)
     // The weights equal to the likelihood ratio of the corresponding samples
-
+
     // two random number generators
     double mu = 1.;
     double sigma_narrow = 0.01;
@@ -30,14 +30,14 @@
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma_narrow(mu,sigma_narrow);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal_narrow(rng, mean_sigma_narrow);
-
+
     accumulator_set<double, stats<tag::weighted_median(with_p_square_quantile) >, double > acc;
- accumulator_set<double, stats<tag::weighted_median(with_density) >, double >
+ accumulator_set<double, stats<tag::weighted_median(with_density) >, double >
         acc_dens( density_cache_size = 10000, density_num_bins = 1000 );
- accumulator_set<double, stats<tag::weighted_median(with_p_square_cumulative_distribution) >, double >
+ accumulator_set<double, stats<tag::weighted_median(with_p_square_cumulative_distribution) >, double >
         acc_cdist( p_square_cumulative_distribution_num_cells = 100 );
-
-
+
+
     for (std::size_t i=0; i<100000; ++i)
     {
         double sample = normal_narrow();
@@ -45,7 +45,7 @@
         acc_dens(sample, weight = std::exp(0.5 * (sample - mu) * (sample - mu) * ( 1./sigma_narrow/sigma_narrow - 1./sigma/sigma )));
         acc_cdist(sample, weight = std::exp(0.5 * (sample - mu) * (sample - mu) * ( 1./sigma_narrow/sigma_narrow - 1./sigma/sigma )));
     }
-
+
     BOOST_CHECK_CLOSE(1., weighted_median(acc), 1e-1);
     BOOST_CHECK_CLOSE(1., weighted_median(acc_dens), 1e-1);
     BOOST_CHECK_CLOSE(1., weighted_median(acc_cdist), 1e-1);

Modified: branches/proto/v3/libs/accumulators/test/weighted_moment.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_moment.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_moment.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,15 +20,15 @@
 {
     accumulator_set<double, stats<tag::weighted_moment<2> >, double> acc2;
     accumulator_set<double, stats<tag::weighted_moment<7> >, double> acc7;
-
+
     acc2(2.1, weight = 0.7);
     acc2(2.7, weight = 1.4);
     acc2(1.8, weight = 0.9);
-
+
     acc7(2.1, weight = 0.7);
     acc7(2.7, weight = 1.4);
     acc7(1.8, weight = 0.9);
-
+
     BOOST_CHECK_CLOSE(5.403, weighted_moment<2>(acc2), 1e-5);
     BOOST_CHECK_CLOSE(548.54182, weighted_moment<7>(acc7), 1e-5);
 }

Modified: branches/proto/v3/libs/accumulators/test/weighted_p_square_cum_dist.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_p_square_cum_dist.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_p_square_cum_dist.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -43,10 +43,10 @@
     double epsilon = 4;
 
     typedef accumulator_set<double, stats<tag::weighted_p_square_cumulative_distribution>, double > accumulator_t;
-
+
     accumulator_t acc_upper(p_square_cumulative_distribution_num_cells = 100);
     accumulator_t acc_lower(p_square_cumulative_distribution_num_cells = 100);
-
+
     // two random number generators
     double mu_upper = 1.0;
     double mu_lower = -1.0;
@@ -55,38 +55,38 @@
     boost::normal_distribution<> mean_sigma_lower(mu_lower,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal_upper(rng, mean_sigma_upper);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal_lower(rng, mean_sigma_lower);
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         double sample = normal_upper();
         acc_upper(sample, weight = std::exp(-mu_upper * (sample - 0.5 * mu_upper)));
     }
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         double sample = normal_lower();
         acc_lower(sample, weight = std::exp(-mu_lower * (sample - 0.5 * mu_lower)));
     }
-
+
     typedef iterator_range<std::vector<std::pair<double, double> >::iterator > histogram_type;
     histogram_type histogram_upper = weighted_p_square_cumulative_distribution(acc_upper);
     histogram_type histogram_lower = weighted_p_square_cumulative_distribution(acc_lower);
-
- // Note that applaying importance sampling results in a region of the distribution
+
+ // Note that applaying importance sampling results in a region of the distribution
     // to be estimated more accurately and another region to be estimated less accurately
     // than without importance sampling, i.e., with unweighted samples
-
+
     for (std::size_t i = 0; i < histogram_upper.size(); ++i)
- {
+ {
         // problem with small results: epsilon is relative (in percent), not absolute!
-
+
         // check upper region of distribution
- if ( histogram_upper[i].second > 0.1 )
+ if ( histogram_upper[i].second > 0.1 )
             BOOST_CHECK_CLOSE( 0.5 * (1.0 + my_erf( histogram_upper[i].first / sqrt(2.0) )), histogram_upper[i].second, epsilon );
         // check lower region of distribution
- if ( histogram_lower[i].second < -0.1 )
+ if ( histogram_lower[i].second < -0.1 )
             BOOST_CHECK_CLOSE( 0.5 * (1.0 + my_erf( histogram_lower[i].first / sqrt(2.0) )), histogram_lower[i].second, epsilon );
- }
+ }
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/weighted_p_square_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_p_square_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_p_square_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -29,7 +29,7 @@
 
     // tolerance in %
     double epsilon = 1;
-
+
     // some random number generators
     double mu4 = -1.0;
     double mu5 = -1.0;
@@ -44,7 +44,7 @@
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal5(rng, mean_sigma5);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal6(rng, mean_sigma6);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal7(rng, mean_sigma7);
-
+
     accumulator_t acc0(quantile_probability = 0.001);
     accumulator_t acc1(quantile_probability = 0.025);
     accumulator_t acc2(quantile_probability = 0.975);
@@ -55,7 +55,7 @@
     accumulator_t acc6(quantile_probability = 0.975);
     accumulator_t acc7(quantile_probability = 0.999);
 
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         double sample = rng();
@@ -63,7 +63,7 @@
         acc1(sample, weight = 1.);
         acc2(sample, weight = 1.);
         acc3(sample, weight = 1.);
-
+
         double sample4 = normal4();
         double sample5 = normal5();
         double sample6 = normal6();
@@ -78,7 +78,7 @@
     BOOST_CHECK_CLOSE( weighted_p_square_quantile(acc1), 0.025, 5 );
     BOOST_CHECK_CLOSE( weighted_p_square_quantile(acc2), 0.975, epsilon );
     BOOST_CHECK_CLOSE( weighted_p_square_quantile(acc3), 0.999, epsilon );
-
+
     // check for shifted standard normal distribution ("importance sampling")
     BOOST_CHECK_CLOSE( weighted_p_square_quantile(acc4), -3.090232, epsilon );
     BOOST_CHECK_CLOSE( weighted_p_square_quantile(acc5), -1.959963, epsilon );

Modified: branches/proto/v3/libs/accumulators/test/weighted_pot_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_pot_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_pot_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,11 +28,11 @@
     double epsilon = 1.;
 
     double mu1, mu2, l;
-
+
     mu1 = 1.;
     mu2 = -1.;
     l = 0.5;
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma1(mu1,1);
@@ -41,7 +41,7 @@
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal1(rng, mean_sigma1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal2(rng, mean_sigma2);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::exponential_distribution<> > exponential(rng, lambda);
-
+
     accumulator_set<double, stats<tag::weighted_pot_quantile<right>(with_threshold_value)>, double > acc1(
         pot_threshold_value = 3.
     );
@@ -56,7 +56,7 @@
         left_tail_cache_size = 10000
       , pot_threshold_probability = 0.01
     );
-
+
     accumulator_set<double, stats<tag::weighted_pot_quantile<right>(with_threshold_value)>, double > acc5(
         pot_threshold_value = 5.
     );
@@ -64,7 +64,7 @@
         right_tail_cache_size = 10000
       , pot_threshold_probability = 0.995
     );
-
+
     for (std::size_t i = 0; i < 100000; ++i)
     {
         double sample1 = normal1();
@@ -74,21 +74,21 @@
         acc3(sample2, weight = std::exp(-mu2 * (sample2 - 0.5 * mu2)));
         acc4(sample2, weight = std::exp(-mu2 * (sample2 - 0.5 * mu2)));
     }
-
+
     for (std::size_t i = 0; i < 100000; ++i)
     {
         double sample = exponential();
         acc5(sample, weight = 1./l * std::exp(-sample * (1. - l)));
         acc6(sample, weight = 1./l * std::exp(-sample * (1. - l)));
     }
-
+
     BOOST_CHECK_CLOSE( quantile(acc1, quantile_probability = 0.999), 3.090232, epsilon );
- BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.999), 3.090232, epsilon );
+ BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.999), 3.090232, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc3, quantile_probability = 0.001), -3.090232, epsilon );
- BOOST_CHECK_CLOSE( quantile(acc4, quantile_probability = 0.001), -3.090232, epsilon );
-
+ BOOST_CHECK_CLOSE( quantile(acc4, quantile_probability = 0.001), -3.090232, epsilon );
+
     BOOST_CHECK_CLOSE( quantile(acc5, quantile_probability = 0.999), 6.908, epsilon );
- BOOST_CHECK_CLOSE( quantile(acc6, quantile_probability = 0.999), 6.908, epsilon );
+ BOOST_CHECK_CLOSE( quantile(acc6, quantile_probability = 0.999), 6.908, epsilon );
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/weighted_skewness.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_skewness.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_skewness.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,29 +26,29 @@
 {
     // tolerance in %
     // double epsilon = 1;
-
+
     accumulator_set<double, stats<tag::weighted_skewness>, double > acc1;
     accumulator_set<int, stats<tag::weighted_skewness>, int > acc2;
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
+
     for (std::size_t i=0; i<100000; ++i)
     {
         acc1(normal(), weight = rng());
     }
-
+
     // This check fails because epsilon is relative and not absolute
- // BOOST_CHECK_CLOSE( weighted_skewness(acc1), 0., epsilon );
-
+ // BOOST_CHECK_CLOSE( weighted_skewness(acc1), 0., epsilon );
+
     acc2(2, weight = 4);
     acc2(7, weight = 1);
     acc2(4, weight = 3);
     acc2(9, weight = 1);
     acc2(3, weight = 2);
-
+
     BOOST_CHECK_EQUAL( weighted_mean(acc2), 42./11. );
     BOOST_CHECK_EQUAL( weighted_moment<2>(acc2), 212./11. );
     BOOST_CHECK_EQUAL( weighted_moment<3>(acc2), 1350./11. );

Modified: branches/proto/v3/libs/accumulators/test/weighted_tail_mean.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_tail_mean.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_tail_mean.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,30 +28,30 @@
 {
     // tolerance in %
     double epsilon = 1;
-
+
     std::size_t n = 100000; // number of MC steps
     std::size_t c = 25000; // cache size
-
+
     accumulator_set<double, stats<tag::non_coherent_weighted_tail_mean<right> >, double >
         acc0( right_tail_cache_size = c );
     accumulator_set<double, stats<tag::non_coherent_weighted_tail_mean<left> >, double >
         acc1( left_tail_cache_size = c );
-
+
     // random number generators
     boost::lagged_fibonacci607 rng;
-
+
     for (std::size_t i = 0; i < n; ++i)
     {
         double smpl = std::sqrt(rng());
         acc0(smpl, weight = 1./smpl);
     }
-
+
     for (std::size_t i = 0; i < n; ++i)
     {
         double smpl = rng();
         acc1(smpl*smpl, weight = smpl);
     }
-
+
     // check uniform distribution
     BOOST_CHECK_CLOSE( non_coherent_weighted_tail_mean(acc0, quantile_probability = 0.95), 0.975, epsilon );
     BOOST_CHECK_CLOSE( non_coherent_weighted_tail_mean(acc0, quantile_probability = 0.975), 0.9875, epsilon );

Modified: branches/proto/v3/libs/accumulators/test/weighted_tail_quantile.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_tail_quantile.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_tail_quantile.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,10 +27,10 @@
 {
     // tolerance in %
     double epsilon = 1;
-
+
     std::size_t n = 100000; // number of MC steps
     std::size_t c = 20000; // cache size
-
+
     double mu1 = 1.0;
     double mu2 = -1.0;
     boost::lagged_fibonacci607 rng;
@@ -38,13 +38,13 @@
     boost::normal_distribution<> mean_sigma2(mu2,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal1(rng, mean_sigma1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal2(rng, mean_sigma2);
-
+
     accumulator_set<double, stats<tag::weighted_tail_quantile<right> >, double>
         acc1(right_tail_cache_size = c);
 
     accumulator_set<double, stats<tag::weighted_tail_quantile<left> >, double>
- acc2(left_tail_cache_size = c);
-
+ acc2(left_tail_cache_size = c);
+
     for (std::size_t i = 0; i < n; ++i)
     {
         double sample1 = normal1();
@@ -52,13 +52,13 @@
         acc1(sample1, weight = std::exp(-mu1 * (sample1 - 0.5 * mu1)));
         acc2(sample2, weight = std::exp(-mu2 * (sample2 - 0.5 * mu2)));
     }
-
+
     // check standard normal distribution
     BOOST_CHECK_CLOSE( quantile(acc1, quantile_probability = 0.975), 1.959963, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc1, quantile_probability = 0.999), 3.090232, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.025), -1.959963, epsilon );
     BOOST_CHECK_CLOSE( quantile(acc2, quantile_probability = 0.001), -3.090232, epsilon );
-
+
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/accumulators/test/weighted_tail_variate_means.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_tail_variate_means.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_tail_variate_means.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,10 +27,10 @@
 void test_stat()
 {
     std::size_t c = 5; // cache size
-
+
     typedef double variate_type;
     typedef std::vector<variate_type> variate_set_type;
-
+
     accumulator_set<double, stats<tag::weighted_tail_variate_means<right, variate_set_type, tag::covariate1>(relative)>, double >
         acc1( right_tail_cache_size = c );
     accumulator_set<double, stats<tag::weighted_tail_variate_means<right, variate_set_type, tag::covariate1>(absolute)>, double >
@@ -39,7 +39,7 @@
         acc3( left_tail_cache_size = c );
     accumulator_set<double, stats<tag::weighted_tail_variate_means<left, variate_set_type, tag::covariate1>(absolute)>, double >
         acc4( left_tail_cache_size = c );
-
+
     variate_set_type cov1, cov2, cov3, cov4, cov5;
     double c1[] = { 10., 20., 30., 40. }; // 100
     double c2[] = { 26., 4., 17., 3. }; // 50
@@ -50,32 +50,32 @@
     cov2.assign(c2, c2 + sizeof(c2)/sizeof(variate_type));
     cov3.assign(c3, c3 + sizeof(c3)/sizeof(variate_type));
     cov4.assign(c4, c4 + sizeof(c4)/sizeof(variate_type));
- cov5.assign(c5, c5 + sizeof(c5)/sizeof(variate_type));
-
+ cov5.assign(c5, c5 + sizeof(c5)/sizeof(variate_type));
+
     acc1(100., weight = 0.8, covariate1 = cov1);
     acc1( 50., weight = 0.9, covariate1 = cov2);
     acc1(200., weight = 1.0, covariate1 = cov3);
     acc1( 80., weight = 1.1, covariate1 = cov4);
     acc1( 20., weight = 1.2, covariate1 = cov5);
-
+
     acc2(100., weight = 0.8, covariate1 = cov1);
     acc2( 50., weight = 0.9, covariate1 = cov2);
     acc2(200., weight = 1.0, covariate1 = cov3);
     acc2( 80., weight = 1.1, covariate1 = cov4);
     acc2( 20., weight = 1.2, covariate1 = cov5);
-
+
     acc3(100., weight = 0.8, covariate1 = cov1);
     acc3( 50., weight = 0.9, covariate1 = cov2);
     acc3(200., weight = 1.0, covariate1 = cov3);
     acc3( 80., weight = 1.1, covariate1 = cov4);
     acc3( 20., weight = 1.2, covariate1 = cov5);
-
+
     acc4(100., weight = 0.8, covariate1 = cov1);
     acc4( 50., weight = 0.9, covariate1 = cov2);
     acc4(200., weight = 1.0, covariate1 = cov3);
     acc4( 80., weight = 1.1, covariate1 = cov4);
     acc4( 20., weight = 1.2, covariate1 = cov5);
-
+
     // check relative risk contributions
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc1, quantile_probability = 0.7).begin() ), (0.8*10 + 1.0*46)/(0.8*100 + 1.0*200) );
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc1, quantile_probability = 0.7).begin() + 1), (0.8*20 + 1.0*64)/(0.8*100 + 1.0*200) );
@@ -85,7 +85,7 @@
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc3, quantile_probability = 0.3).begin() + 1), (0.9*4 + 1.2*2)/(0.9*50 + 1.2*20) );
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc3, quantile_probability = 0.3).begin() + 2), (0.9*17 + 1.2*2)/(0.9*50 + 1.2*20) );
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc3, quantile_probability = 0.3).begin() + 3), (0.9*3 + 1.2*14)/(0.9*50 + 1.2*20) );
-
+
     // check absolute risk contributions
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc2, quantile_probability = 0.7).begin() ), (0.8*10 + 1.0*46)/1.8 );
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc2, quantile_probability = 0.7).begin() + 1), (0.8*20 + 1.0*64)/1.8 );
@@ -95,7 +95,7 @@
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc4, quantile_probability = 0.3).begin() + 1), (0.9*4 + 1.2*2)/2.1 );
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc4, quantile_probability = 0.3).begin() + 2), (0.9*17 + 1.2*2)/2.1 );
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc4, quantile_probability = 0.3).begin() + 3), (0.9*3 + 1.2*14)/2.1 );
-
+
     // check relative risk contributions
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc1, quantile_probability = 0.9).begin() ), 1.0*46/(1.0*200) );
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc1, quantile_probability = 0.9).begin() + 1), 1.0*64/(1.0*200) );
@@ -105,7 +105,7 @@
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc3, quantile_probability = 0.1).begin() + 1), 1.2*2/(1.2*20) );
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc3, quantile_probability = 0.1).begin() + 2), 1.2*2/(1.2*20) );
     BOOST_CHECK_EQUAL( *(relative_weighted_tail_variate_means(acc3, quantile_probability = 0.1).begin() + 3), 1.2*14/(1.2*20) );
-
+
     // check absolute risk contributions
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc2, quantile_probability = 0.9).begin() ), 1.0*46/1.0 );
     BOOST_CHECK_EQUAL( *(weighted_tail_variate_means(acc2, quantile_probability = 0.9).begin() + 1), 1.0*64/1.0 );

Modified: branches/proto/v3/libs/accumulators/test/weighted_variance.cpp
==============================================================================
--- branches/proto/v3/libs/accumulators/test/weighted_variance.cpp (original)
+++ branches/proto/v3/libs/accumulators/test/weighted_variance.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -46,24 +46,24 @@
     BOOST_CHECK_EQUAL(5u, count(acc2));
     BOOST_CHECK_CLOSE(2.9090909, weighted_mean(acc2), 1e-5);
     BOOST_CHECK_CLOSE(1.7190083, weighted_variance(acc2), 1e-5);
-
+
     // check lazy and immediate variance with random numbers
-
+
     // two random number generators
     boost::lagged_fibonacci607 rng;
     boost::normal_distribution<> mean_sigma(0,1);
     boost::variate_generator<boost::lagged_fibonacci607&, boost::normal_distribution<> > normal(rng, mean_sigma);
-
- accumulator_set<double, stats<tag::weighted_variance>, double > acc_lazy;
+
+ accumulator_set<double, stats<tag::weighted_variance>, double > acc_lazy;
     accumulator_set<double, stats<tag::weighted_variance(immediate)>, double > acc_immediate;
-
+
     for (std::size_t i=0; i<10000; ++i)
     {
         double value = normal();
         acc_lazy(value, weight = rng());
         acc_immediate(value, weight = rng());
     }
-
+
     BOOST_CHECK_CLOSE(1., weighted_variance(acc_lazy), 1.);
     BOOST_CHECK_CLOSE(1., weighted_variance(acc_immediate), 1.);
 }

Modified: branches/proto/v3/libs/algorithm/string/doc/concept.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/concept.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/concept.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.concept" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/credits.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/credits.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/credits.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.credits" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/design.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/design.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/design.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.design" last-revision="$Date$">
@@ -217,7 +217,7 @@
         </para>
         <para>
             For more information about the exception safety topics, follow this
- <ulink url="../../more/generic_exception_safety.html">link</ulink>
+ <ulink url="http://www.boost.org/more/generic_exception_safety.html">link</ulink>
         </para>
     </section>
 </section>

Modified: branches/proto/v3/libs/algorithm/string/doc/environment.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/environment.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/environment.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.env" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/intro.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/intro.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/intro.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.intro" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/quickref.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/quickref.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/quickref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.quickref" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/rationale.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/rationale.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/rationale.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.rationale" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/release_notes.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/release_notes.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/release_notes.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="string_algo.release_notes" last-revision="$Date$">

Modified: branches/proto/v3/libs/algorithm/string/doc/string_algo.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/string_algo.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/string_algo.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <library name="String Algorithms" dirname="algorithm/string" xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: branches/proto/v3/libs/algorithm/string/doc/usage.xml
==============================================================================
--- branches/proto/v3/libs/algorithm/string/doc/usage.xml (original)
+++ branches/proto/v3/libs/algorithm/string/doc/usage.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
 <!-- Copyright (c) 2002-2006 Pavol Droba.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 

Modified: branches/proto/v3/libs/asio/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/asio.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/asio.qbk (original)
+++ branches/proto/v3/libs/asio/doc/asio.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,7 +7,7 @@
 
 [library Boost.Asio
     [quickbook 1.4]
- [copyright 2003 - 2007 Christopher M. Kohlhoff]
+ [copyright 2003 - 2008 Christopher M. Kohlhoff]
     [purpose Networking library]
     [license
         Distributed under the Boost Software License, Version 1.0.

Modified: branches/proto/v3/libs/asio/doc/design.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/allocation.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/allocation.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/allocation.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/async.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/async.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/async.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/buffers.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/buffers.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/buffers.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/eof.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/eof.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/eof.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/implementation.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/implementation.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/implementation.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/line_based.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/line_based.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/line_based.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/rationale.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/rationale.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/rationale.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/strands.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/strands.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/strands.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/design/threads.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/design/threads.qbk (original)
+++ branches/proto/v3/libs/asio/doc/design/threads.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/examples.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/examples.qbk (original)
+++ branches/proto/v3/libs/asio/doc/examples.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/quickref.xml
==============================================================================
--- branches/proto/v3/libs/asio/doc/quickref.xml (original)
+++ branches/proto/v3/libs/asio/doc/quickref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../tools/boostbook/dtd/boostbook.dtd">
 
 <!--
- Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/reference.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/reference.qbk (original)
+++ branches/proto/v3/libs/asio/doc/reference.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -2647,10 +2647,26 @@
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -2676,10 +2692,26 @@
 
 [variablelist
   
-[[ec][Set to indicate what error occurred, if any. ]]
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -7239,10 +7271,26 @@
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -7265,10 +7313,26 @@
 
 [variablelist
   
-[[ec][Set to indicate what error occurred, if any. ]]
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -12647,10 +12711,26 @@
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -12676,10 +12756,26 @@
 
 [variablelist
   
-[[ec][Set to indicate what error occurred, if any. ]]
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -16114,10 +16210,26 @@
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -16143,10 +16255,26 @@
 
 [variablelist
   
-[[ec][Set to indicate what error occurred, if any. ]]
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
+[heading Remarks]
+
+Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
+* It will only cancel asynchronous operations that were initiated in the current thread.
+
+* It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
+
+For portable cancellation, consider using one of the following alternatives:
+
+
+* Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
+
+* Use the close() function to simultaneously cancel the outstanding operations and close the socket.
+
+When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
 
 
 [endsect]
@@ -22951,6 +23079,11 @@
   ]
 
   [
+ [broken_pipe]
+ [Broken pipe. ]
+ ]
+
+ [
     [connection_aborted]
     [A connection has been aborted. ]
   ]

Modified: branches/proto/v3/libs/asio/doc/reference.xsl
==============================================================================
--- branches/proto/v3/libs/asio/doc/reference.xsl (original)
+++ branches/proto/v3/libs/asio/doc/reference.xsl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
 <!--
- Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -25,7 +25,7 @@
 -->
 <xsl:template match="/doxygen">
 <xsl:text>[/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/AcceptHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/AcceptHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/AcceptHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/AsyncReadStream.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/AsyncReadStream.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/AsyncReadStream.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/AsyncWriteStream.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/AsyncWriteStream.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/AsyncWriteStream.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/CompletionHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/CompletionHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/CompletionHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ConnectHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ConnectHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ConnectHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ConstBufferSequence.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ConstBufferSequence.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ConstBufferSequence.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/DatagramSocketService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/DatagramSocketService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/DatagramSocketService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/Endpoint.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/Endpoint.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/Endpoint.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/GettableSocketOption.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/GettableSocketOption.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/GettableSocketOption.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/Handler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/Handler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/Handler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/InternetProtocol.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/InternetProtocol.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/InternetProtocol.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/IoControlCommand.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/IoControlCommand.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/IoControlCommand.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/IoObjectService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/IoObjectService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/IoObjectService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/MutableBufferSequence.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/MutableBufferSequence.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/MutableBufferSequence.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/Protocol.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/Protocol.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/Protocol.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ReadHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ReadHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ReadHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ResolveHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ResolveHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ResolveHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/ResolverService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/ResolverService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/ResolverService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/Service.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/Service.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/Service.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/SettableSocketOption.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/SettableSocketOption.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/SettableSocketOption.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/SocketAcceptorService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/SocketAcceptorService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/SocketAcceptorService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/SocketService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/SocketService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/SocketService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/StreamSocketService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/StreamSocketService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/StreamSocketService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/SyncReadStream.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/SyncReadStream.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/SyncReadStream.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/SyncWriteStream.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/SyncWriteStream.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/SyncWriteStream.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/TimeTraits.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/TimeTraits.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/TimeTraits.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/TimerService.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/TimerService.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/TimerService.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/WaitHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/WaitHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/WaitHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/WriteHandler.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/WriteHandler.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/WriteHandler.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/requirements/asynchronous_operations.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/requirements/asynchronous_operations.qbk (original)
+++ branches/proto/v3/libs/asio/doc/requirements/asynchronous_operations.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/tutorial.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/tutorial.qbk (original)
+++ branches/proto/v3/libs/asio/doc/tutorial.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -141,7 +141,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -241,7 +241,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -389,7 +389,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -550,7 +550,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -750,7 +750,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -965,7 +965,7 @@
   ``''''''``// client.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1133,7 +1133,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1383,7 +1383,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1603,7 +1603,7 @@
   ``''''''``// client.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1746,7 +1746,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1961,7 +1961,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -2238,7 +2238,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/tutorial.xsl
==============================================================================
--- branches/proto/v3/libs/asio/doc/tutorial.xsl (original)
+++ branches/proto/v3/libs/asio/doc/tutorial.xsl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
 <!--
- Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,7 +20,7 @@
 
 <xsl:template match="/doxygen">
 <xsl:text>[/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/doc/using.qbk
==============================================================================
--- branches/proto/v3/libs/asio/doc/using.qbk (original)
+++ branches/proto/v3/libs/asio/doc/using.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -224,6 +224,37 @@
       function. Defaults to 5.
     ]
   ]
+ [
+ [`BOOST_ASIO_ENABLE_CANCELIO`]
+ [
+ Enables use of the `CancelIo` function on older versions of Windows. If
+ not enabled, calls to `cancel()` on a socket object will always fail with
+ `asio::error::operation_not_supported` when run on Windows XP, Windows
+ Server 2003, and earlier versions of Windows. When running on Windows
+ Vista, Windows Server 2008, and later, the `CancelIoEx` function is
+ always used.
+
+ The `CancelIo` function has two issues that should be considered before
+ enabling its use:
+
+ * It will only cancel asynchronous operations that were initiated in the
+ current thread.
+
+ * It can appear to complete without error, but the request
+ to cancel the unfinished operations may be silently ignored by the
+ operating system. Whether it works or not seems to depend on the
+ drivers that are installed.
+
+ For portable cancellation, consider using one of the following
+ alternatives:
+
+ * Disable asio's I/O completion port backend by defining
+ BOOST_ASIO_DISABLE_IOCP.
+
+ * Use the socket object's close() function to simultaneously
+ cancel the outstanding operations and close the socket.
+ ]
+ ]
 ]
 
 [endsect]

Modified: branches/proto/v3/libs/asio/example/allocation/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/allocation/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/allocation/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/allocation/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/allocation/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/allocation/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,5 +33,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/allocation/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/allocation/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/allocation/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/buffers/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/buffers/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/buffers/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/buffers/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/buffers/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/buffers/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,5 +33,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/buffers/reference_counted.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/buffers/reference_counted.cpp (original)
+++ branches/proto/v3/libs/asio/example/buffers/reference_counted.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reference_counted.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -27,7 +27,7 @@
   {
   }
 
- // Implement the Const_Buffers concept.
+ // Implement the ConstBufferSequence requirements.
   typedef boost::asio::const_buffer value_type;
   typedef const boost::asio::const_buffer* const_iterator;
   const boost::asio::const_buffer* begin() const { return &buffer_; }

Modified: branches/proto/v3/libs/asio/example/chat/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/chat/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/chat/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/chat/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/chat/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/chat/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,6 +34,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/chat/chat_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/chat/chat_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/chat/chat_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // chat_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/chat/chat_message.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/chat/chat_message.hpp (original)
+++ branches/proto/v3/libs/asio/example/chat/chat_message.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // chat_message.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/chat/chat_server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/chat/chat_server.cpp (original)
+++ branches/proto/v3/libs/asio/example/chat/chat_server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // chat_server.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/echo/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/echo/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,6 +34,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/echo/async_tcp_echo_server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/async_tcp_echo_server.cpp (original)
+++ branches/proto/v3/libs/asio/example/echo/async_tcp_echo_server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // async_tcp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/async_udp_echo_server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/async_udp_echo_server.cpp (original)
+++ branches/proto/v3/libs/asio/example/echo/async_udp_echo_server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // async_udp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // blocking_tcp_echo_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_server.cpp (original)
+++ branches/proto/v3/libs/asio/example/echo/blocking_tcp_echo_server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // blocking_tcp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // blocking_udp_echo_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_server.cpp (original)
+++ branches/proto/v3/libs/asio/example/echo/blocking_udp_echo_server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // blocking_udp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/client/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/http/client/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/http/client/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/client/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/http/client/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/http/client/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/http/client/async_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/client/async_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/client/async_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // async_client.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -83,7 +83,7 @@
     }
     else
     {
- std::cout << "Error: " << err << "\n";
+ std::cout << "Error: " << err.message() << "\n";
     }
   }
 
@@ -98,7 +98,7 @@
     }
     else
     {
- std::cout << "Error: " << err << "\n";
+ std::cout << "Error: " << err.message() << "\n";
     }
   }
 

Modified: branches/proto/v3/libs/asio/example/http/client/sync_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/client/sync_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/client/sync_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // sync_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/doc_root/data_1K.html
==============================================================================
--- branches/proto/v3/libs/asio/example/http/doc_root/data_1K.html (original)
+++ branches/proto/v3/libs/asio/example/http/doc_root/data_1K.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/doc_root/data_2K.html
==============================================================================
--- branches/proto/v3/libs/asio/example/http/doc_root/data_2K.html (original)
+++ branches/proto/v3/libs/asio/example/http/doc_root/data_2K.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/doc_root/data_4K.html
==============================================================================
--- branches/proto/v3/libs/asio/example/http/doc_root/data_4K.html (original)
+++ branches/proto/v3/libs/asio/example/http/doc_root/data_4K.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/doc_root/data_8K.html
==============================================================================
--- branches/proto/v3/libs/asio/example/http/doc_root/data_8K.html (original)
+++ branches/proto/v3/libs/asio/example/http/doc_root/data_8K.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/http/server/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/http/server/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -42,5 +42,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/http/server/connection.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/connection.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/connection.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/connection.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/connection.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/connection.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/connection_manager.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/connection_manager.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/connection_manager.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection_manager.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/connection_manager.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/connection_manager.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/connection_manager.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection_manager.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/header.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/header.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/header.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/mime_types.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/mime_types.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/mime_types.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/mime_types.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/mime_types.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/mime_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/posix_main.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/posix_main.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/posix_main.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_main.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/reply.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/reply.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/reply.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/reply.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/reply.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/reply.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/request.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/request.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/request.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/request_handler.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/request_handler.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/request_handler.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_handler.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/request_handler.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/request_handler.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/request_handler.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/request_parser.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/request_parser.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/request_parser.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/request_parser.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/request_parser.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/request_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/server.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/server.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/server.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server/win_main.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server/win_main.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server/win_main.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_main.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/http/server2/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/http/server2/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -42,5 +42,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/http/server2/connection.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/connection.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/connection.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/connection.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/connection.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/connection.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/header.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/header.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/header.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/io_service_pool.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/io_service_pool.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/io_service_pool.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // io_service_pool.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/io_service_pool.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/io_service_pool.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/io_service_pool.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // io_service_pool.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/mime_types.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/mime_types.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/mime_types.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/mime_types.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/mime_types.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/mime_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/posix_main.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/posix_main.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/posix_main.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_main.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/reply.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/reply.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/reply.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/reply.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/reply.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/reply.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/request.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/request.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/request.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/request_handler.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/request_handler.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/request_handler.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_handler.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/request_handler.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/request_handler.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/request_handler.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/request_parser.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/request_parser.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/request_parser.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/request_parser.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/request_parser.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/request_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/server.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/server.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/server.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server2/win_main.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server2/win_main.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server2/win_main.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_main.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/http/server3/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/http/server3/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -41,5 +41,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/http/server3/connection.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/connection.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/connection.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/connection.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/connection.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/connection.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/header.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/header.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/header.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/mime_types.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/mime_types.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/mime_types.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/mime_types.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/mime_types.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/mime_types.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/posix_main.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/posix_main.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/posix_main.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // posix_main.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/reply.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/reply.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/reply.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/reply.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/reply.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/reply.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/request.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/request.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/request.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/request_handler.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/request_handler.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/request_handler.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_handler.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/request_handler.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/request_handler.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/request_handler.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/request_parser.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/request_parser.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/request_parser.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/request_parser.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/request_parser.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/request_parser.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/server.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/server.hpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/server.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/http/server3/win_main.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/http/server3/win_main.cpp (original)
+++ branches/proto/v3/libs/asio/example/http/server3/win_main.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // win_main.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/invocation/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/invocation/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/invocation/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/invocation/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/invocation/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/invocation/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,5 +33,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/invocation/prioritised_handlers.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/invocation/prioritised_handlers.cpp (original)
+++ branches/proto/v3/libs/asio/example/invocation/prioritised_handlers.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // prioritised_handlers.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/iostreams/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/iostreams/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/iostreams/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/iostreams/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/iostreams/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/iostreams/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/iostreams/daytime_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/iostreams/daytime_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/iostreams/daytime_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // daytime_client.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/iostreams/daytime_server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/iostreams/daytime_server.cpp (original)
+++ branches/proto/v3/libs/asio/example/iostreams/daytime_server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // daytime_server.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/multicast/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/multicast/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/multicast/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/multicast/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/multicast/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/multicast/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/multicast/receiver.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/multicast/receiver.cpp (original)
+++ branches/proto/v3/libs/asio/example/multicast/receiver.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // receiver.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/multicast/sender.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/multicast/sender.cpp (original)
+++ branches/proto/v3/libs/asio/example/multicast/sender.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // sender.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/serialization/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/serialization/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/serialization/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/serialization/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/serialization/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/serialization/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,6 +34,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/serialization/client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/serialization/client.cpp (original)
+++ branches/proto/v3/libs/asio/example/serialization/client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/serialization/connection.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/serialization/connection.hpp (original)
+++ branches/proto/v3/libs/asio/example/serialization/connection.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/serialization/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/serialization/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/serialization/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/serialization/stock.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/serialization/stock.hpp (original)
+++ branches/proto/v3/libs/asio/example/serialization/stock.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stock.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/services/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/services/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/services/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/services/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -35,5 +35,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/services/basic_logger.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/services/basic_logger.hpp (original)
+++ branches/proto/v3/libs/asio/example/services/basic_logger.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_logger.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/daytime_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/services/daytime_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/services/daytime_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // daytime_client.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/logger.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/services/logger.hpp (original)
+++ branches/proto/v3/libs/asio/example/services/logger.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // logger.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/logger_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/services/logger_service.cpp (original)
+++ branches/proto/v3/libs/asio/example/services/logger_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // logger_service.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/logger_service.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/services/logger_service.hpp (original)
+++ branches/proto/v3/libs/asio/example/services/logger_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // logger_service.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/services/stream_socket_service.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/services/stream_socket_service.hpp (original)
+++ branches/proto/v3/libs/asio/example/services/stream_socket_service.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/socks4/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/socks4/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/socks4/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/socks4/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/socks4/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/socks4/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,5 +33,6 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;

Modified: branches/proto/v3/libs/asio/example/socks4/socks4.hpp
==============================================================================
--- branches/proto/v3/libs/asio/example/socks4/socks4.hpp (original)
+++ branches/proto/v3/libs/asio/example/socks4/socks4.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socks4.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/socks4/sync_client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/socks4/sync_client.cpp (original)
+++ branches/proto/v3/libs/asio/example/socks4/sync_client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // sync_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/ssl/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/ssl/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/ssl/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/ssl/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/ssl/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/ssl/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -44,6 +44,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
     <library>ssl
     <library>crypto

Modified: branches/proto/v3/libs/asio/example/ssl/README
==============================================================================
--- branches/proto/v3/libs/asio/example/ssl/README (original)
+++ branches/proto/v3/libs/asio/example/ssl/README 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 
 -------------------------------------------------------------------------------
-Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/ssl/client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/ssl/client.cpp (original)
+++ branches/proto/v3/libs/asio/example/ssl/client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/ssl/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/ssl/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/ssl/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timeouts/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/timeouts/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/timeouts/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timeouts/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/timeouts/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/timeouts/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/timeouts/accept_timeout.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/timeouts/accept_timeout.cpp (original)
+++ branches/proto/v3/libs/asio/example/timeouts/accept_timeout.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // accept_timeout.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timeouts/connect_timeout.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/timeouts/connect_timeout.cpp (original)
+++ branches/proto/v3/libs/asio/example/timeouts/connect_timeout.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // connect_timeout.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timeouts/datagram_receive_timeout.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/timeouts/datagram_receive_timeout.cpp (original)
+++ branches/proto/v3/libs/asio/example/timeouts/datagram_receive_timeout.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // datagram_receive_timeout.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timeouts/stream_receive_timeout.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/timeouts/stream_receive_timeout.cpp (original)
+++ branches/proto/v3/libs/asio/example/timeouts/stream_receive_timeout.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_receive_timeout.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timers/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/timers/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/timers/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timers/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/timers/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/timers/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/timers/tick_count_timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/timers/tick_count_timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/timers/tick_count_timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // tick_count_timer.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/timers/time_t_timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/timers/time_t_timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/timers/time_t_timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // time_t_timer.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/Jamfile (original)
+++ branches/proto/v3/libs/asio/example/tutorial/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/example/tutorial/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,6 +34,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime1/client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime1/client.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime1/client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime2/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime2/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime2/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime3/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime3/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime3/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime4/client.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime4/client.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime4/client.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime5/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime5/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime5/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime6/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime6/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime6/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime7/server.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime7/server.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime7/server.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/daytime_dox.txt
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/daytime_dox.txt (original)
+++ branches/proto/v3/libs/asio/example/tutorial/daytime_dox.txt 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/index_dox.txt
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/index_dox.txt (original)
+++ branches/proto/v3/libs/asio/example/tutorial/index_dox.txt 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/timer1/timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/timer1/timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/timer1/timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/timer2/timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/timer2/timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/timer2/timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/timer3/timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/timer3/timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/timer3/timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/timer4/timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/timer4/timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/timer4/timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/timer5/timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/timer5/timer.cpp (original)
+++ branches/proto/v3/libs/asio/example/tutorial/timer5/timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/example/tutorial/timer_dox.txt
==============================================================================
--- branches/proto/v3/libs/asio/example/tutorial/timer_dox.txt (original)
+++ branches/proto/v3/libs/asio/example/tutorial/timer_dox.txt 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/test/Jamfile (original)
+++ branches/proto/v3/libs/asio/test/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -47,6 +47,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/test/basic_datagram_socket.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/basic_datagram_socket.cpp (original)
+++ branches/proto/v3/libs/asio/test/basic_datagram_socket.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_datagram_socket.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/basic_deadline_timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/basic_deadline_timer.cpp (original)
+++ branches/proto/v3/libs/asio/test/basic_deadline_timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_deadline_timer.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/basic_socket_acceptor.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/basic_socket_acceptor.cpp (original)
+++ branches/proto/v3/libs/asio/test/basic_socket_acceptor.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_socket_acceptor.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/basic_stream_socket.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/basic_stream_socket.cpp (original)
+++ branches/proto/v3/libs/asio/test/basic_stream_socket.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_stream_socket.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/buffer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/buffer.cpp (original)
+++ branches/proto/v3/libs/asio/test/buffer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffer.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/buffered_read_stream.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/buffered_read_stream.cpp (original)
+++ branches/proto/v3/libs/asio/test/buffered_read_stream.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_read_stream.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/buffered_stream.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/buffered_stream.cpp (original)
+++ branches/proto/v3/libs/asio/test/buffered_stream.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_stream.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/buffered_write_stream.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/buffered_write_stream.cpp (original)
+++ branches/proto/v3/libs/asio/test/buffered_write_stream.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // buffered_write_stream.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/completion_condition.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/completion_condition.cpp (original)
+++ branches/proto/v3/libs/asio/test/completion_condition.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // completion_condition.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/datagram_socket_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/datagram_socket_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/datagram_socket_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // datagram_socket_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/deadline_timer.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/deadline_timer.cpp (original)
+++ branches/proto/v3/libs/asio/test/deadline_timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // deadline_timer.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/deadline_timer_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/deadline_timer_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/deadline_timer_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // deadline_timer_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/error.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/error.cpp (original)
+++ branches/proto/v3/libs/asio/test/error.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // error.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/io_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/io_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/io_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // io_service.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/address.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/address.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/address.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // address.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/address_v4.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/address_v4.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/address_v4.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // address_v4.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/address_v6.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/address_v6.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/address_v6.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // address_v6.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/basic_endpoint.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/basic_endpoint.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/basic_endpoint.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_endpoint.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/basic_resolver.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/basic_resolver.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/basic_resolver.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/basic_resolver_entry.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/basic_resolver_entry.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/basic_resolver_entry.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver_entry.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/basic_resolver_iterator.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/basic_resolver_iterator.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/basic_resolver_iterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver_iterator.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/basic_resolver_query.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/basic_resolver_query.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/basic_resolver_query.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_resolver_query.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/host_name.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/host_name.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/host_name.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // host_name.cpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/multicast.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/multicast.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/multicast.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // multicast.cpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/resolver_query_base.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/resolver_query_base.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/resolver_query_base.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // resolver_query_base.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/resolver_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/resolver_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/resolver_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // resolver_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/tcp.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/tcp.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/tcp.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // tcp.cpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/udp.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/udp.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/udp.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // udp.cpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/unicast.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/unicast.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/unicast.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // unicast.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ip/v6_only.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ip/v6_only.cpp (original)
+++ branches/proto/v3/libs/asio/test/ip/v6_only.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // v6_only.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/is_read_buffered.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/is_read_buffered.cpp (original)
+++ branches/proto/v3/libs/asio/test/is_read_buffered.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // is_read_buffered.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/is_write_buffered.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/is_write_buffered.cpp (original)
+++ branches/proto/v3/libs/asio/test/is_write_buffered.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // is_write_buffered.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/placeholders.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/placeholders.cpp (original)
+++ branches/proto/v3/libs/asio/test/placeholders.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // placeholders.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/read.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/read.cpp (original)
+++ branches/proto/v3/libs/asio/test/read.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // read.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/read_until.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/read_until.cpp (original)
+++ branches/proto/v3/libs/asio/test/read_until.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // read_until.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/socket_acceptor_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/socket_acceptor_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/socket_acceptor_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_acceptor_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/socket_base.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/socket_base.cpp (original)
+++ branches/proto/v3/libs/asio/test/socket_base.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // socket_base.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/Jamfile
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/Jamfile (original)
+++ branches/proto/v3/libs/asio/test/ssl/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/Jamfile.v2 (original)
+++ branches/proto/v3/libs/asio/test/ssl/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -44,6 +44,7 @@
     <os>NT,<toolset>gcc:<library>ws2_32
     <os>NT,<toolset>gcc:<library>mswsock
     <os>NT,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
+ <os>HPUX,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
     <os>HPUX:<library>ipv6
   ;
 

Modified: branches/proto/v3/libs/asio/test/ssl/basic_context.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/basic_context.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/basic_context.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // basic_context.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/context.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/context.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/context.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // context.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/context_base.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/context_base.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/context_base.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // context_base.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/context_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/context_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/context_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // context_service.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/stream.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/stream.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/stream.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/stream_base.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/stream_base.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/stream_base.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_base.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/ssl/stream_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/ssl/stream_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/ssl/stream_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_service.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/strand.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/strand.cpp (original)
+++ branches/proto/v3/libs/asio/test/strand.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // strand.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/stream_socket_service.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/stream_socket_service.cpp (original)
+++ branches/proto/v3/libs/asio/test/stream_socket_service.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // stream_socket_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/time_traits.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/time_traits.cpp (original)
+++ branches/proto/v3/libs/asio/test/time_traits.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // time_traits.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/unit_test.hpp
==============================================================================
--- branches/proto/v3/libs/asio/test/unit_test.hpp (original)
+++ branches/proto/v3/libs/asio/test/unit_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // unit_test.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/asio/test/write.cpp
==============================================================================
--- branches/proto/v3/libs/asio/test/write.cpp (original)
+++ branches/proto/v3/libs/asio/test/write.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // write.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2007 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/assign/test/list_of.cpp
==============================================================================
--- branches/proto/v3/libs/assign/test/list_of.cpp (original)
+++ branches/proto/v3/libs/assign/test/list_of.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -224,7 +224,44 @@
 */
 }
 
+//
+// @remark: ADL is required here, but it is a bit wierd to
+// open up namespace std. Perhaps Boost.Test needs a
+// better configuration option.
+//
+namespace std
+{
+ template< class T, class Elem, class Traits >
+ inline std::basic_ostream<Elem,Traits>&
+ operator<<( std::basic_ostream<Elem, Traits>& Os,
+ const std::vector<T>& r )
+ {
+ return Os << ::boost::make_iterator_range( r.begin(), r.end() );
+ }
+}
 
+template <class Seq>
+inline std::vector<int> as_seq( const Seq& s )
+{
+ std::vector<int> c;
+ return s.to_container( c );
+}
+
+void test_comparison_operations()
+{
+ BOOST_CHECK_EQUAL( ba::list_of(0)(1)(2), as_seq(ba::list_of(0)(1)(2)) );
+ BOOST_CHECK_NE( ba::list_of(0)(1)(2), as_seq(ba::list_of(-1)(1)(2)) );
+ BOOST_CHECK_LT( ba::list_of(0)(1)(2), as_seq(ba::list_of(0)(1)(3)) );
+ BOOST_CHECK_LE( ba::list_of(0)(1)(2), as_seq(ba::list_of(0)(1)(2)) );
+ BOOST_CHECK_GT( ba::list_of(0)(1)(3), as_seq(ba::list_of(0)(1)(2)) );
+ BOOST_CHECK_GE( ba::list_of(0)(1)(2), as_seq(ba::list_of(0)(1)(2)) );
+ BOOST_CHECK_EQUAL( as_seq(ba::list_of(0)(1)(2)), ba::list_of(0)(1)(2) );
+ BOOST_CHECK_NE( as_seq(ba::list_of(0)(1)(2)), ba::list_of(-1)(1)(2) );
+ BOOST_CHECK_LT( as_seq(ba::list_of(0)(1)(2)), ba::list_of(0)(1)(3) );
+ BOOST_CHECK_LE( as_seq(ba::list_of(0)(1)(2)), ba::list_of(0)(1)(2) );
+ BOOST_CHECK_GT( as_seq(ba::list_of(0)(1)(3)), ba::list_of(0)(1)(2) );
+ BOOST_CHECK_GE( as_seq(ba::list_of(0)(1)(2)), ba::list_of(0)(1)(2) );
+}
 
 void check_list_of()
 {
@@ -242,9 +279,8 @@
     
     std::stack<std::string> s = ba::list_of( "Foo" )( "Bar" )( "FooBar" ).to_adapter( s );
     test_list_of();
-
     test_vector_matrix();
-
+ test_comparison_operations();
 }
 
 

Modified: branches/proto/v3/libs/bimap/doc/acknowledgements.qbk
==============================================================================
--- branches/proto/v3/libs/bimap/doc/acknowledgements.qbk (original)
+++ branches/proto/v3/libs/bimap/doc/acknowledgements.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,18 +32,9 @@
 Boost.Bimap has abused. See the dependencies section for a complete list.
 
 I want to thank the open-source developers who wrote the tools I used
-during this project. The library was coded using Blade, a full
-open-source development environment composed, in my opinion, of the best
-tools for software building. The list of names is infinitely long, so I
+during this project. The list of names is infinitely long, so I
 give a general huge thanks here.
 
-__BOOST_BLADE_LOGO__
-
-The icons in the TOC of the main page are from [@http://www.kde-look.org/kde-look.org kde-look.org].
-I want to thank them for their effort in making the open-source world a beautiful
-place. When I find time, I will look for the authors' names. Please
-forgive me for omitting them for the moment.
-
 Thanks to Paul Giaccone for proof-reading this documentation. (He has
 not finished yet -- the remaining typos and spelling errors are mine and
 will be corrected as soon as possible.)

Modified: branches/proto/v3/libs/bimap/doc/bimap.qbk
==============================================================================
--- branches/proto/v3/libs/bimap/doc/bimap.qbk (original)
+++ branches/proto/v3/libs/bimap/doc/bimap.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,7 +21,6 @@
 [/ Logos ]
 
 [def __BOOST_BIMAP_LOGO__ [$images/bimap/boost.bimap.logo.png]]
-[def __BOOST_BLADE_LOGO__ [$images/extern/boost.blade.logo.png]]
 [def __GOOGLE_SOC_2006__ [$images/extern/googlesoc.png]]
 
 [/ Helpers ]

Modified: branches/proto/v3/libs/bimap/doc/directdoxygen.jam
==============================================================================
--- branches/proto/v3/libs/bimap/doc/directdoxygen.jam (original)
+++ branches/proto/v3/libs/bimap/doc/directdoxygen.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,3 +1,12 @@
+# Boost.Bimap
+#
+# Copyright (c) 2006-2007 Matias Capeletto
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+
 import type ;
 import generators ;
 

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/acknowledgements.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -49,18 +49,8 @@
     </p>
 <p>
       I want to thank the open-source developers who wrote the tools I used during
- this project. The library was coded using Blade, a full open-source development
- environment composed, in my opinion, of the best tools for software building.
- The list of names is infinitely long, so I give a general huge thanks here.
- </p>
-<p>
- <span class="inlinemediaobject"><img src="../images/extern/boost.blade.logo.png" alt="boost.blade.logo"></span>
- </p>
-<p>
- The icons in the TOC of the main page are from kde-look.org.
- I want to thank them for their effort in making the open-source world a beautiful
- place. When I find time, I will look for the authors' names. Please forgive
- me for omitting them for the moment.
+ this project. The list of names is infinitely long, so I give a general huge
+ thanks here.
     </p>
 <p>
       Thanks to Paul Giaccone for proof-reading this documentation. (He has not finished
@@ -82,7 +72,7 @@
       a lot to Ion Gaztañaga for managing the review.
     </p>
 <a name="boost_bimap.acknowledgements.boost_bimap_team"></a><h4>
-<a name="id2735393"></a>
+<a name="id2735497"></a>
       <a href="acknowledgements.html#boost_bimap.acknowledgements.boost_bimap_team">Boost.Bimap Team</a>
     </h4>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -104,7 +104,7 @@
         in its own class every time they want to use it as a bidirectional map. Boost.Bimap
         takes advantage of the narrower scope to produce a better interface for bidirectional
         maps
- <sup>[<a name="id2644135" href="#ftn.id2644135">2</a>]</sup>
+ <sup>[<a name="id2644176" href="#ftn.id2644176">2</a>]</sup>
         . There is no learning curve if you know how to use standard containers.
         Great effort was put into mapping the naming scheme of the STL to Boost.Bimap.
         The library is designed to match the common STL containers.
@@ -153,7 +153,7 @@
 </div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id2644135" href="#id2644135">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id2644176" href="#id2644176">2</a>] </sup>
             In the same fashion, Boost.MRU will allow the creation of <span class="emphasis"><em>most
             recent updated</em></span> aware containers, hiding the complexity of
             Boost.MultiIndex.

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/boost_libraries_that_work_well_with_boost_bimap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -763,13 +763,13 @@
 </p>
 <pre class="programlisting">
 <span class="identifier">BOOST_FOREACH</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_reference</span> <span class="identifier">p</span><span class="special">,</span>
- <span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="string">"1"</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="string">"3"</span> <span class="special">)</span> <span class="special">))</span>
+ <span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"1"</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"3"</span><span class="special">)</span> <span class="special">)</span> <span class="special">))</span>
 <span class="special">{</span>
     <span class="special">++</span><span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span><span class="special">;</span>
 <span class="special">}</span>
 
 <span class="identifier">BOOST_FOREACH</span><span class="special">(</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_const_reference</span> <span class="identifier">p</span><span class="special">,</span>
- <span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="string">"1"</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="string">"3"</span> <span class="special">)</span> <span class="special">))</span>
+ <span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">range</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"1"</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="identifier">_key</span><span class="special">,</span> <span class="identifier">_key</span> <span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"3"</span><span class="special">)</span> <span class="special">)</span> <span class="special">))</span>
 <span class="special">{</span>
     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">first</span> <span class="special">&lt;&lt;</span> <span class="string">"--&gt;"</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">second</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 <span class="special">}</span>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/dependencies.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/dependencies.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/bimap_and_boost/dependencies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,7 +36,7 @@
         is the heart of this library.
       </p>
 <div class="table">
-<a name="id2653038"></a><p class="title"><b>Table 1.4. Boost Libraries needed by Boost.Bimap</b></p>
+<a name="id2653168"></a><p class="title"><b>Table 1.4. Boost Libraries needed by Boost.Bimap</b></p>
 <div class="table-contents"><table class="table" summary="Boost Libraries needed by Boost.Bimap">
 <colgroup>
 <col>
@@ -185,7 +185,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2653312"></a><p class="title"><b>Table 1.5. Optional Boost Libraries</b></p>
+<a name="id2653442"></a><p class="title"><b>Table 1.5. Optional Boost Libraries</b></p>
 <div class="table-contents"><table class="table" summary="Optional Boost Libraries">
 <colgroup>
 <col>
@@ -355,7 +355,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2653598"></a><p class="title"><b>Table 1.6. Additional Boost Libraries needed to run
+<a name="id2653728"></a><p class="title"><b>Table 1.6. Additional Boost Libraries needed to run
       the test-suite</b></p>
 <div class="table-contents"><table class="table" summary="Additional Boost Libraries needed to run
       the test-suite">

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/compiler_specifics.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/compiler_specifics.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/compiler_specifics.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -326,7 +326,7 @@
 </tbody>
 </table></div>
 <a name="boost_bimap.compiler_specifics.vs_7_1"></a><h3>
-<a name="id2712139"></a>
+<a name="id2712269"></a>
       <a href="compiler_specifics.html#boost_bimap.compiler_specifics.vs_7_1">VS 7.1</a>
     </h3>
 <p>
@@ -335,7 +335,7 @@
       in msdn is to split the .cpp in several files or upgrade your compiler.
     </p>
 <a name="boost_bimap.compiler_specifics.vs_8_0"></a><h3>
-<a name="id2712168"></a>
+<a name="id2712297"></a>
       <a href="compiler_specifics.html#boost_bimap.compiler_specifics.vs_8_0">VS 8.0</a>
     </h3>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -44,7 +44,7 @@
         find all the examples used in bimap documentation. Here is a list of them:
       </p>
 <div class="table">
-<a name="id2712289"></a><p class="title"><b>Table 1.7. Tutorial examples</b></p>
+<a name="id2712419"></a><p class="title"><b>Table 1.7. Tutorial examples</b></p>
 <div class="table-contents"><table class="table" summary="Tutorial examples">
 <colgroup>
 <col>
@@ -238,7 +238,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2712769"></a><p class="title"><b>Table 1.8. Bimap and Boost examples</b></p>
+<a name="id2712899"></a><p class="title"><b>Table 1.8. Bimap and Boost examples</b></p>
 <div class="table-contents"><table class="table" summary="Bimap and Boost examples">
 <colgroup>
 <col>
@@ -361,7 +361,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2712990"></a><p class="title"><b>Table 1.9. Boost.MultiIndex to Boost.Bimap path examples</b></p>
+<a name="id2713119"></a><p class="title"><b>Table 1.9. Boost.MultiIndex to Boost.Bimap path examples</b></p>
 <div class="table-contents"><table class="table" summary="Boost.MultiIndex to Boost.Bimap path examples">
 <colgroup>
 <col>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/mighty_bimap.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/mighty_bimap.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/mighty_bimap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___bidirectional_map.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___bidirectional_map.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___bidirectional_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -42,7 +42,7 @@
         query of words in both languages.
       </p></div>
 <a name="boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_multiindex"></a><h5>
-<a name="id2717964"></a>
+<a name="id2718093"></a>
         <a href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_multiindex">Boost.MultiIndex</a>
       </h5>
 <p>
@@ -151,7 +151,7 @@
 <p>
       </p>
 <a name="boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_bimap"></a><h5>
-<a name="id2719723"></a>
+<a name="id2719852"></a>
         <a href="multiindex_to_bimap_path___bidirectional_map.html#boost_bimap.examples.multiindex_to_bimap_path___bidirectional_map.boost_bimap">Boost.Bimap</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/multiindex_to_bimap_path___hashed_indices.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -40,7 +40,7 @@
         hashed index.
       </p></div>
 <a name="boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_multiindex"></a><h5>
-<a name="id2722451"></a>
+<a name="id2722582"></a>
         <a href="multiindex_to_bimap_path___hashed_indices.html#boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_multiindex">Boost.MultiIndex</a>
       </h5>
 <p>
@@ -141,7 +141,7 @@
 <p>
       </p>
 <a name="boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_bimap"></a><h5>
-<a name="id2724198"></a>
+<a name="id2724327"></a>
         <a href="multiindex_to_bimap_path___hashed_indices.html#boost_bimap.examples.multiindex_to_bimap_path___hashed_indices.boost_bimap">Boost.Bimap</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/simple_bimap.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/simple_bimap.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/examples/simple_bimap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/future_work.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/future_work.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/future_work.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_bimap.future_work"></a>Future work
 </h2></div></div></div>
 <a name="boost_bimap.future_work.rearrange_function"></a><h4>
-<a name="id2726729"></a>
+<a name="id2726859"></a>
       <a href="future_work.html#boost_bimap.future_work.rearrange_function">Rearrange Function</a>
     </h4>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/history.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/history.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/history/multiindex_and_bimap.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/history/multiindex_and_bimap.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/history/multiindex_and_bimap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/introduction.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/introduction.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/introduction.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_bimap.introduction"></a>Introduction
 </h2></div></div></div>
 <a name="boost_bimap.introduction.how_to_use_this_document"></a><h4>
-<a name="id2568681"></a>
+<a name="id2568705"></a>
       <a href="introduction.html#boost_bimap.introduction.how_to_use_this_document">How to use
       this document</a>
     </h4>
@@ -102,7 +102,7 @@
       </p></td></tr>
 </table></div>
 <a name="boost_bimap.introduction.navigation"></a><h4>
-<a name="id2567594"></a>
+<a name="id2567618"></a>
       <a href="introduction.html#boost_bimap.introduction.navigation">Navigation</a>
     </h4>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/one_minute_tutorial.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/one_minute_tutorial.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/one_minute_tutorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_bimap.one_minute_tutorial"></a>One minute tutorial
 </h2></div></div></div>
 <a name="boost_bimap.one_minute_tutorial.what_is_a_bimap_"></a><h4>
-<a name="id2567894"></a>
+<a name="id2567917"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.what_is_a_bimap_">What is a
       bimap?</a>
     </h4>
@@ -53,7 +53,7 @@
 <p>
       Given this code, the following is the complete description of the resulting
       bimap.
- <sup>[<a name="id2614376" href="#ftn.id2614376">1</a>]</sup>
+ <sup>[<a name="id2614398" href="#ftn.id2614398">1</a>]</sup>
     </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
@@ -109,7 +109,7 @@
 ...
 </pre>
 <a name="boost_bimap.one_minute_tutorial.layout_of_the_relation_and_the_pairs_of_a_bimap"></a><h4>
-<a name="id2615141"></a>
+<a name="id2615163"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.layout_of_the_relation_and_the_pairs_of_a_bimap">Layout
       of the relation and the pairs of a bimap</a>
     </h4>
@@ -123,7 +123,7 @@
       <span class="inlinemediaobject"><img src="../images/bimap/relation.and.pair.png" alt="relation.and.pair"></span>
     </p>
 <a name="boost_bimap.one_minute_tutorial.step_by_step"></a><h4>
-<a name="id2615219"></a>
+<a name="id2615242"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.step_by_step">Step by step</a>
     </h4>
 <p>
@@ -149,7 +149,7 @@
 <p>
     </p>
 <a name="boost_bimap.one_minute_tutorial.the_collection_of_relations_view"></a><h4>
-<a name="id2615391"></a>
+<a name="id2615413"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.the_collection_of_relations_view">The
       collection of relations view</a>
     </h4>
@@ -183,7 +183,7 @@
 <p>
     </p>
 <a name="boost_bimap.one_minute_tutorial.the_left_map_view"></a><h4>
-<a name="id2615896"></a>
+<a name="id2615920"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.the_left_map_view">The left
       map view</a>
     </h4>
@@ -247,7 +247,7 @@
 <p>
     </p>
 <a name="boost_bimap.one_minute_tutorial.the_right_map_view"></a><h4>
-<a name="id2616744"></a>
+<a name="id2616766"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.the_right_map_view">The right
       map view</a>
     </h4>
@@ -293,7 +293,7 @@
 <p>
     </p>
 <a name="boost_bimap.one_minute_tutorial.differences_with_std__map"></a><h4>
-<a name="id2617246"></a>
+<a name="id2617268"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.differences_with_std__map">Differences
       with std::map</a>
     </h4>
@@ -326,7 +326,7 @@
 <span class="identifier">assert</span><span class="special">(</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">==</span> <span class="number">1</span> <span class="special">);</span>
 </pre>
 <a name="boost_bimap.one_minute_tutorial.a_simple_example"></a><h4>
-<a name="id2618001"></a>
+<a name="id2618024"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.a_simple_example">A simple example</a>
     </h4>
 <p>
@@ -423,7 +423,7 @@
 <code class="literal">Spain ends in position 2</code>
 </pre>
 <a name="boost_bimap.one_minute_tutorial.continuing_the_journey"></a><h4>
-<a name="id2619434"></a>
+<a name="id2619457"></a>
       <a href="one_minute_tutorial.html#boost_bimap.one_minute_tutorial.continuing_the_journey">Continuing
       the journey</a>
     </h4>
@@ -449,7 +449,7 @@
 </table></div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id2614376" href="#id2614376">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id2614398" href="#id2614398">1</a>] </sup>
           A type is <span class="emphasis"><em>signature-compatible</em></span> with other type if
           it has the same signature for functions and metadata. Preconditions, postconditions
           and the order of operations need not be the same.

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/performance.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/performance.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/performance.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -155,7 +155,7 @@
         as being simple and powerful. This is the general design.
       </p>
 <a name="boost_bimap.rationale.general_design.relation_implementation"></a><h5>
-<a name="id2728525"></a>
+<a name="id2728654"></a>
         <a href="rationale.html#boost_bimap.rationale.general_design.relation_implementation">Relation
         Implementation</a>
       </h5>
@@ -258,7 +258,7 @@
         </p></td></tr>
 </table></div>
 <a name="boost_bimap.rationale.general_design.bimap_implementation"></a><h5>
-<a name="id2729115"></a>
+<a name="id2729244"></a>
         <a href="rationale.html#boost_bimap.rationale.general_design.bimap_implementation">Bimap
         Implementation</a>
       </h5>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/additional_features.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/additional_features.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/additional_features.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,7 +30,7 @@
       Features</a>
 </h3></div></div></div>
 <a name="boost_bimap.rationale.additional_features.n_1__n_n__hashed_maps"></a><h5>
-<a name="id2729403"></a>
+<a name="id2729533"></a>
         <a href="additional_features.html#boost_bimap.rationale.additional_features.n_1__n_n__hashed_maps">N-1,
         N-N, hashed maps</a>
       </h5>
@@ -62,7 +62,7 @@
         <span class="inlinemediaobject"><img src="../../images/bimap/bimap.structures.png" alt="bimap.structures"></span>
       </p>
 <a name="boost_bimap.rationale.additional_features.collection_type_of_relation_constraints"></a><h5>
-<a name="id2729511"></a>
+<a name="id2729641"></a>
         <a href="additional_features.html#boost_bimap.rationale.additional_features.collection_type_of_relation_constraints">Collection
         type of relation constraints</a>
       </h5>
@@ -106,7 +106,7 @@
         uses further metaprogramming to define a new index if necessary.
       </p>
 <a name="boost_bimap.rationale.additional_features.tagged"></a><h5>
-<a name="id2729600"></a>
+<a name="id2729729"></a>
         <a href="additional_features.html#boost_bimap.rationale.additional_features.tagged">Tagged</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/code.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/code.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/code.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,7 +36,7 @@
         Library Requirement and Guidelines</a> as closely as possible.
       </p>
 <div class="table">
-<a name="id2729714"></a><p class="title"><b>Table 1.10. folders in boost/bimap</b></p>
+<a name="id2729843"></a><p class="title"><b>Table 1.10. folders in boost/bimap</b></p>
 <div class="table-contents"><table class="table" summary="folders in boost/bimap">
 <colgroup>
 <col>
@@ -127,7 +127,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2729844"></a><p class="title"><b>Table 1.11. folders in each folder</b></p>
+<a name="id2729974"></a><p class="title"><b>Table 1.11. folders in each folder</b></p>
 <div class="table-contents"><table class="table" summary="folders in each folder">
 <colgroup>
 <col>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/the_student_and_the_mentor.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/the_student_and_the_mentor.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/rationale/the_student_and_the_mentor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/bimap_reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/bimap_reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/bimap_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/list_of_reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/list_of_reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/list_of_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/set_of_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unconstrained_set_of_reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unconstrained_set_of_reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unconstrained_set_of_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/unordered_set_of_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/vector_of_reference.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/vector_of_reference.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/reference/vector_of_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/release_notes.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/release_notes.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/release_notes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/test_suite.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/test_suite.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/test_suite.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,8 +15,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/bimaps_with_user_defined_names.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -129,7 +129,7 @@
 </span>
 <span class="keyword">typedef</span> <span class="identifier">bimap</span>
 <span class="special">&lt;</span>
- <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">,</span> <span class="identifier">id</span> <span class="special">&gt;</span> <span class="special">,</span>
+ <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="keyword">int</span> <span class="special">,</span> <span class="identifier">id</span> <span class="special">&gt;</span> <span class="special">,</span>
     <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
 
 <span class="special">&gt;</span> <span class="identifier">People</span><span class="special">;</span>
@@ -188,7 +188,7 @@
 <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">right_iterator</span> <span class="identifier">right_iter</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
 </pre>
 <div class="table">
-<a name="id2638326"></a><p class="title"><b>Table 1.3. Equivalence of expresions using user defined names</b></p>
+<a name="id2638349"></a><p class="title"><b>Table 1.3. Equivalence of expresions using user defined names</b></p>
 <div class="table-contents"><table class="table" summary="Equivalence of expresions using user defined names">
 <colgroup>
 <col>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/complete_instantiation_scheme.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/complete_instantiation_scheme.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/complete_instantiation_scheme.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -68,14 +68,15 @@
 </li>
 </ul></div>
 <pre class="programlisting">
-<span class="identifier">bimap</span><span class="special">&lt;</span> #<span class="special">[</span>#<span class="identifier">CollectionType</span><span class="special">]</span>#<span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">Type</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
+<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">Type</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
 </pre>
 <div class="itemizedlist"><ul type="disc">
 <li>
           Left type: <code class="computeroutput"><span class="identifier">Type</span></code>
 </li>
 <li>
- Left collection type: <span class="emphasis"><em>CollectionType</em></span><code class="computeroutput"><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span> <span class="special">&gt;</span></code>
+ Left collection type: <code class="computeroutput"><span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span>
+ <span class="special">&gt;</span></code>
 </li>
 <li>
           Left tag: <code class="computeroutput"><span class="identifier">member_at</span><span class="special">::</span><span class="identifier">left</span></code>
@@ -97,14 +98,15 @@
 </li>
 </ul></div>
 <pre class="programlisting">
-<span class="identifier">bimap</span><span class="special">&lt;</span> #<span class="special">[</span>#<span class="identifier">CollectionType</span><span class="special">]</span>#<span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Tag</span> <span class="special">&gt;</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
+<span class="identifier">bimap</span><span class="special">&lt;</span> <span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">tagged</span><span class="special">&lt;</span> <span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Tag</span> <span class="special">&gt;</span> <span class="special">&gt;,</span> <span class="identifier">R</span> <span class="special">&gt;</span>
 </pre>
 <div class="itemizedlist"><ul type="disc">
 <li>
           Left type: <code class="computeroutput"><span class="identifier">Type</span></code>
 </li>
 <li>
- Left collection type: <span class="emphasis"><em>CollectionType</em></span><code class="computeroutput"><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span> <span class="special">&gt;</span></code>
+ Left collection type: <code class="computeroutput"><span class="special">{</span><span class="identifier">CollectionType</span><span class="special">}</span><span class="identifier">_of</span><span class="special">&lt;</span> <span class="identifier">LeftType</span>
+ <span class="special">&gt;</span></code>
 </li>
 <li>
           Left tag: <code class="computeroutput"><span class="identifier">Tag</span></code>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/controlling_collection_types.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/controlling_collection_types.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/controlling_collection_types.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,8 +17,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -65,7 +65,7 @@
           The following is the list of all supported collection types.
         </p>
 <div class="table">
-<a name="id2621906"></a><p class="title"><b>Table 1.2. Collection of Key Types</b></p>
+<a name="id2621928"></a><p class="title"><b>Table 1.2. Collection of Key Types</b></p>
 <div class="table-contents"><table class="table" summary="Collection of Key Types">
 <colgroup>
 <col>
@@ -360,7 +360,7 @@
 <a name="boost_bimap.the_tutorial.controlling_collection_types.examples"></a>Examples
 </h4></div></div></div>
 <a name="boost_bimap.the_tutorial.controlling_collection_types.examples.countries_populations"></a><h6>
-<a name="id2623120"></a>
+<a name="id2623142"></a>
           <a href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples.countries_populations">Countries
           Populations</a>
         </h6>
@@ -464,7 +464,7 @@
 <p>
         </p>
 <a name="boost_bimap.the_tutorial.controlling_collection_types.examples.repetitions_counter"></a><h6>
-<a name="id2624454"></a>
+<a name="id2624476"></a>
           <a href="controlling_collection_types.html#boost_bimap.the_tutorial.controlling_collection_types.examples.repetitions_counter">Repetitions
           counter</a>
         </h6>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/differences_with_standard_maps.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/differences_with_standard_maps.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/differences_with_standard_maps.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/discovering_the_bimap_framework.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/discovering_the_bimap_framework.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/discovering_the_bimap_framework.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -78,7 +78,7 @@
           containers.
         </p>
 <div class="table">
-<a name="id2619812"></a><p class="title"><b>Table 1.1. std associative containers</b></p>
+<a name="id2619834"></a><p class="title"><b>Table 1.1. std associative containers</b></p>
 <div class="table-contents"><table class="table" summary="std associative containers">
 <colgroup>
 <col>

Deleted: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/hooking_information.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/hooking_information.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,221 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Hooking
- Information</title>
-<link rel="stylesheet" href="../../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.70.1">
-<link rel="start" href="../../index.html" title="Chapter 1. Boost.Bimap">
-<link rel="up" href="../the_tutorial.html" title="The tutorial">
-<link rel="prev" href="unconstrained_sets.html" title="Unconstrained
- Sets">
-<link rel="next" href="complete_instantiation_scheme.html" title="Complete
- instantiation scheme">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="unconstrained_sets.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="complete_instantiation_scheme.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_bimap.the_tutorial.hooking_information"></a><a href="hooking_information.html" title="Hooking
- Information">Hooking
- Information</a>
-</h3></div></div></div>
-<p>
- Bidirectional maps may have associated information about each relation. Suppose
- we want to represent a books and author bidirectional map.
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
-
- <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="comment">// author
-</span> <span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="comment">// book name
-</span>
-<span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">book</span><span class="special">;</span>
-
-<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
-
-<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">book</span><span class="special">(</span> <span class="string">"Bjarne Stroustrup"</span> <span class="special">,</span> <span class="string">"The C++ Programming Language"</span> <span class="special">)</span> <span class="special">);</span>
-<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">book</span><span class="special">(</span> <span class="string">"Scott Meyers"</span> <span class="special">,</span> <span class="string">"Effective C++"</span> <span class="special">)</span> <span class="special">);</span>
-<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span> <span class="identifier">book</span><span class="special">(</span> <span class="string">"Andrei Alexandrescu"</span> <span class="special">,</span> <span class="string">"Modern C++ Design"</span> <span class="special">)</span> <span class="special">);</span>
-
-<span class="comment">// Print the author of Modern C++
-</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span> <span class="string">"Modern C++ Design"</span> <span class="special">);</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- </p>
-<div class="calloutlist"><table border="0" summary="Callout list"></table></div>
-<p>
- </p>
-<p>
- </p>
-<p>
- Suppose now that we want to store abstract of each book. We have two options:
- </p>
-<div class="orderedlist"><ol type="1">
-<li>
- Books name are unique identifiers, so we can create a separate <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span> <span class="identifier">string</span><span class="special">,</span> <span class="identifier">string</span> <span class="special">&gt;</span></code>
- that relates books names with abstracts.
- </li>
-<li>
- We can use Boost.MultiIndex for the new beast.
- </li>
-</ol></div>
-<p>
- Option 1 is the wrong approach, if we go this path we lost what bimap has
- won us. We now have to maintain the logic of two interdependent containers,
- there is an extra string stored for each book name, and the performance will
- be worse. This is far away from being a good solution.
- </p>
-<p>
- Option 2 is correct. We start thinking books as entries in a table. So it
- makes sense to start using Boost.MultiIndex. We can then add the year of
- publication, the price, etc... and we can index this new items too. So Boost.MultiIndex
- is a sound solution for our problem.
- </p>
-<p>
- The thing is that there are cases where we want to maintain bimap semantics
- (use <code class="computeroutput"><span class="identifier">at</span><span class="special">()</span></code>
- to find an author given a book name and the other way around) and add information
- about the relations that we are sure we will not want to index later (like
- the abstracts). Option 1 is not possible, option 2 neither.
- </p>
-<p>
- Boost.Bimap provides support for this kind of situations by means of information
- hooking. You can pass an extra parameter to a bimap with the type <code class="computeroutput"><span class="identifier">info_hook</span><span class="special">&lt;</span>
- <span class="identifier">InfoType</span> <span class="special">&gt;</span></code>
- and an <code class="computeroutput"><span class="identifier">info</span></code> member of type
- <code class="computeroutput"><span class="identifier">InfoType</span></code> will appear in the
- relation and bimap pairs.
- </p>
-<p>
- Relations and bimap pairs constructors can take an extra argument. If only
- two arguments are used, the information will be initialized with their default
- constructor.
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">bimap</span><span class="special">&lt;</span>
-
- <span class="identifier">multiset_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="comment">// author
-</span> <span class="identifier">set_of</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;,</span> <span class="comment">// book name
-</span>
- <span class="identifier">with_info</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="special">&gt;</span> <span class="comment">// abstract
-</span>
-<span class="special">&gt;</span> <span class="identifier">bm_type</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">book</span><span class="special">;</span>
-
-<span class="identifier">bm_type</span> <span class="identifier">bm</span><span class="special">;</span>
-
-<span class="identifier">bm</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span>
-
- <span class="identifier">book</span><span class="special">(</span> <span class="string">"Bjarne Stroustrup"</span> <span class="special">,</span> <span class="string">"The C++ Programming Language"</span><span class="special">,</span>
-
- <span class="string">"For C++ old-timers, the first edition of this book is"</span>
- <span class="string">"the one that started it all&#8212;the font of our knowledge."</span> <span class="special">)</span>
-<span class="special">);</span>
-
-
-<span class="comment">// Print the abstract of the bible
-</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="string">"The C++ Programming Language"</span><span class="special">);</span>
-
-<span class="comment">// Print the abstract of this book
-</span><span class="identifier">bm_type</span><span class="special">::</span><span class="identifier">left_iterator</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">left</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"Bjarne Stroustrup"</span><span class="special">);</span>
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">info</span><span class="special">;</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- </p>
-<div class="calloutlist"><table border="0" summary="Callout list"></table></div>
-<p>
- </p>
-<p>
- </p>
-<p>
- Contrary to the two key types, the information will be mutable using iterators.
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting">
-<span class="identifier">i</span><span class="special">-&gt;</span><span class="identifier">info</span> <span class="special">+=</span> <span class="string">"More details about this book"</span><span class="special">;</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- </p>
-<div class="calloutlist"><table border="0" summary="Callout list"></table></div>
-<p>
- </p>
-<p>
- </p>
-<p>
- A new function is included in <span class="emphasis"><em>unique</em></span> map views: <code class="computeroutput"><span class="identifier">info_at</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span></code>, that
- mimics the standard <code class="computeroutput"><span class="identifier">at</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span></code> function
- but returned the associated information instead of the data.
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting">
-<span class="comment">// Print the new abstract
-</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">bm</span><span class="special">.</span><span class="identifier">right</span><span class="special">.</span><span class="identifier">info_at</span><span class="special">(</span><span class="string">"The C++ Programming Language"</span><span class="special">);</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- </p>
-<div class="calloutlist"><table border="0" summary="Callout list"></table></div>
-<p>
- </p>
-<p>
- </p>
-<p>
- Go to source code
- </p>
-</div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"></td>
-<td align="right"><small>Copyright © 2006 -2007 Matias Capeletto</small></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="unconstrained_sets.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../the_tutorial.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="complete_instantiation_scheme.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/the_collection_of_relations_type.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/the_collection_of_relations_type.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/the_collection_of_relations_type.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,8 +17,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/unconstrained_sets.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/unconstrained_sets.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/unconstrained_sets.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,8 +17,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/useful_functions.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/useful_functions.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/boost_bimap/the_tutorial/useful_functions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,8 +16,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Deleted: branches/proto/v3/libs/bimap/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/extern/boost.blade.logo.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/home.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/important.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/next.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/note.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/prev.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/up.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/bimap/doc/html/images/warning.png
==============================================================================
Binary file. No diff available.

Modified: branches/proto/v3/libs/bimap/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/bimap/doc/html/index.html (original)
+++ branches/proto/v3/libs/bimap/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright © 2006 -2007 Matias Capeletto</p></div>
 <div><div class="legalnotice">
-<a name="id2604918"></a><p>
+<a name="id2604940"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -120,7 +120,7 @@
 <a name="bimap.preface"></a>Preface
 </h2></div></div></div>
 <a name="bimap.preface.description"></a><h4>
-<a name="id2604956"></a>
+<a name="id2604978"></a>
       <a href="index.html#bimap.preface.description">Description</a>
     </h4>
 <p>
@@ -137,7 +137,7 @@
       containers.
     </p>
 <a name="bimap.preface.influences_and_related_work"></a><h4>
-<a name="id2568634"></a>
+<a name="id2568656"></a>
       <a href="index.html#bimap.preface.influences_and_related_work">Influences and Related
       Work</a>
     </h4>
@@ -149,7 +149,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: November 30, 2007 at 19:10:09 GMT</small></p></td>
+<td align="left"><p><small>Last revised: February 14, 2008 at 19:01:52 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/bimap/doc/tutorial.qbk
==============================================================================
--- branches/proto/v3/libs/bimap/doc/tutorial.qbk (original)
+++ branches/proto/v3/libs/bimap/doc/tutorial.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -962,10 +962,10 @@
 * Left collection type: `set_of< Type >`
 * Left tag: `member_at::left`
 
- bimap< `['CollectionType]`_of< Type >, R >
+ bimap< {CollectionType}_of< Type >, R >
 
 * Left type: `Type`
-* Left collection type: ['CollectionType]`_of< LeftType >`
+* Left collection type: `{CollectionType}_of< LeftType >`
 * Left tag: `member_at::left`
 
     bimap< tagged< Type, Tag >, R >
@@ -974,10 +974,10 @@
 * Left collection type: `set_of< LeftType >`
 * Left tag: `Tag`
 
- bimap< `['CollectionType]`_of< tagged< Type, Tag > >, R >
+ bimap< {CollectionType}_of< tagged< Type, Tag > >, R >
 
 * Left type: `Type`
-* Left collection type: ['CollectionType]`_of< LeftType >`
+* Left collection type: `{CollectionType}_of< LeftType >`
 * Left tag: `Tag`
 
 The same options are available for the second parameter.

Modified: branches/proto/v3/libs/bimap/example/user_defined_names.cpp
==============================================================================
--- branches/proto/v3/libs/bimap/example/user_defined_names.cpp (original)
+++ branches/proto/v3/libs/bimap/example/user_defined_names.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -97,7 +97,7 @@
 
     typedef bimap
     <
- tagged< int , id > ,
+ tagged< int , id > ,
         multiset_of< tagged< std::string, name > >
 
> People;

Modified: branches/proto/v3/libs/bimap/index.html
==============================================================================
--- branches/proto/v3/libs/bimap/index.html (original)
+++ branches/proto/v3/libs/bimap/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,5 +5,10 @@
 <body>
 Automatic redirection failed, please go to the
 <a href="doc/html/index.html">Boost.Bimap documentation</a>.
+<p>Copyright&nbsp;Matias Capeletto 2006-2007</p>
+<p>Distributed under the Boost Software License, Version 1.0. (See accompanying file
+LICENSE_1_0.txt or copy at
+www.boost.org/LICENSE_1_0.txt).
+</p>
 </body>
 </html>

Modified: branches/proto/v3/libs/bind/bind.html
==============================================================================
--- branches/proto/v3/libs/bind/bind.html (original)
+++ branches/proto/v3/libs/bind/bind.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -60,6 +60,7 @@
                 <h4 style="MARGIN-LEFT: 40pt"><A href="#err_long_form">Inappropriate use of
                                 bind&lt;R&gt;(f, ...)</A></h4>
                 <h4 style="MARGIN-LEFT: 40pt">Binding a nonstandard function</h4>
+ <h4 style="MARGIN-LEFT: 40pt">Binding an overloaded function</h4>
                 <h4 style="MARGIN-LEFT: 40pt">const in signatures</h4>
                 <h4 style="MARGIN-LEFT: 40pt"><A href="#err_msvc_using">MSVC specific: using
                                 boost::bind;</A></h4>
@@ -188,6 +189,27 @@
 </pre>
                 <p>[Note: the ability to omit the return type is not available on all compilers.]
                 </p>
+ <P>By default, <STRONG>bind</STRONG> makes a copy of the provided function object. <code>
+ boost::ref</code> and <code>boost::cref</code> can be used to make it store
+ a reference to the function object, rather than a copy. This can be useful when
+ the function object is noncopyable, expensive to copy, or contains state; of
+ course, in this case the programmer is expected to ensure that the function
+ object is not destroyed while it's still being used.</P>
+ <pre>struct F2
+{
+ int s;
+
+ typedef void result_type;
+ void operator()( int x ) { s += x; }
+};
+
+F2 f2 = { 0 };
+int a[] = { 1, 2, 3 };
+
+std::for_each( a, a+3, bind( ref(f2), _1 ) );
+
+assert( f2.s == 6 );
+</pre>
                 <h3><a name="with_member_pointers">Using bind with pointers to members</a></h3>
                 <p>Pointers to member functions and pointers to data members are not function
                         objects, because they do not support <tt>operator()</tt>. For convenience, <b>bind</b>
@@ -285,21 +307,23 @@
                         evaluation, use <tt>protect(bind(f, ...))</tt>.</P>
                 <h3><a name="operators">Overloaded operators</a> (new in Boost 1.33)</h3>
                 <p>For convenience, the function objects produced by <tt>bind</tt> overload the
- logical not operator <STRONG>!</STRONG> and the relational operators <STRONG>==</STRONG>,
- <STRONG>!=</STRONG>, <STRONG>&lt;</STRONG>, <STRONG>&lt;=</STRONG>, <STRONG>&gt;</STRONG>,
- <STRONG>&gt;=</STRONG>.</p>
+ logical not operator <code>!</code> and the relational and logical operators <code>==</code>,
+ <code>!=</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>,
+ <code>&amp;&amp;</code>, <code>||</code>.</p>
                 <P><tt>!bind(f, ...)</tt> is equivalent to <tt>bind( <EM>logical_not</EM>(), bind(f,
                                 ...) )</tt>, where <tt><EM>logical_not</EM></tt> is a function object that
                         takes one argument <tt>x</tt> and returns <tt>!x</tt>.</P>
- <P><tt>bind(f, ...) <EM>op</EM> x</tt>, where <EM>op</EM> is a relational operator,
- is equivalent to <tt>bind( <EM>relation</EM>(), bind(f, ...), x )</tt>, where <em>relation</em>
- is a function object that takes two arguments <tt>a</tt> and <tt>b</tt> and
- returns <tt>a <EM>op</EM> b</tt>.</P>
+ <P><tt>bind(f, ...) <EM>op</EM> x</tt>, where <EM>op</EM> is a relational or
+ logical operator, is equivalent to <tt>bind( <EM>relation</EM>(), bind(f, ...), x )</tt>,
+ where <em>relation</em> is a function object that takes two arguments <tt>a</tt>
+ and <tt>b</tt> and returns <tt>a <EM>op</EM> b</tt>.</P>
                 <P>What this means in practice is that you can conveniently negate the result of <tt>bind</tt>:</P>
                 <P><tt>std::remove_if( first, last, !bind( &amp;X::visible, _1 ) ); // remove invisible
                                 objects</tt></P>
                 <P>and compare the result of <tt>bind</tt> against a value:</P>
- <P><tt>std::find_if( first, last, bind( &amp;X::name, _1 ) == "peter" );</tt></P>
+ <P><tt>std::find_if( first, last, bind( &amp;X::name, _1 ) == "Peter" );</tt></P>
+ <P><tt>std::find_if( first, last, bind( &amp;X::name, _1 ) == "Peter" || bind(
+ &amp;X::name, _1 ) == "Paul" );</tt></P>
                 <P>against a placeholder:</P>
                 <P><tt>bind( &amp;X::name, _1 ) == _2</tt></P>
                 <P>or against another <tt>bind</tt> expression:</P>
@@ -362,10 +386,12 @@
 }
 </pre>
                 <h2><a name="Limitations">Limitations</a></h2>
- <p>The function objects generated by <b>bind</b> take their arguments by reference
- and cannot, therefore, accept non-const temporaries or literal constants. This
- is an inherent limitation of the C++ language, known as <A href="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm">
- the forwarding problem</A>.</p>
+ <p>As a general rule, the function objects generated by <b>bind</b> take their
+ arguments by reference and cannot, therefore, accept non-const temporaries or
+ literal constants. This is an inherent limitation of the C++ language in its
+ current (2003) incarnation, known as <A href="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm">
+ the forwarding problem</A>. (It will be fixed in the next standard, usually
+ called C++0x.)</p>
                 <p>The library uses signatures of the form
                 </p>
                 <pre>template&lt;class T&gt; void f(T &amp; t);
@@ -373,17 +399,17 @@
                 <p>to accept arguments of arbitrary types and pass them on unmodified. As noted,
                         this does not work with non-const r-values.
                 </p>
- <p>An oft-proposed "solution" to this problem is to add an overload:
+ <p>On compilers that support partial ordering of function templates, a possible
+ solution is to add an overload:
                 </p>
                 <pre>template&lt;class T&gt; void f(T &amp; t);
 template&lt;class T&gt; void f(T const &amp; t);
 </pre>
- <p>Unfortunately, this (a) requires providing 512 overloads for nine arguments and
- (b) does not actually work for const arguments, both l- and r-values, since the
- two templates produce the exact same signature and cannot be partially ordered.
- </p>
- <p>[Note: this is a dark corner of the language, and the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#214">
- corresponding issue</a> has only recently been resolved.]
+ <p>Unfortunately, this requires providing 512 overloads for nine arguments, which
+ is impractical. The library chooses a small subset: for up to two arguments, it
+ provides the const overloads in full, for arities of three and more it provides
+ a single additional overload with all of the arguments taken by const
+ reference. This covers a reasonable portion of the use cases.
                 </p>
                 <h2><a name="FAQ">Frequently Asked Questions</a></h2>
                 <h3><a name="Q_doesnt_compile">Why doesn't this compile?</a></h3>
@@ -528,6 +554,37 @@
                         recognized by the short form of bind.
                 </p>
                 <P>See also "__stdcall" and "pascal" Support.</P>
+ <h3><a name="err_overloaded">Binding an overloaded function</a></h3>
+ <p>An attempt to bind an overloaded function usually results in an error, as there
+ is no way to tell which overload was meant to be bound. This is a common
+ problem with member functions with two overloads, const and non-const, as in
+ this simplified example:</p>
+ <pre>struct X
+{
+ int&amp; get();
+ int const&amp; get() const;
+};
+
+int main()
+{
+ boost::bind( &amp;X::get, _1 );
+}
+</pre>
+ <P>The ambiguity can be resolved manually by casting the (member) function pointer
+ to the desired type:</P>
+<pre>int main()
+{
+ boost::bind( static_cast&lt; int const&amp; (X::*) () const &gt;( &amp;X::get ), _1 );
+}
+</pre>
+ <P>Another, arguably more readable, alternative is to introduce a temporary
+ variable:</P>
+<pre>int main()
+{
+ int const&amp; (X::*get) () const = &amp;X::get;
+ boost::bind( get, _1 );
+}
+</pre>
                 <h3><a name="err_const_arg"><b>const</b> in signatures</a></h3>
                 <p>Some compilers, including MSVC 6.0 and Borland C++ 5.5.1, have problems with the
                         top-level <b>const</b> in function signatures:
@@ -859,7 +916,7 @@
                         by Jaakko Järvi;
                         <li>
                                 The Lambda Library
- (now part of Boost) by Jaakko Järvi and Gary Powell (the successor to the
+ (now part of Boost) by Jaakko Järvi and Gary Powell (the successor to the
                         Binder Library);
                         <li>
                                 <a href="http://more.sourceforge.net/">Extensions to the STL</a> by Petter
@@ -890,7 +947,7 @@
                         <br>
                         <br>
                         <small>Copyright © 2001, 2002 by Peter Dimov and Multi Media Ltd. Copyright
- 2003-2005 Peter Dimov. Distributed under the Boost Software License, Version
+ 2003-2008 Peter Dimov. Distributed under the Boost Software License, Version
                                 1.0. See accompanying file LICENSE_1_0.txt or
                                 copy at http://www.boost.org/LICENSE_1_0.txt.</small></p>
         </body>

Modified: branches/proto/v3/libs/bind/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/bind/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/bind/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,6 +27,7 @@
       [ run bind_visit_test.cpp ]
       [ run bind_placeholder_test.cpp ]
       [ run bind_rvalue_test.cpp ]
+ [ run bind_and_or_test.cpp ]
       [ run mem_fn_test.cpp ]
       [ run mem_fn_void_test.cpp ]
       [ run mem_fn_derived_test.cpp ]

Modified: branches/proto/v3/libs/circular_buffer/doc/circular_buffer.html
==============================================================================
--- branches/proto/v3/libs/circular_buffer/doc/circular_buffer.html (original)
+++ branches/proto/v3/libs/circular_buffer/doc/circular_buffer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,6 +30,11 @@
     <a href="#briefexample">Introductory Example</a><br>
     <a href="#synopsis">Synopsis</a><br>
     <a href="#rationale">Rationale</a><br>
+ - Thread-Safety<br>
+ - Overwrite Operation<br>
+ - Writing to a Full Buffer<br>
+ - Reading/Removing from an Empty Buffer<br>
+ - Iterator Invalidation<br>
     <a href="#caveats">Caveats</a><br>
     <a href="#debug">Debug Support</a><br>
     <a href="#examples">More Examples</a><br>
@@ -366,9 +371,10 @@
     </h4>
     <p>
       The thread-safety of the <code>circular_buffer</code> is the same as the thread-safety of containers in most STL
- implementations. This means the <code>circular_buffer</code> is thread-safe only in the sense that simultaneous
- accesses to distinct instances of the <code>circular_buffer</code> are safe, and simultaneous read accesses to a
- shared <code>circular_buffer</code> are safe.
+ implementations. This means the <code>circular_buffer</code> is <b>not</b> thread-safe. The thread-safety is
+ guarantied only in the sense that simultaneous accesses to <b>distinct</b> instances of the
+ <code>circular_buffer</code> are safe, and simultaneous read accesses to a shared <code>circular_buffer</code>
+ are safe.
     </p>
     <p>
       If multiple threads access a single <code>circular_buffer</code>, and at least one of the threads may potentially
@@ -378,7 +384,7 @@
       Buffer Example</a>.)
     </p>
     <h4>
- Overwrite Operation
+ <a name="overwrite" id="overwrite">Overwrite Operation</a>
     </h4>
     <p>
       Overwrite operation occurs when an element is inserted into a full <code>circular_buffer</code> - the old element
@@ -397,7 +403,7 @@
       being shifted (e.g. as a result of insertion into the middle of container).
     </p>
     <h4>
- Writing to a Full Buffer
+ <a name="fullbuffer" id="fullbuffer">Writing to a Full Buffer</a>
     </h4>
     <p>
       There are several options how to cope with the case if a data source produces more data than can fit in the
@@ -429,7 +435,7 @@
       contrary to <code>std::vector</code>, it bears an overhead for its circular behaviour.
     </p>
     <h4>
- Reading/Removing from an Empty Buffer
+ <a name="emptybuffer" id="emptybuffer">Reading/Removing from an Empty Buffer</a>
     </h4>
     <p>
       When reading or removing an element from an empty buffer, the buffer should be able to notify the data consumer
@@ -450,7 +456,7 @@
       which throws an exception when the index is out of range.
     </p>
     <h4>
- Iterator Invalidation
+ <a name="iteratorinvalidation" id="iteratorinvalidation">Iterator Invalidation</a>
     </h4>
     <p>
       An iterator is usually considered to be invalidated if an element, the iterator pointed to, had been removed or
@@ -933,11 +939,11 @@
             </dl>
             <dl>
               <dt>
- <b>Note:</b>
+ <b>Warning:</b>
               </dt>
               <dd>
                 This constructor has been defined only due to compatibility with the STL container definition. Avoid
- using it because it may allocate very large amount of memory.
+ using it because it may allocate <b>very large</b> amount of memory.
               </dd>
             </dl>
           </td>
@@ -5986,6 +5992,19 @@
             </dl>
             <dl>
               <dt>
+ <b>Note:</b>
+ </dt>
+ <dd>
+ This method is symetric to the <code><a href=
+ "#classboost_1_1circular__buffer_197155de712db1759e1698455b49a0be3">erase(iterator)</a></code> method
+ and is more effective than <code><a href=
+ "#classboost_1_1circular__buffer_197155de712db1759e1698455b49a0be3">erase(iterator)</a></code> if the
+ iterator <code>pos</code> is close to the beginning of the <code>circular_buffer</code>. (See the
+ <i>Complexity</i>.)
+ </dd>
+ </dl>
+ <dl>
+ <dt>
                 <b>See Also:</b>
               </dt>
               <dd>
@@ -6097,6 +6116,21 @@
             </dl>
             <dl>
               <dt>
+ <b>Note:</b>
+ </dt>
+ <dd>
+ This method is symetric to the <code><a href=
+ "#classboost_1_1circular__buffer_1a96415389509a18bd7d7b5d8e4dda9bd">erase(iterator,
+ iterator)</a></code> method and is more effective than <code><a href=
+ "#classboost_1_1circular__buffer_1a96415389509a18bd7d7b5d8e4dda9bd">erase(iterator,
+ iterator)</a></code> if <code>std::distance(<a href=
+ "#classboost_1_1circular__buffer_158d1ede2e85f5d46eda8db3f0c4efef0">begin()</a>, first)</code> is lower
+ that <code>std::distance(last, <a href=
+ "#classboost_1_1circular__buffer_1babfa093dad7801223b80626b598dee1">end()</a>)</code>.
+ </dd>
+ </dl>
+ <dl>
+ <dt>
                 <b>See Also:</b>
               </dt>
               <dd>

Modified: branches/proto/v3/libs/circular_buffer/doc/space_optimized.html
==============================================================================
--- branches/proto/v3/libs/circular_buffer/doc/space_optimized.html (original)
+++ branches/proto/v3/libs/circular_buffer/doc/space_optimized.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3922,6 +3922,17 @@
             </dl>
             <dl>
               <dt>
+ <b>Note:</b>
+ </dt>
+ <dd>
+ Basically there is no difference between <code><a href=
+ "#classboost_1_1circular__buffer__space__optimized_136feadef225bd8a10962a92c4ffcdfd3">erase(iterator)</a></code>
+ and this method. It is implemented only for consistency with the base <code><a href=
+ "circular_buffer.html">circular_buffer</a></code>.
+ </dd>
+ </dl>
+ <dl>
+ <dt>
                 <b>See Also:</b>
               </dt>
               <dd>
@@ -4043,6 +4054,17 @@
             </dl>
             <dl>
               <dt>
+ <b>Note:</b>
+ </dt>
+ <dd>
+ Basically there is no difference between <code><a href=
+ "#classboost_1_1circular__buffer__space__optimized_19e9a4e0dfca27329da78e014d97201ca">erase(iterator,
+ iterator)</a></code> and this method. It is implemented only for consistency with the base
+ <code>circular_buffer</code>.
+ </dd>
+ </dl>
+ <dl>
+ <dt>
                 <b>See Also:</b>
               </dt>
               <dd>

Modified: branches/proto/v3/libs/circular_buffer/test/base_test.cpp
==============================================================================
--- branches/proto/v3/libs/circular_buffer/test/base_test.cpp (original)
+++ branches/proto/v3/libs/circular_buffer/test/base_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -189,7 +189,6 @@
     BOOST_CHECK(!(end - 1 < it));
 }
 
-// TODO add insert, push_back etc.
 void iterator_invalidation_test() {
 
 #if !defined(NDEBUG) && !defined(BOOST_CB_DISABLE_DEBUG)

Modified: branches/proto/v3/libs/circular_buffer/test/common.ipp
==============================================================================
--- branches/proto/v3/libs/circular_buffer/test/common.ipp (original)
+++ branches/proto/v3/libs/circular_buffer/test/common.ipp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -534,9 +534,11 @@
     BOOST_CHECK(cb1.reserve() == 0);
     BOOST_CHECK(cb1.full());
     BOOST_CHECK(cb1.empty());
+ BOOST_CHECK(cb1.reserve() == cb1.capacity() - cb1.size());
     BOOST_CHECK(cb2.capacity() == 10);
     BOOST_CHECK(cb2.size() == 0);
     BOOST_CHECK(cb2.reserve() == 10);
+ BOOST_CHECK(cb2.reserve() == cb2.capacity() - cb2.size());
 
     cb1.push_back(1);
     cb2.push_back(2);
@@ -548,9 +550,11 @@
     BOOST_CHECK(cb1.reserve() == 0);
     BOOST_CHECK(cb1.full());
     BOOST_CHECK(cb1.empty());
+ BOOST_CHECK(cb1.reserve() == cb1.capacity() - cb1.size());
     BOOST_CHECK(cb2.capacity() == 10);
     BOOST_CHECK(cb2.size() == 3);
     BOOST_CHECK(cb2.reserve() == 7);
+ BOOST_CHECK(cb2.reserve() == cb2.capacity() - cb2.size());
 
     generic_test(cb1);
     generic_test(cb2);

Modified: branches/proto/v3/libs/concept_check/bibliography.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/bibliography.htm (original)
+++ branches/proto/v3/libs/concept_check/bibliography.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -56,7 +56,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000</TD><TD>
-Jeremy Siek(<A
+Jeremy Siek(<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 Andrew Lumsdaine</A>(<A HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/concept_check/concept_check.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/concept_check.htm (original)
+++ branches/proto/v3/libs/concept_check/concept_check.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,7 +26,7 @@
   <blockquote>
     The Concept Check library allows one to add explicit statement and
     checking of <a href=
- "../../more/generic_programming.html#concept">concepts</a> in the style
+ "http://www.boost.org/more/generic_programming.html#concept">concepts</a> in the style
     of the <a href=
     "http://www.generic-programming.org/languages/conceptcpp/specification/">proposed
     C++ language extension</a>.
@@ -36,7 +36,7 @@
 
   <p>Generic programming in C++ is characterized by the use of template
   parameters to represent abstract data types (or “<a href=
- "../../more/generic_programming.html#concept">concepts</a>”). However, the
+ "http://www.boost.org/more/generic_programming.html#concept">concepts</a>”). However, the
   C++ language itself does not provide a mechanism for the writer of a class
   or function template to explicitly state the concept that the user-supplied
   template argument should model (or conform to). Template parameters are
@@ -124,9 +124,9 @@
     <li>Reference</li>
   </ol>
 
- <p>Jeremy Siek contributed this
- library. Beman Dawes managed
- the formal review. <a href="../../people/dave_abrahams.htm">Dave
+ <p>Jeremy Siek contributed this
+ library. Beman Dawes managed
+ the formal review. <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
   Abrahams</a> contributed a rewrite that updated syntax to be more
   compatible with proposed syntax for concept support the C++ core
   language.</p>
@@ -319,7 +319,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>),
         2007 <a href="mailto:dave_at_[hidden]">David Abrahams</a>.

Modified: branches/proto/v3/libs/concept_check/concept_covering.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/concept_covering.htm (original)
+++ branches/proto/v3/libs/concept_check/concept_covering.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -115,7 +115,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>),
         2007 <a href="mailto:dave_at_[hidden]">David Abrahams</a>.

Modified: branches/proto/v3/libs/concept_check/creating_concepts.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/creating_concepts.htm (original)
+++ branches/proto/v3/libs/concept_check/creating_concepts.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -76,7 +76,7 @@
   InputIterator concept.</p>
 
   <p>Next, we declare the concept's <a href=
- "../../more/generic_programming.html#associated_type">associated types</a>
+ "http://www.boost.org/more/generic_programming.html#associated_type">associated types</a>
   as member typedefs. The associated difference type is required to be a
   signed integer, and the iterator category has to be convertible to
   std::input_iterator_tag, so we assert those relationships. The syntax for
@@ -147,7 +147,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>),
         2007 <a href="mailto:dave_at_[hidden]">David Abrahams</a>.

Modified: branches/proto/v3/libs/concept_check/implementation.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/implementation.htm (original)
+++ branches/proto/v3/libs/concept_check/implementation.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -195,7 +195,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>),
         2007 <a href="mailto:dave_at_[hidden]">David Abrahams</a>.

Modified: branches/proto/v3/libs/concept_check/prog_with_concepts.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/prog_with_concepts.htm (original)
+++ branches/proto/v3/libs/concept_check/prog_with_concepts.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -134,7 +134,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>),
         2007 <a href="mailto:dave_at_[hidden]">David Abrahams</a>.

Modified: branches/proto/v3/libs/concept_check/reference.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/reference.htm (original)
+++ branches/proto/v3/libs/concept_check/reference.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -398,7 +398,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>), 2007
       <a href="mailto:dave_at_[hidden]">David Abrahams</a>.</td>

Modified: branches/proto/v3/libs/concept_check/using_concept_check.htm
==============================================================================
--- branches/proto/v3/libs/concept_check/using_concept_check.htm (original)
+++ branches/proto/v3/libs/concept_check/using_concept_check.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -176,7 +176,7 @@
     <tr valign="top">
       <td nowrap="nowrap">Copyright &copy; 2000</td>
 
- <td>Jeremy Siek(<a href=
+ <td>Jeremy Siek(<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>) Andrew
       Lumsdaine(<a href="mailto:lums_at_[hidden]">lums_at_[hidden]</a>), 2007
       <a href="mailto:dave_at_[hidden]">David Abrahams</a>.</td>

Modified: branches/proto/v3/libs/config/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/config/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/config/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,24 +34,26 @@
         <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
 
         # PDF Options:
- # TOC Generation: this is needed for FOP-0.9 and later:
- #<xsl:param>fop1.extensions=1
- # Or enable this if you're using XEP:
- <xsl:param>xep.extensions=1
+ <format>pdf:<xsl:param>xep.extensions=1
         # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
- <xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop.extensions=0
+ <format>pdf:<xsl:param>fop1.extensions=0
         # No indent on body text:
- <xsl:param>body.start.indent=0pt
+ <format>pdf:<xsl:param>body.start.indent=0pt
         # Margin size:
- <xsl:param>page.margin.inner=0.5in
+ <format>pdf:<xsl:param>page.margin.inner=0.5in
         # Margin size:
- <xsl:param>page.margin.outer=0.5in
+ <format>pdf:<xsl:param>page.margin.outer=0.5in
+ # Paper type = A4
+ <format>pdf:<xsl:param>paper.type=A4
         # Yes, we want graphics for admonishments:
         <xsl:param>admon.graphics=1
         # Set this one for PDF generation *only*:
         # default pnd graphics are awful in PDF form,
         # better use SVG's instead:
         <format>pdf:<xsl:param>admon.graphics.extension=".svg"
+ <format>pdf:<xsl:param>use.role.for.mediaobject=1
+ <format>pdf:<xsl:param>preferred.mediaobject.role=print
         <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
     ;
 
@@ -60,3 +62,5 @@
 
 
 
+
+

Modified: branches/proto/v3/libs/config/doc/config.qbk
==============================================================================
--- branches/proto/v3/libs/config/doc/config.qbk (original)
+++ branches/proto/v3/libs/config/doc/config.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -19,7 +19,7 @@
 
 [/ Cited Boost resources ]
 
-[def __BOOST_REGRESSION_TEST_DRIVER__ [@../../../../more/regression.html boost regression test driver]]
+[def __BOOST_REGRESSION_TEST_DRIVER__ [@../../../../tools/regression/doc/index.html boost regression test driver]]
 [def __BOOST_CONFIG_HEADER__ [@../../../../boost/config.hpp <boost/config.hpp>]]
 [def __BOOST_CONFIG_USER_HEADER__ [@../../../../boost/config/user.hpp <boost/config/user.hpp>]]
 [def __BOOST_CONFIG_SUFFIX_HEADER__ [@../../../../boost/config/user.hpp <boost/config/suffix.hpp>]]

Modified: branches/proto/v3/libs/config/doc/html/boost_config/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/config/doc/html/boost_config/acknowledgements.html (original)
+++ branches/proto/v3/libs/config/doc/html/boost_config/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -47,10 +47,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/config/doc/html/boost_config/boost_macro_reference.html
==============================================================================
--- branches/proto/v3/libs/config/doc/html/boost_config/boost_macro_reference.html (original)
+++ branches/proto/v3/libs/config/doc/html/boost_config/boost_macro_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -258,8 +258,7 @@
                 The compiler fails to compile a nested class that has a dependent
                 base class:
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">foo</span> <span class="special">:</span> <span class="special">{</span>
    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">U</span><span class="special">&gt;</span>
    <span class="keyword">struct</span> <span class="identifier">bar</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">U</span> <span class="special">{};</span>
@@ -285,8 +284,7 @@
                 Template value parameters cannot have a dependent type, for example:
                 
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">type</span> <span class="identifier">value</span><span class="special">&gt;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">type</span> <span class="identifier">value</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">X</span> <span class="special">{</span> <span class="special">...</span> <span class="special">};</span>
 </pre>
 <p>
@@ -367,8 +365,7 @@
                 The compiler does not perform function template ordering or its function
                 template ordering is incorrect.
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="comment">// #1
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="comment">// #1
 </span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
 
 <span class="comment">// #2
@@ -1138,8 +1135,7 @@
                 The compiler does not allow a void function to return the result
                 of calling another void function.
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">{}</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">()</span> <span class="special">{}</span>
 <span class="keyword">void</span> <span class="identifier">g</span><span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">f</span><span class="special">();</span> <span class="special">}</span>
 </pre>
 <p>
@@ -2280,16 +2276,14 @@
                 us a convenient way to declare such constants. For example instead
                 of:
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="keyword">struct</span> <span class="identifier">foo</span><span class="special">{</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">foo</span><span class="special">{</span>
    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 <p>
                 use:
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="keyword">struct</span> <span class="identifier">foo</span><span class="special">{</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">foo</span><span class="special">{</span>
    <span class="identifier">BOOST_STATIC_CONSTANT</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">value</span> <span class="special">=</span> <span class="number">2</span><span class="special">);</span>
 <span class="special">};</span>
 </pre>
@@ -2322,8 +2316,7 @@
                 instantiations if some of the template parameters don't appear in
                 the function parameter list. For instance:
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">ostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">typeinfo</span><span class="special">&gt;</span>
 
@@ -2347,8 +2340,7 @@
                 problem without effects on the calling syntax. For instance, in the
                 case above write:
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">&gt;</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">&gt;</span>
 <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">BOOST_EXPLICIT_TEMPLATE_NON_TYPE</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">n</span><span class="special">))</span> <span class="special">{</span> <span class="special">...</span> <span class="special">}</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -2742,8 +2734,7 @@
 <p>
           <span class="bold"><strong>my_library.hpp</strong></span>
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#ifndef</span> <span class="identifier">MY_INCLUDE_GUARD</span>
+<pre class="programlisting"><span class="preprocessor">#ifndef</span> <span class="identifier">MY_INCLUDE_GUARD</span>
 <span class="preprocessor">#define</span> <span class="identifier">MY_INCLUDE_GUARD</span>
 
 <span class="comment">// all includes go here:
@@ -2765,8 +2756,7 @@
 <p>
           <span class="bold"><strong>my_library.cpp</strong></span>
         </p>
-<pre class="programlisting">
-<span class="special">...</span>
+<pre class="programlisting"><span class="special">...</span>
 <span class="comment">// nothing special need be done in the implementation file
 </span><span class="special">...</span>
 </pre>
@@ -2831,8 +2821,7 @@
 <p>
           <span class="bold"><strong>my_library.hpp</strong></span>
         </p>
-<pre class="programlisting">
-<span class="special">...</span>
+<pre class="programlisting"><span class="special">...</span>
 <span class="comment">//
 </span><span class="comment">// Don't include auto-linking code if the user has disabled it by
 </span><span class="comment">// defining BOOST_ALL_NO_LIB, or BOOST_MY_LIBRARY_NO_LIB, or if this
@@ -2850,8 +2839,7 @@
 <p>
           <span class="bold"><strong>my_library.cpp</strong></span>
         </p>
-<pre class="programlisting">
-<span class="comment">// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the
+<pre class="programlisting"><span class="comment">// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the
 </span><span class="comment">// library is being built (possibly exporting rather than importing code)
 </span><span class="comment">//
 </span><span class="preprocessor">#define</span> <span class="identifier">BOOST_MY_LIBRARY_SOURCE</span>
@@ -2864,10 +2852,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
==============================================================================
--- branches/proto/v3/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html (original)
+++ branches/proto/v3/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -125,8 +125,7 @@
         the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
         file with the following comments near the top:
       </p>
-<pre class="programlisting">
-<span class="comment">// MACRO: BOOST_NO_FOO
+<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO
 </span><span class="comment">// TITLE: foo
 </span><span class="comment">// DESCRIPTION: If the compiler fails to support foo
 </span></pre>
@@ -139,8 +138,7 @@
         the same name as the macro, but in all lower case, and which returns zero
         on success:
       </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
 
 <span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
 <span class="special">{</span>
@@ -280,10 +278,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/config/doc/html/boost_config/rationale.html
==============================================================================
--- branches/proto/v3/libs/config/doc/html/boost_config/rationale.html (original)
+++ branches/proto/v3/libs/config/doc/html/boost_config/rationale.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -121,10 +121,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/config/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/config/doc/html/index.html (original)
+++ branches/proto/v3/libs/config/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id489908"></a><p>
+<a name="id435855"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -139,8 +139,7 @@
 <p>
         Boost library implementations access configuration macros via
       </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <boost/config.hpp>
+<pre class="programlisting"><span class="preprocessor">#include</span> <boost/config.hpp>
 </pre>
 <p>
         While Boost library users are not required to include that file directly,
@@ -275,8 +274,7 @@
         For example to run the configure script with HP aCC, you might use something
         like:
       </p>
-<pre class="programlisting">
-<span class="keyword">export</span> <span class="identifier">CXX</span><span class="special">=</span><span class="string">"aCC"</span>
+<pre class="programlisting"><span class="keyword">export</span> <span class="identifier">CXX</span><span class="special">=</span><span class="string">"aCC"</span>
 <span class="keyword">export</span> <span class="identifier">CXXFLAGS</span><span class="special">=</span><span class="string">"-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
    -DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"</span>
 <span class="keyword">export</span> <span class="identifier">LDFLAGS</span><span class="special">=</span><span class="string">"-DAportable"</span>
@@ -743,8 +741,7 @@
           there. Finally, open up <boost/config/user.hpp>
           and edit the following defines:
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_COMPILER_CONFIG</span> <span class="string">"boost/config/mysetup/visualc.hpp"</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_COMPILER_CONFIG</span> <span class="string">"boost/config/mysetup/visualc.hpp"</span>
 <span class="preprocessor">#define</span> <span class="identifier">BOOST_STDLIB_CONFIG</span> <span class="string">"boost/config/mysetup/stlport.hpp"</span>
 <span class="preprocessor">#define</span> <span class="identifier">BOOST_USER_CONFIG</span> <span class="string">"boost/config/mysetup/win32.hpp"</span>
 </pre>
@@ -930,7 +927,7 @@
         to help you out:
       </p>
 <p>
- If you have built the <a href="../../../../more/regression.html" target="_top">boost
+ If you have built the <a href="../../../../tools/regression/doc/index.html" target="_top">boost
         regression test driver</a>, then you can use this to produce a nice html
         formatted report of the results using the supplied test file.
       </p>
@@ -961,8 +958,8 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: November 07, 2007 at 17:16:43 GMT</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="left"><p><small>Last revised: February 21, 2008 at 16:56:38 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>

Modified: branches/proto/v3/libs/conversion/cast.htm
==============================================================================
--- branches/proto/v3/libs/conversion/cast.htm (original)
+++ branches/proto/v3/libs/conversion/cast.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -120,10 +120,10 @@
     <p><code>polymorphic_cast</code> was suggested by Bjarne Stroustrup in "The C++
     Programming Language".<br>
      <code>polymorphic_downcast</code> was contributed by <a href=
- "../../people/dave_abrahams.htm">Dave Abrahams</a>.<code><br>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a>.<code><br>
      An old
      numeric_cast</code> that was contributed by <a href=
- "../../people/kevlin_henney.htm">Kevlin Henney</a> is now superseeded by the Boost Numeric Conversion Library</p>
+ "http://www.boost.org/people/kevlin_henney.htm">Kevlin Henney</a> is now superseeded by the Boost Numeric Conversion Library</p>
     <hr>
 
     <p>Revised

Modified: branches/proto/v3/libs/crc/index.html
==============================================================================
--- branches/proto/v3/libs/crc/index.html (original)
+++ branches/proto/v3/libs/crc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,9 +17,9 @@
                         color="white"><big>Home</big></font></a></td>
                 <td><a href="../libraries.htm"><font face="Arial"
                         color="white"><big>Libraries</big></font></a></td>
- <td><a href="../../people/people.htm"><font face="Arial"
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial"
                         color="white"><big>People</big></font></a></td>
- <td><a href="../../more/faq.htm"><font face="Arial"
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial"
                         color="white"><big>FAQ</big></font></a></td>
                 <td><a href="../../more/index.htm"><font face="Arial"
                         color="white"><big>More</big></font></a></td>

Modified: branches/proto/v3/libs/date_time/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/date_time/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/date_time/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright (c) 2002-2005 CrystalClear Software, Inc.
 # Use, modification and distribution is subject to the
 # Boost Software License, Version 1.0. (See accompanying
-# file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 #
 # Boost.date_time build and test Jamfile
 #

Modified: branches/proto/v3/libs/date_time/example/Jamfile
==============================================================================
--- branches/proto/v3/libs/date_time/example/Jamfile (original)
+++ branches/proto/v3/libs/date_time/example/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -104,6 +104,6 @@
 # Copyright (c) 2002-2005
 # CrystalClear Software, Inc.
 # Subject to the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE-1.0 or
-# http://www.boost.org/LICENSE-1.0)
+# (See accompanying file LICENSE_1_0.txt or
+# http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/Jamfile.v2 (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright (c) 2002-2006 CrystalClear Software, Inc.
 # Use, modification and distribution is subject to the
 # Boost Software License, Version 1.0. (See accompanying
-# file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 #
 
 project

Modified: branches/proto/v3/libs/date_time/example/gregorian/date_serialization_demo.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/date_serialization_demo.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/date_serialization_demo.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -122,6 +122,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/dates_as_strings.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/dates_as_strings.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/dates_as_strings.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -58,6 +58,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/days_alive.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/days_alive.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/days_alive.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -42,6 +42,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/days_between_new_years.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/days_between_new_years.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/days_between_new_years.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,6 +32,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/days_since_year_start.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/days_since_year_start.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/days_since_year_start.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,6 +20,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/days_till_new_year.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/days_till_new_year.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/days_till_new_year.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,6 +21,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/end_of_month_day.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/end_of_month_day.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/end_of_month_day.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -41,6 +41,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/find_last_day_of_months.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/find_last_day_of_months.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/find_last_day_of_months.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -48,6 +48,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/localization.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/localization.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/localization.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -95,6 +95,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/month_add.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/month_add.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/month_add.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -47,6 +47,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/period_calc.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/period_calc.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/period_calc.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,6 +81,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/print_holidays.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/print_holidays.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/print_holidays.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -78,6 +78,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/gregorian/print_month.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/gregorian/print_month.cpp (original)
+++ branches/proto/v3/libs/date_time/example/gregorian/print_month.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -57,6 +57,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/local_time/calc_rules.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/local_time/calc_rules.cpp (original)
+++ branches/proto/v3/libs/date_time/example/local_time/calc_rules.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -42,6 +42,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/local_time/flight.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/local_time/flight.cpp (original)
+++ branches/proto/v3/libs/date_time/example/local_time/flight.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -46,5 +46,5 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */

Modified: branches/proto/v3/libs/date_time/example/local_time/local_date_time.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/local_time/local_date_time.cpp (original)
+++ branches/proto/v3/libs/date_time/example/local_time/local_date_time.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -41,5 +41,5 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */

Modified: branches/proto/v3/libs/date_time/example/local_time/seconds_since_epoch.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/local_time/seconds_since_epoch.cpp (original)
+++ branches/proto/v3/libs/date_time/example/local_time/seconds_since_epoch.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -61,5 +61,5 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */

Modified: branches/proto/v3/libs/date_time/example/local_time/simple_time_zone.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/local_time/simple_time_zone.cpp (original)
+++ branches/proto/v3/libs/date_time/example/local_time/simple_time_zone.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,6 +81,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/posix_time/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/date_time/example/posix_time/Jamfile.v2 (original)
+++ branches/proto/v3/libs/date_time/example/posix_time/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright (c) 2002-2005 CrystalClear Software, Inc.
 # Use, modification and distribution is subject to the
 # Boost Software License, Version 1.0. (See accompanying
-# file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 project
     : requirements <library>../../build/boost_date_time

Modified: branches/proto/v3/libs/date_time/example/posix_time/local_utc_conversion.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/posix_time/local_utc_conversion.cpp (original)
+++ branches/proto/v3/libs/date_time/example/posix_time/local_utc_conversion.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -85,6 +85,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/posix_time/print_hours.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/posix_time/print_hours.cpp (original)
+++ branches/proto/v3/libs/date_time/example/posix_time/print_hours.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -48,6 +48,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/posix_time/time_math.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/posix_time/time_math.cpp (original)
+++ branches/proto/v3/libs/date_time/example/posix_time/time_math.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,6 +31,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/posix_time/time_periods.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/posix_time/time_periods.cpp (original)
+++ branches/proto/v3/libs/date_time/example/posix_time/time_periods.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -53,6 +53,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/example/tutorial/io_tutorial.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/example/tutorial/io_tutorial.cpp (original)
+++ branches/proto/v3/libs/date_time/example/tutorial/io_tutorial.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -189,6 +189,6 @@
  * http://www.crystalclearsoftware.com
  *
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  */
 

Modified: branches/proto/v3/libs/date_time/src/date_time.doc
==============================================================================
Binary files. No diff available.

Modified: branches/proto/v3/libs/date_time/src/gregorian/date_generators.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/src/gregorian/date_generators.cpp (original)
+++ branches/proto/v3/libs/date_time/src/gregorian/date_generators.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/src/gregorian/greg_month.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/src/gregorian/greg_month.cpp (original)
+++ branches/proto/v3/libs/date_time/src/gregorian/greg_month.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/src/gregorian/greg_names.hpp
==============================================================================
--- branches/proto/v3/libs/date_time/src/gregorian/greg_names.hpp (original)
+++ branches/proto/v3/libs/date_time/src/gregorian/greg_names.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/src/gregorian/greg_weekday.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/src/gregorian/greg_weekday.cpp (original)
+++ branches/proto/v3/libs/date_time/src/gregorian/greg_weekday.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/src/gregorian/gregorian_types.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/src/gregorian/gregorian_types.cpp (original)
+++ branches/proto/v3/libs/date_time/src/gregorian/gregorian_types.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/src/posix_time/posix_time_types.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/src/posix_time/posix_time_types.cpp (original)
+++ branches/proto/v3/libs/date_time/src/posix_time/posix_time_types.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/date_time/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/date_time/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -227,8 +227,8 @@
 # Copyright (c) 2000-2005
 # CrystalClear Software, Inc.
 # Subject to the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE-1.0 or
-# http://www.boost.org/LICENSE-1.0)
+# (See accompanying file LICENSE_1_0.txt or
+# http://www.boost.org/LICENSE_1_0.txt)
 
 
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testcurrent_day.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testcurrent_day.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testcurrent_day.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testdate.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testdate.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testdate.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testdate_duration.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testdate_duration.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testdate_duration.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testdate_facet_new.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testdate_facet_new.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testdate_facet_new.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/gregorian/testdate_input_facet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testdate_input_facet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testdate_input_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/gregorian/testdate_iterator.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testdate_iterator.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testdate_iterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testfacet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testfacet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testfacet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testformat_date_parser.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testformat_date_parser.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testformat_date_parser.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testformatters.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testformatters.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testformatters.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgenerators.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgenerators.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgenerators.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_cal.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_cal.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_cal.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_day.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_day.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_day.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_durations.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_durations.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_durations.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_month.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_month.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_month.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_serialize.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_serialize.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_serialize.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
  

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_wstream.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_wstream.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_wstream.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/gregorian/testgreg_year.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testgreg_year.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testgreg_year.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testparse_date.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testparse_date.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testparse_date.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/gregorian/testperiod.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/gregorian/testperiod.cpp (original)
+++ branches/proto/v3/libs/date_time/test/gregorian/testperiod.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/local_time/testclocks.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testclocks.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testclocks.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testcustom_time_zone.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testcustom_time_zone.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testcustom_time_zone.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testdst_transition_day_rule.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testdst_transition_day_rule.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testdst_transition_day_rule.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testlocal_time.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testlocal_time.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testlocal_time.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testlocal_time_facet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testlocal_time_facet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testlocal_time_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testlocal_time_input_facet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testlocal_time_input_facet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testlocal_time_input_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testlocal_time_iterator.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testlocal_time_iterator.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testlocal_time_iterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testlocal_time_period.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testlocal_time_period.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testlocal_time_period.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/local_time/testposix_time_zone.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testposix_time_zone.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testposix_time_zone.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testtz_database.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testtz_database.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testtz_database.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testwcustom_time_zone.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testwcustom_time_zone.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testwcustom_time_zone.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2005 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/local_time/testwposix_time_zone.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/local_time/testwposix_time_zone.cpp (original)
+++ branches/proto/v3/libs/date_time/test/local_time/testwposix_time_zone.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Subject to the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/posix_time/testc_local_adjustor.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testc_local_adjustor.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testc_local_adjustor.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testclock.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testclock.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testclock.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testdst_rules.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testdst_rules.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testdst_rules.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testduration.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testduration.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testduration.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/posix_time/testfiletime_functions.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testfiletime_functions.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testfiletime_functions.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003, 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testformatters.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testformatters.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testformatters.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testgreg_duration_operators.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testgreg_duration_operators.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testgreg_duration_operators.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testiterator.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testiterator.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testiterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/posix_time/testlocal_adjustor.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testlocal_adjustor.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testlocal_adjustor.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003, 2007 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testmicrosec_time_clock.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testmicrosec_time_clock.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testmicrosec_time_clock.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testparse_time.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testparse_time.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testparse_time.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testperiod.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testperiod.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testperiod.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/teststreams.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/teststreams.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/teststreams.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 #include "boost/date_time/posix_time/posix_time.hpp"

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime_facet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime_facet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime_formatters.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime_formatters.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime_formatters.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime_input_facet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime_input_facet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime_input_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime_period.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime_period.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime_period.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime_serialize.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime_serialize.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime_serialize.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002-2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
  

Modified: branches/proto/v3/libs/date_time/test/posix_time/testtime_wstream.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/posix_time/testtime_wstream.cpp (original)
+++ branches/proto/v3/libs/date_time/test/posix_time/testtime_wstream.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2003-2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Bart Garst
  * $Date$
  */

Modified: branches/proto/v3/libs/date_time/test/testconstrained_value.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testconstrained_value.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testconstrained_value.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/testfrom_facet.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testfrom_facet.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testfrom_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2004 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  * $Date$
  *

Modified: branches/proto/v3/libs/date_time/test/testgeneric_period.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testgeneric_period.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testgeneric_period.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/testgregorian_calendar.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testgregorian_calendar.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testgregorian_calendar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/testint64_range.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testint64_range.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testint64_range.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/testint_adapter.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testint_adapter.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testint_adapter.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/test/testtime_resolution_traits.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testtime_resolution_traits.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testtime_resolution_traits.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland
  */
 

Modified: branches/proto/v3/libs/date_time/test/testwrapping_int.cpp
==============================================================================
--- branches/proto/v3/libs/date_time/test/testwrapping_int.cpp (original)
+++ branches/proto/v3/libs/date_time/test/testwrapping_int.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc.
  * Use, modification and distribution is subject to the
  * Boost Software License, Version 1.0. (See accompanying
- * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
  * Author: Jeff Garland, Bart Garst
  */
 

Modified: branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright (c) 2002-2006 CrystalClear Software, Inc.
 # Use, modification and distribution is subject to the
 # Boost Software License, Version 1.0. (See accompanying
-# file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 #
 
 import boostbook : boostbook ;

Modified: branches/proto/v3/libs/date_time/xmldoc/README
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/README (original)
+++ branches/proto/v3/libs/date_time/xmldoc/README 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -35,4 +35,4 @@
 # Copyright (c) 2002-2006 CrystalClear Software, Inc.
 # Use, modification and distribution is subject to the
 # Boost Software License, Version 1.0. (See accompanying
-# file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+# file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/date_time/xmldoc/acknowledgements.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/acknowledgements.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/acknowledgements.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.acknowledgements">

Modified: branches/proto/v3/libs/date_time/xmldoc/buildinfo.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/buildinfo.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/buildinfo.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.buildinfo">

Modified: branches/proto/v3/libs/date_time/xmldoc/calculations.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/calculations.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/calculations.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.calculations">

Modified: branches/proto/v3/libs/date_time/xmldoc/changes.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/changes.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/changes.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.changes">

Modified: branches/proto/v3/libs/date_time/xmldoc/conceptual.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/conceptual.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/conceptual.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.conceptual" xmlns:xi="http://www.w3.org/2001/XInclude">

Modified: branches/proto/v3/libs/date_time/xmldoc/custom_time_zone.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/custom_time_zone.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/custom_time_zone.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time.custom_time_zone">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_algorithms.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_algorithms.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_algorithms.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.gregorian.date_algorithms">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_class.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_class.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_class.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2007 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.gregorian.date_class">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_duration.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_duration.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_duration.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section xmlns:xi="http://www.w3.org/2001/XInclude" id="date_time.gregorian.date_duration">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_facet.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_facet.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_facet.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.date_facet">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_input_facet.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_input_facet.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_input_facet.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.date_input_facet">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_iterators.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_iterators.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_iterators.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.gregorian.date_iterators">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_period.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_period.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_period.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.gregorian.date_period">

Modified: branches/proto/v3/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_time_fo_stylesheet.xsl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,7 +9,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
   <xsl:import href="../../../tools/boostbook/xsl/fo.xsl" />

Modified: branches/proto/v3/libs/date_time/xmldoc/date_time_io.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/date_time_io.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/date_time_io.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.date_time_io"

Modified: branches/proto/v3/libs/date_time/xmldoc/design_concepts.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/design_concepts.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/design_concepts.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.design_concepts">

Modified: branches/proto/v3/libs/date_time/xmldoc/design_goals.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/design_goals.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/design_goals.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.design_goals">

Modified: branches/proto/v3/libs/date_time/xmldoc/details.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/details.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/details.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.details" xmlns:xi="http://www.w3.org/2001/XInclude">

Modified: branches/proto/v3/libs/date_time/xmldoc/domain_concepts.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/domain_concepts.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/domain_concepts.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.domain_concepts">

Modified: branches/proto/v3/libs/date_time/xmldoc/doxy.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/doxy.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/doxy.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.doxy" xmlns:xi="http://www.w3.org/2001/XInclude">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_calc_rules.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_calc_rules.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_calc_rules.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.calc_rules">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_date_period_calc.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_date_period_calc.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_date_period_calc.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.date_period_calc">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_dates_as_strings.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_dates_as_strings.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_dates_as_strings.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.dates_as_strings">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_days_alive.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_days_alive.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_days_alive.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.days_alive">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_days_between_new_years.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_days_between_new_years.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_days_between_new_years.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.days_between_new_year">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_end_of_month_day.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_end_of_month_day.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_end_of_month_day.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.end_of_month_day">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_find_last_day_of_months.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_find_last_day_of_months.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_find_last_day_of_months.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.end_of_month_day">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_flight.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_flight.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_flight.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.flight">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_local_utc_conversion.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_local_utc_conversion.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_local_utc_conversion.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.local_utc_conversion">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_localization.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_localization.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_localization.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.localization">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_meeting_planner.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_meeting_planner.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_meeting_planner.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.meeting_planner">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_month_add.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_month_add.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_month_add.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.month_add">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_print_holidays.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_print_holidays.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_print_holidays.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.print_holidays">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_print_hours.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_print_hours.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_print_hours.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.print_hours">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_print_month.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_print_month.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_print_month.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.print_month">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_seconds_since_epoch.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_seconds_since_epoch.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_seconds_since_epoch.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.seconds_since_epoch">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_simple_time_zone.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_simple_time_zone.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_simple_time_zone.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.simple_time_zone">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_time_math.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_time_math.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_time_math.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.time_math">

Modified: branches/proto/v3/libs/date_time/xmldoc/ex_time_periods.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ex_time_periods.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ex_time_periods.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.time_periods">

Modified: branches/proto/v3/libs/date_time/xmldoc/examples.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/examples.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/examples.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples" xmlns:xi="http://www.w3.org/2001/XInclude">

Modified: branches/proto/v3/libs/date_time/xmldoc/exclusive_date_time.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/exclusive_date_time.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/exclusive_date_time.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 

Modified: branches/proto/v3/libs/date_time/xmldoc/format_flags.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/format_flags.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/format_flags.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.format_flags">

Modified: branches/proto/v3/libs/date_time/xmldoc/gregorian.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/gregorian.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/gregorian.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.gregorian"

Modified: branches/proto/v3/libs/date_time/xmldoc/gregorian_calendar.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/gregorian_calendar.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/gregorian_calendar.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.gregorian.gregorian_calendar">

Modified: branches/proto/v3/libs/date_time/xmldoc/io_objects.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/io_objects.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/io_objects.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.io_objects"

Modified: branches/proto/v3/libs/date_time/xmldoc/io_tutorial.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/io_tutorial.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/io_tutorial.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.io_tutorial"

Modified: branches/proto/v3/libs/date_time/xmldoc/license.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/license.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/license.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 <!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.license">

Modified: branches/proto/v3/libs/date_time/xmldoc/local_date_time.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/local_date_time.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/local_date_time.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time.local_date_time">

Modified: branches/proto/v3/libs/date_time/xmldoc/local_time.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/local_time.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/local_time.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time"

Modified: branches/proto/v3/libs/date_time/xmldoc/local_time_period.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/local_time_period.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/local_time_period.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time.local_time_period">

Modified: branches/proto/v3/libs/date_time/xmldoc/motivation.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/motivation.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/motivation.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 <!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="Motivation">

Modified: branches/proto/v3/libs/date_time/xmldoc/posix_time.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/posix_time.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/posix_time.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.posix_time"

Modified: branches/proto/v3/libs/date_time/xmldoc/posix_time_zone.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/posix_time_zone.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/posix_time_zone.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time.posix_time_zone">

Modified: branches/proto/v3/libs/date_time/xmldoc/ptime_class.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ptime_class.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ptime_class.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.posix_time.ptime_class">

Modified: branches/proto/v3/libs/date_time/xmldoc/ref_tag_fix.pl
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/ref_tag_fix.pl (original)
+++ branches/proto/v3/libs/date_time/xmldoc/ref_tag_fix.pl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 #############################################################################
 # Copyright (c) 2001-2005 CrystalClear Software, Inc. #
 # Subject to the Boost Software License, Version 1.0. #
-# (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0) #
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) #
 #############################################################################
 
 use strict;
@@ -81,7 +81,7 @@
     print OTP <<EO_LIC;
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <!-- date source directory processed: $year-$month-$day -->
 EO_LIC

Modified: branches/proto/v3/libs/date_time/xmldoc/references.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/references.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/references.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.references">

Modified: branches/proto/v3/libs/date_time/xmldoc/serialization.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/serialization.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/serialization.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.serialization">

Modified: branches/proto/v3/libs/date_time/xmldoc/snap_to_details.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/snap_to_details.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/snap_to_details.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 

Modified: branches/proto/v3/libs/date_time/xmldoc/table_template.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/table_template.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/table_template.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 <!-- Copyright (c) 2004-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <!-- this file is here simply to make the creation of new tables easier and uniform in their layout -->

Modified: branches/proto/v3/libs/date_time/xmldoc/terminology.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/terminology.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/terminology.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.terminology">

Modified: branches/proto/v3/libs/date_time/xmldoc/tests.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/tests.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/tests.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.tests">

Modified: branches/proto/v3/libs/date_time/xmldoc/time_duration.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/time_duration.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/time_duration.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.posix_time.time_duration">

Modified: branches/proto/v3/libs/date_time/xmldoc/time_facet.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/time_facet.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/time_facet.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.time_facet">

Modified: branches/proto/v3/libs/date_time/xmldoc/time_input_facet.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/time_input_facet.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/time_input_facet.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.time_input_facet">

Modified: branches/proto/v3/libs/date_time/xmldoc/time_iterators.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/time_iterators.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/time_iterators.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.posix_time.time_iterators">

Modified: branches/proto/v3/libs/date_time/xmldoc/time_period.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/time_period.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/time_period.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2006 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.posix_time.time_period">

Modified: branches/proto/v3/libs/date_time/xmldoc/time_zone_base.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/time_zone_base.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/time_zone_base.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time.time_zone_base">

Modified: branches/proto/v3/libs/date_time/xmldoc/tradeoffs.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/tradeoffs.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/tradeoffs.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.tradeoffs">

Modified: branches/proto/v3/libs/date_time/xmldoc/tz_database.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/tz_database.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/tz_database.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.local_time.tz_database">

Modified: branches/proto/v3/libs/date_time/xmldoc/usage_examples.xml
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/usage_examples.xml (original)
+++ branches/proto/v3/libs/date_time/xmldoc/usage_examples.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
 <!-- Copyright (c) 2001-2005 CrystalClear Software, Inc.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <section id="date_time.examples.general_usage_examples">

Modified: branches/proto/v3/libs/disjoint_sets/bibliography.html
==============================================================================
--- branches/proto/v3/libs/disjoint_sets/bibliography.html (original)
+++ branches/proto/v3/libs/disjoint_sets/bibliography.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -45,7 +45,7 @@
     <tr valign="top">
       <td nowrap><i>Copyright &copy; 2000</i></td>
 
- <td><i>Jeremy Siek, Univ.of
+ <td><i>Jeremy Siek, Univ.of
       Notre Dame (<a href=
       "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>)</i></td>
     </tr>

Modified: branches/proto/v3/libs/disjoint_sets/disjoint_sets.html
==============================================================================
--- branches/proto/v3/libs/disjoint_sets/disjoint_sets.html (original)
+++ branches/proto/v3/libs/disjoint_sets/disjoint_sets.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -290,7 +290,7 @@
     <tr valign="top">
       <td nowrap><i>Copyright &copy; 2000</i></td>
 
- <td><i>Jeremy Siek, Univ.of
+ <td><i>Jeremy Siek, Univ.of
       Notre Dame (<a href="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>)<br>
       <a href="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</a>,
       Univ.of Notre Dame (<a href=

Modified: branches/proto/v3/libs/dynamic_bitset/dynamic_bitset.html
==============================================================================
--- branches/proto/v3/libs/dynamic_bitset/dynamic_bitset.html (original)
+++ branches/proto/v3/libs/dynamic_bitset/dynamic_bitset.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -489,7 +489,7 @@
 <p><tt>dynamic_bitset</tt> does not throw exceptions when a
 precondition is violated (as is done in <tt>std::bitset</tt>).
 Instead <tt>assert</tt> is used. See the guidelines for <a href=
-"../../more/error_handling.html">Error and Exception Handling</a>
+"http://www.boost.org/more/error_handling.html">Error and Exception Handling</a>
 for the explanation.</p>
 
 <h3><a name="header-files">Header Files</a></h3>
@@ -1702,7 +1702,7 @@
 
 <tr valign="top">
 <td nowrap>Copyright &copy; 2001</td>
-<td>Jeremy Siek,
+<td>Jeremy Siek,
 Indiana University (<a href=
 "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>)<br>
 <a href="http://freshsources.com">Chuck Allison</a>, Senior

Modified: branches/proto/v3/libs/filesystem/doc/design.htm
==============================================================================
--- branches/proto/v3/libs/filesystem/doc/design.htm (original)
+++ branches/proto/v3/libs/filesystem/doc/design.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -100,7 +100,7 @@
   Libraries with elaborate interfaces and difficult to port specifications are much less likely to be accepted for
   standardization.<br>
 &nbsp;</li>
- <li>The usual Boost <a href="../../../more/lib_guide.htm">requirements and
+ <li>The usual Boost <a href="http://www.boost.org/more/lib_guide.htm">requirements and
   guidelines</a> apply.<br>
 &nbsp;</li>
   <li>Encourage, but do not require, portability in path names.<br>

Modified: branches/proto/v3/libs/filesystem/doc/index.htm
==============================================================================
--- branches/proto/v3/libs/filesystem/doc/index.htm (original)
+++ branches/proto/v3/libs/filesystem/doc/index.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -334,7 +334,7 @@
 systems which will work with the Filesystem Library.</p>
 <p>The object-library can be built for static or dynamic (shared/dll) linking.
 This is controlled by the BOOST_ALL_DYN_LINK or BOOST_FILESYSTEM_DYN_LINK
-macros. See the <a href="../../../more/separate_compilation.html">Separate
+macros. See the <a href="http://www.boost.org/more/separate_compilation.html">Separate
 Compilation</a> page for a description of the techniques used.</p>
 <h3>Note for <a name="Cgywin">Cygwin</a> users</h3>
 <p>The library's implementation code automatically detects the current platform,

Modified: branches/proto/v3/libs/foreach/doc/foreach.qbk
==============================================================================
--- branches/proto/v3/libs/foreach/doc/foreach.qbk (original)
+++ branches/proto/v3/libs/foreach/doc/foreach.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -162,6 +162,14 @@
         // Note: get_vector_float() will be called exactly once
     }
 
+Iterate in reverse:
+
+ std::list<int> list_int( /*...*/ );
+ BOOST_REVERSE_FOREACH( int i, list_int )
+ {
+ // do something with i
+ }
+
 Iterating over rvalues doesn't work on some older compilers. Check the
 [link foreach.portability Portability] section to see whether your
 compiler supports this.
@@ -170,11 +178,12 @@
 
 People have complained about the name _foreach_. It's too long. `ALL CAPS` can
 get tiresome to look at. That may be true, but _foreach_ is merely following
-the [@../../../more/lib_guide.htm Boost Naming Convention]. That
+the [@http://www.boost.org/more/lib_guide.htm Boost Naming Convention]. That
 doesn't mean you're stuck with it, though. If you would like to use a different
 identifier (`foreach`, perhaps), you can simply do:
 
- #define foreach BOOST_FOREACH
+ #define foreach BOOST_FOREACH
+ #define reverse_foreach BOOST_REVERSE_FOREACH
 
 Only do this if you are sure that the identifier you choose will not cause
 name conflicts in your code.

Modified: branches/proto/v3/libs/foreach/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/foreach/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/foreach/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,16 +8,27 @@
 test-suite "foreach"
     : [ run stl_byval.cpp ]
       [ run stl_byref.cpp ]
+ [ run stl_byval_r.cpp ]
+ [ run stl_byref_r.cpp ]
       [ run array_byval.cpp ]
       [ run array_byref.cpp ]
+ [ run array_byval_r.cpp ]
+ [ run array_byref_r.cpp ]
       [ run cstr_byval.cpp ]
       [ run cstr_byref.cpp ]
+ [ run cstr_byval_r.cpp ]
+ [ run cstr_byref_r.cpp ]
       [ run pair_byval.cpp ]
       [ run pair_byref.cpp ]
+ [ run pair_byval_r.cpp ]
+ [ run pair_byref_r.cpp ]
       [ run user_defined.cpp ]
       [ run call_once.cpp ]
       [ run rvalue_const.cpp ]
       [ run rvalue_nonconst.cpp ]
+ [ run rvalue_const_r.cpp ]
+ [ run rvalue_nonconst_r.cpp ]
       [ run dependent_type.cpp ]
+ [ run misc.cpp ]
       [ compile noncopyable.cpp ]
     ;

Modified: branches/proto/v3/libs/foreach/test/utility.hpp
==============================================================================
--- branches/proto/v3/libs/foreach/test/utility.hpp (original)
+++ branches/proto/v3/libs/foreach/test/utility.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -76,4 +76,68 @@
     }
 }
 
+
+///////////////////////////////////////////////////////////////////////////////
+// sequence_equal_byval_n_r
+inline bool sequence_equal_byval_n_r( foreach_container_type & rng, char const * result )
+{
+ BOOST_REVERSE_FOREACH( foreach_value_type i, rng )
+ {
+ if(0 == *result || i != *result)
+ return false;
+ ++result;
+ }
+ return 0 == *result;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// sequence_equal_byval_c_r
+inline bool sequence_equal_byval_c_r( foreach_const_container_type & rng, char const * result )
+{
+ BOOST_REVERSE_FOREACH( foreach_value_type i, rng )
+ {
+ if(0 == *result || i != *result)
+ return false;
+ ++result;
+ }
+ return 0 == *result;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// sequence_equal_byref_n_r
+inline bool sequence_equal_byref_n_r( foreach_container_type & rng, char const * result )
+{
+ BOOST_REVERSE_FOREACH( foreach_reference_type i, rng )
+ {
+ if(0 == *result || i != *result)
+ return false;
+ ++result;
+ }
+ return 0 == *result;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// sequence_equal_byref_c_r
+inline bool sequence_equal_byref_c_r( foreach_const_container_type & rng, char const * result )
+{
+ BOOST_REVERSE_FOREACH( foreach_const_reference_type i, rng )
+ {
+ if(0 == *result || i != *result)
+ return false;
+ ++result;
+ }
+ return 0 == *result;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// mutate_foreach_byref
+//
+inline void mutate_foreach_byref_r( foreach_container_type & rng )
+{
+ BOOST_REVERSE_FOREACH( foreach_reference_type i, rng )
+ {
+ ++i;
+ }
+}
+
 #endif

Modified: branches/proto/v3/libs/format/index.html
==============================================================================
--- branches/proto/v3/libs/format/index.html (original)
+++ branches/proto/v3/libs/format/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=

Modified: branches/proto/v3/libs/function_types/build/Jamfile
==============================================================================
--- branches/proto/v3/libs/function_types/build/Jamfile (original)
+++ branches/proto/v3/libs/function_types/build/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 # (C) Copyright Tobias Schwinger
 #
 # Use modification and distribution are subject to the boost Software License,
-# Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
+# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 
 # Generates preprocessed files with wave.
 

Modified: branches/proto/v3/libs/function_types/build/preprocess_arity_loops.cpp
==============================================================================
--- branches/proto/v3/libs/function_types/build/preprocess_arity_loops.cpp (original)
+++ branches/proto/v3/libs/function_types/build/preprocess_arity_loops.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // (C) Copyright Tobias Schwinger
 //
 // Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 
 //------------------------------------------------------------------------------
 

Modified: branches/proto/v3/libs/function_types/build/preprocess_cc_names.cpp
==============================================================================
--- branches/proto/v3/libs/function_types/build/preprocess_cc_names.cpp (original)
+++ branches/proto/v3/libs/function_types/build/preprocess_cc_names.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // (C) Copyright Tobias Schwinger
 //
 // Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 
 //------------------------------------------------------------------------------
 

Modified: branches/proto/v3/libs/function_types/build/preprocess_encoding.cpp
==============================================================================
--- branches/proto/v3/libs/function_types/build/preprocess_encoding.cpp (original)
+++ branches/proto/v3/libs/function_types/build/preprocess_encoding.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // (C) Copyright Tobias Schwinger
 //
 // Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
+// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 
 //------------------------------------------------------------------------------
 

Modified: branches/proto/v3/libs/function_types/build/timestamps/cc_names
==============================================================================
--- branches/proto/v3/libs/function_types/build/timestamps/cc_names (original)
+++ branches/proto/v3/libs/function_types/build/timestamps/cc_names 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,2 +1 @@
 timestamp file
-

Modified: branches/proto/v3/libs/function_types/doc/Jamfile
==============================================================================
--- branches/proto/v3/libs/function_types/doc/Jamfile (original)
+++ branches/proto/v3/libs/function_types/doc/Jamfile 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 # (C) Copyright Tobias Schwinger
 #
 # Use modification and distribution are subject to the boost Software License,
-# Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
+# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 
 using quickbook ;
 

Modified: branches/proto/v3/libs/function_types/example/fast_mem_fn_example.cpp
==============================================================================
--- branches/proto/v3/libs/function_types/example/fast_mem_fn_example.cpp (original)
+++ branches/proto/v3/libs/function_types/example/fast_mem_fn_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -101,7 +101,11 @@
 
   setup_test(v);
   t.restart();
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1400)
   do_test(v, BOOST_EXAMPLE_FAST_MEM_FN(& test::id));
+#else // MSVC<8 does not like the implementation of the deduction macro:
+ do_test(v, ::example::fast_mem_fn< int (test::*)() const, & test::id >());
+#endif
   time1 = t.elapsed();
   std::cout << "fast_mem_fn | " << time1 << std::endl;
 

Modified: branches/proto/v3/libs/function_types/example/interface_example.cpp
==============================================================================
--- branches/proto/v3/libs/function_types/example/interface_example.cpp (original)
+++ branches/proto/v3/libs/function_types/example/interface_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,6 +8,7 @@
 // See interface.hpp in this directory for details.
 
 #include <iostream>
+#include <typeinfo>
 
 #include "interface.hpp"
 

Modified: branches/proto/v3/libs/function_types/example/interpreter.hpp
==============================================================================
--- branches/proto/v3/libs/function_types/example/interpreter.hpp (original)
+++ branches/proto/v3/libs/function_types/example/interpreter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -135,7 +135,7 @@
       typedef typename mpl::deref<From>::type arg_type;
       typedef typename mpl::next<From>::type next_iter_type;
 
- invoker<Function, next_iter_type, To>::apply
+ interpreter::invoker<Function, next_iter_type, To>::apply
           ( func, parser, fusion::push_back(args, parser.get<arg_type>()) );
     }
   };

Modified: branches/proto/v3/libs/functional/binders.html
==============================================================================
--- branches/proto/v3/libs/functional/binders.html (original)
+++ branches/proto/v3/libs/functional/binders.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=

Modified: branches/proto/v3/libs/functional/function_traits.html
==============================================================================
--- branches/proto/v3/libs/functional/function_traits.html (original)
+++ branches/proto/v3/libs/functional/function_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=

Modified: branches/proto/v3/libs/functional/hash/doc/intro.qbk
==============================================================================
--- branches/proto/v3/libs/functional/hash/doc/intro.qbk (original)
+++ branches/proto/v3/libs/functional/hash/doc/intro.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,10 +11,13 @@
 [def __tr1__
     [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
     TR1]]
+[def __unordered__ [link unordered Boost.Unordered]]
+[def __intrusive__ [link intrusive.unordered_set_unordered_multiset Boost.Intrusive]]
 [def __multi-index__ [@../../libs/multi_index/doc/index.html
     Boost Multi-Index Containers Library]]
 [def __multi-index-short__ [@../../libs/multi_index/doc/index.html
     Boost.MultiIndex]]
+[def __bimap__ [@../../libs/bimap/index.html Boost.Bimap]]
 [def __issues__
     [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1837.pdf
     Library Extension Technical Report Issues List]]
@@ -22,8 +25,9 @@
 [def __hash-table__ [@http://en.wikipedia.org/wiki/Hash_table hash table]]
 
 [classref boost::hash] is an implementation of the __hash-function__ object
-specified by the __tr1-full__ (TR1). It is intended for use as the default hash function
-for unordered associative containers, and the __multi-index__'s hash indexes.
+specified by the __tr1-full__ (TR1). It is the default hash function for
+__unordered__, __intrusive__'s unordered associative containers, and
+__multi-index-short__'s hash indicies and __bimap__'s `unordered_set_of`.
 
 As it is compliant with __tr1__, it will work with:
 

Modified: branches/proto/v3/libs/functional/hash/test/hash_number_test.cpp
==============================================================================
--- branches/proto/v3/libs/functional/hash/test/hash_number_test.cpp (original)
+++ branches/proto/v3/libs/functional/hash/test/hash_number_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -150,8 +150,8 @@
     NUMERIC_TEST(unsigned long, ulong)
 
 #if defined(BOOST_HAS_LONG_LONG)
- NUMERIC_TEST_NO_LIMITS(long long, hash_longlong)
- NUMERIC_TEST_NO_LIMITS(unsigned long long, ulonglong)
+ NUMERIC_TEST_NO_LIMITS(boost::long_long_type, long_long)
+ NUMERIC_TEST_NO_LIMITS(boost::ulong_long_type, ulong_long)
 #endif
 
     NUMERIC_TEST(float, float)

Modified: branches/proto/v3/libs/functional/index.html
==============================================================================
--- branches/proto/v3/libs/functional/index.html (original)
+++ branches/proto/v3/libs/functional/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -22,10 +22,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=
@@ -234,15 +234,15 @@
 
   <h3>Author</h3>
 
- <p>Mark Rodgers</p>
+ <p>Mark Rodgers</p>
 
   <h3>Acknowledgements</h3>
 
- <p>Thanks to John Maddock for
+ <p>Thanks to John Maddock for
   suggesting the mechanism that allowed the function objects traits to work
- correctly. Jens Maurer provided
+ correctly. Jens Maurer provided
   invaluable feedback during the <a href=
- "../../more/formal_review_process.htm">formal review process</a>.</p>
+ "http://www.boost.org/more/formal_review_process.htm">formal review process</a>.</p>
   <hr>
 
   <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=

Modified: branches/proto/v3/libs/functional/mem_fun.html
==============================================================================
--- branches/proto/v3/libs/functional/mem_fun.html (original)
+++ branches/proto/v3/libs/functional/mem_fun.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=

Modified: branches/proto/v3/libs/functional/negators.html
==============================================================================
--- branches/proto/v3/libs/functional/negators.html (original)
+++ branches/proto/v3/libs/functional/negators.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=

Modified: branches/proto/v3/libs/functional/ptr_fun.html
==============================================================================
--- branches/proto/v3/libs/functional/ptr_fun.html (original)
+++ branches/proto/v3/libs/functional/ptr_fun.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial" color=
       "#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial" color=

Deleted: branches/proto/v3/libs/fusion/doc/html/fusion/extension/macros.html
==============================================================================
--- branches/proto/v3/libs/fusion/doc/html/fusion/extension/macros.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,47 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Macros</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Chapter 1. Fusion 2.0">
-<link rel="up" href="../extension.html" title="Extension">
-<link rel="prev" href="iterator_facade.html" title="Iterator Facade">
-<link rel="next" href="macros/adapt_struct.html" title=" BOOST_FUSION_ADAPT_STRUCT">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="iterator_facade.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extension.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="macros/adapt_struct.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="fusion.extension.macros"></a>Macros</h3></div></div></div>
-<div class="toc"><dl>
-<dt><span class="section"> BOOST_FUSION_ADAPT_STRUCT</span></dt>
-<dt><span class="section"> BOOST_FUSION_ADAPT_ASSOC_STRUCT</span></dt>
-</dl></div>
-</div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Joel de Guzman, Dan Marsden, Tobias
- Schwinger<p>
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="iterator_facade.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extension.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="macros/adapt_struct.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Modified: branches/proto/v3/libs/gil/test/image.cpp
==============================================================================
--- branches/proto/v3/libs/gil/test/image.cpp (original)
+++ branches/proto/v3/libs/gil/test/image.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,6 +17,7 @@
 
 #include <string>
 #include <vector>
+#include <ios>
 #include <iostream>
 #include <fstream>
 #include <map>

Modified: branches/proto/v3/libs/graph/doc/AdjacencyGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/AdjacencyGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/AdjacencyGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -161,7 +161,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/AdjacencyMatrix.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/AdjacencyMatrix.html (original)
+++ branches/proto/v3/libs/graph/doc/AdjacencyMatrix.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -96,7 +96,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/BFSVisitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/BFSVisitor.html (original)
+++ branches/proto/v3/libs/graph/doc/BFSVisitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -207,10 +207,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/BasicMatrix.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/BasicMatrix.html (original)
+++ branches/proto/v3/libs/graph/doc/BasicMatrix.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,7 +94,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/BellmanFordVisitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/BellmanFordVisitor.html (original)
+++ branches/proto/v3/libs/graph/doc/BellmanFordVisitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -171,10 +171,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/BidirectionalGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/BidirectionalGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/BidirectionalGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -168,7 +168,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/Buffer.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/Buffer.html (original)
+++ branches/proto/v3/libs/graph/doc/Buffer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -110,7 +110,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University and C++ Library & Compiler Group/SGI (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University and C++ Library & Compiler Group/SGI (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/ColorValue.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/ColorValue.html (original)
+++ branches/proto/v3/libs/graph/doc/ColorValue.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -95,10 +95,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/DFSVisitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/DFSVisitor.html (original)
+++ branches/proto/v3/libs/graph/doc/DFSVisitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -199,10 +199,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/DijkstraVisitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/DijkstraVisitor.html (original)
+++ branches/proto/v3/libs/graph/doc/DijkstraVisitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -209,10 +209,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/EdgeListGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/EdgeListGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/EdgeListGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -177,7 +177,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/EdgeMutableGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/EdgeMutableGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/EdgeMutableGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -101,7 +101,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/EventVisitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/EventVisitor.html (original)
+++ branches/proto/v3/libs/graph/doc/EventVisitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -148,10 +148,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/EventVisitorList.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/EventVisitorList.html (original)
+++ branches/proto/v3/libs/graph/doc/EventVisitorList.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -114,10 +114,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/Graph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/Graph.html (original)
+++ branches/proto/v3/libs/graph/doc/Graph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -142,7 +142,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/IncidenceGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/IncidenceGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/IncidenceGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -189,10 +189,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/IteratorConstructibleGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/IteratorConstructibleGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/IteratorConstructibleGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -148,10 +148,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/Monoid.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/Monoid.html (original)
+++ branches/proto/v3/libs/graph/doc/Monoid.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -109,10 +109,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/MutableGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/MutableGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/MutableGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -292,7 +292,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/MutablePropertyGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/MutablePropertyGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/MutablePropertyGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -143,7 +143,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/PropertyGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/PropertyGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/PropertyGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -203,7 +203,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/PropertyTag.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/PropertyTag.html (original)
+++ branches/proto/v3/libs/graph/doc/PropertyTag.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -110,7 +110,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/VertexAndEdgeListGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/VertexAndEdgeListGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/VertexAndEdgeListGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -63,7 +63,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/VertexListGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/VertexListGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/VertexListGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -147,7 +147,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/VertexMutableGraph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/VertexMutableGraph.html (original)
+++ branches/proto/v3/libs/graph/doc/VertexMutableGraph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -74,8 +74,8 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
-<A HREF="../../../people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/acknowledgements.html (original)
+++ branches/proto/v3/libs/graph/doc/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -63,10 +63,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/adjacency_list.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/adjacency_list.html (original)
+++ branches/proto/v3/libs/graph/doc/adjacency_list.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1100,10 +1100,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/adjacency_list_traits.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/adjacency_list_traits.html (original)
+++ branches/proto/v3/libs/graph/doc/adjacency_list_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -145,10 +145,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/bandwidth.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bandwidth.html (original)
+++ branches/proto/v3/libs/graph/doc/bandwidth.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -86,7 +86,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/bc_clustering.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bc_clustering.html (original)
+++ branches/proto/v3/libs/graph/doc/bc_clustering.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -140,7 +140,7 @@
 <table>
 <tr valign="top">
 <td nowrap>Copyright &copy; 2004</td>
-<td>Douglas Gregor,
+<td>Douglas Gregor,
 Indiana University (dgregor_at_[hidden])<br>
 <a href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>, Indiana
 University (<a href=

Modified: branches/proto/v3/libs/graph/doc/bellman_ford_shortest.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bellman_ford_shortest.html (original)
+++ branches/proto/v3/libs/graph/doc/bellman_ford_shortest.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -342,7 +342,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy; 2000</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/bellman_visitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bellman_visitor.html (original)
+++ branches/proto/v3/libs/graph/doc/bellman_visitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -98,10 +98,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/betweenness_centrality.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/betweenness_centrality.html (original)
+++ branches/proto/v3/libs/graph/doc/betweenness_centrality.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -296,7 +296,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2004</TD><TD>
-Douglas Gregor, Indiana University (dgregor_at_[hidden]</A>)<br>
+Douglas Gregor, Indiana University (dgregor_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/bfs_visitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bfs_visitor.html (original)
+++ branches/proto/v3/libs/graph/doc/bfs_visitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -115,10 +115,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/bgl_named_params.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bgl_named_params.html (original)
+++ branches/proto/v3/libs/graph/doc/bgl_named_params.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -83,10 +83,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/bibliography.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bibliography.html (original)
+++ branches/proto/v3/libs/graph/doc/bibliography.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -439,7 +439,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/biconnected_components.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/biconnected_components.html (original)
+++ branches/proto/v3/libs/graph/doc/biconnected_components.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -244,10 +244,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2004</TD><TD>
-Jeremy Siek, Indiana
+Jeremy Siek, Indiana
 University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-Doug Gregor, Indiana University
+Doug Gregor, Indiana University
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/breadth_first_search.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/breadth_first_search.html (original)
+++ branches/proto/v3/libs/graph/doc/breadth_first_search.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -331,7 +331,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/breadth_first_visit.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/breadth_first_visit.html (original)
+++ branches/proto/v3/libs/graph/doc/breadth_first_visit.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -182,7 +182,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/bundles.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/bundles.html (original)
+++ branches/proto/v3/libs/graph/doc/bundles.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -168,7 +168,7 @@
     specialization.</p>
 
     <hr>
-Copyright &copy; 2004 Doug Gregor.
+Copyright &copy; 2004 Doug Gregor.
     <address><a href="mailto:gregod_at_[hidden]"></a></address>
 <!-- Created: Fri May 7 09:59:21 EDT 2004 -->
 <!-- hhmts start -->

Modified: branches/proto/v3/libs/graph/doc/challenge.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/challenge.html (original)
+++ branches/proto/v3/libs/graph/doc/challenge.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -113,7 +113,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/circle_layout.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/circle_layout.html (original)
+++ branches/proto/v3/libs/graph/doc/circle_layout.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
   -- (See accompanying file LICENSE_1_0.txt or copy at
   -- http://www.boost.org/LICENSE_1_0.txt)
   -->
-<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Function template circle_graph_layout</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center">Home</td><td align="center">Libraries</td><td align="center">People</td><td align="center">FAQ</td><td align="center">More</td></table><hr><div class="refentry" lang="en"><a name="id103562-bb"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><img src="figs/python.gif" alt="(Python)"/><span class="refentrytitle">Function template circle_graph_layout</span></h2><p>boost::circle_graph_layout &#8212; Layout the graph with the v
ertices at the points of a regular n-polygon. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
+<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Function template circle_graph_layout</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center">Home</td><td align="center">Libraries</td><td align="center">People</td><td align="center">FAQ</td><td align="center">More</td></table><hr><div class="refentry" lang="en"><a name="id103562-bb"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><img src="figs/python.gif" alt="(Python)"/><span class="refentrytitle">Function template circle_graph_layout</span></h2><p>boost::circle_graph_layout &#8212; Lay
out the graph with the vertices at the points of a regular n-polygon. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
 <span class="bold"><b>template</b></span>&lt;<span class="bold"><b>typename</b></span> VertexListGraph, <span class="bold"><b>typename</b></span> PositionMap, <span class="bold"><b>typename</b></span> Radius&gt;
   <span class="type"><span class="bold"><b>void</b></span></span> circle_graph_layout(<span class="bold"><b>const</b></span> VertexListGraph &amp; g, PositionMap position,
                            Radius radius);</pre></div><div class="refsect1" lang="en"><a name="id821794"></a><h2>Where Defined</h2>boost/graph/circle_layout.hpp<h2>Description</h2><p>The distance from the center of the polygon to each point is determined by the <tt class="computeroutput">radius</tt> parameter. The <tt class="computeroutput">position</tt> parameter must be an Lvalue Property Map whose value type is a class type containing <tt class="computeroutput">x</tt> and <tt class="computeroutput">y</tt> members that will be set to the <tt class="computeroutput">x</tt> and <tt class="computeroutput">y</tt> coordinates.
@@ -44,7 +44,7 @@
                            <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2004</TD><TD>
-Douglas Gregor, Indiana University (dgregor -at- cs.indiana.edu</A>)<br>
+Douglas Gregor, Indiana University (dgregor -at- cs.indiana.edu</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (lums -at- osl.iu.edu)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/compressed_sparse_row.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/compressed_sparse_row.html (original)
+++ branches/proto/v3/libs/graph/doc/compressed_sparse_row.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -711,7 +711,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy; 2005</TD><TD>
-Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
 Jeremiah Willcock, Indiana University (<script language="Javascript">address("osl.iu.edu", "jewillco")</script>)<br>
   <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)

Modified: branches/proto/v3/libs/graph/doc/connected_components.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/connected_components.html (original)
+++ branches/proto/v3/libs/graph/doc/connected_components.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -150,7 +150,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/constructing_algorithms.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/constructing_algorithms.html (original)
+++ branches/proto/v3/libs/graph/doc/constructing_algorithms.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -170,10 +170,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/copy_graph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/copy_graph.html (original)
+++ branches/proto/v3/libs/graph/doc/copy_graph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -109,7 +109,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/cuthill_mckee_ordering.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/cuthill_mckee_ordering.html (original)
+++ branches/proto/v3/libs/graph/doc/cuthill_mckee_ordering.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -240,7 +240,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/dag_shortest_paths.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/dag_shortest_paths.html (original)
+++ branches/proto/v3/libs/graph/doc/dag_shortest_paths.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -318,7 +318,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/depth_first_search.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/depth_first_search.html (original)
+++ branches/proto/v3/libs/graph/doc/depth_first_search.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -301,10 +301,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/depth_first_visit.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/depth_first_visit.html (original)
+++ branches/proto/v3/libs/graph/doc/depth_first_visit.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -137,7 +137,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/dfs_visitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/dfs_visitor.html (original)
+++ branches/proto/v3/libs/graph/doc/dfs_visitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -98,10 +98,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/dijkstra_shortest_paths.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/dijkstra_shortest_paths.html (original)
+++ branches/proto/v3/libs/graph/doc/dijkstra_shortest_paths.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -436,7 +436,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/dijkstra_visitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/dijkstra_visitor.html (original)
+++ branches/proto/v3/libs/graph/doc/dijkstra_visitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -112,10 +112,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/distance_recorder.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/distance_recorder.html (original)
+++ branches/proto/v3/libs/graph/doc/distance_recorder.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -163,10 +163,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/edge_list.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/edge_list.html (original)
+++ branches/proto/v3/libs/graph/doc/edge_list.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -208,10 +208,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Deleted: branches/proto/v3/libs/graph/doc/edmunds_karp_max_flow.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/edmunds_karp_max_flow.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,247 +0,0 @@
-<HTML>
-<!--
- -- Copyright (c) Jeremy Siek 2000
- --
- -- Distributed under the Boost Software License, Version 1.0.
- -- (See accompanying file LICENSE_1_0.txt or copy at
- -- http://www.boost.org/LICENSE_1_0.txt)
- -->
-<Head>
-<Title>Boost Graph Library: Edmunds-Karp Maximum Flow</Title>
-<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
- ALINK="#ff0000">
-<IMG SRC="../../../boost.png"
- ALT="C++ Boost" width="277" height="86">
-
-<BR Clear>
-
-<H1><A NAME="sec:edmunds_karp_max_flow">
-<TT>edmunds_karp_max_flow</TT>
-</H1>
-
-<PRE>
-<i>// named paramter version</i>
-template &lt;class Graph, class P, class T, class R&gt;
-typename detail::edge_capacity_value&lt;Graph, P, T, R&gt;::value_type
-edmunds_karp_max_flow(Graph& g,
- typename graph_traits&lt;Graph&gt;::vertex_descriptor src,
- typename graph_traits&lt;Graph&gt;::vertex_descriptor sink,
- const bgl_named_params&lt;P, T, R&gt;&amp; params = <i>all defaults</i>)
-
-<i>// non-named parameter version</i>
-template &lt;class Graph,
- class CapacityEdgeMap, class ResidualCapacityEdgeMap,
- class ReverseEdgeMap, class ColorMap, class PredEdgeMap&gt;
-typename property_traits&lt;CapacityEdgeMap&gt;::value_type
-edmunds_karp_max_flow(Graph&amp; g,
- typename graph_traits&lt;Graph&gt;::vertex_descriptor src,
- typename graph_traits&lt;Graph&gt;::vertex_descriptor sink,
- CapacityEdgeMap cap, ResidualCapacityEdgeMap res, ReverseEdgeMap rev,
- ColorMap color, PredEdgeMap pred)
-</PRE>
-
-<P>
-The <tt>edmunds_karp_max_flow()</tt> function calculates the maximum flow
-of a network. See Section <a
-href="./graph_theory_review.html#sec:network-flow-algorithms">Network
-Flow Algorithms</a> for a description of maximum flow. The calculated
-maximum flow will be the return value of the function. The function
-also calculates the flow values <i>f(u,v)</i> for all <i>(u,v)</i> in
-<i>E</i>, which are returned in the form of the residual capacity
-<i>r(u,v) = c(u,v) - f(u,v)</i>.
-
-<p>
-There are several special requirements on the input graph and property
-map parameters for this algorithm. First, the directed graph
-<i>G=(V,E)</i> that represents the network must be augmented to
-include the reverse edge for every edge in <i>E</i>. That is, the
-input graph should be <i>G<sub>in</sub> = (V,{E U
-E<sup>T</sup>})</i>. The <tt>ReverseEdgeMap</tt> argument <tt>rev</tt>
-must map each edge in the original graph to its reverse edge, that is
-<i>(u,v) -> (v,u)</i> for all <i>(u,v)</i> in <i>E</i>. The
-<tt>CapacityEdgeMap</tt> argument <tt>cap</tt> must map each edge in
-<i>E</i> to a positive number, and each edge in <i>E<sup>T</sup></i>
-to 0.
-
-<p>
-The algorithm is due to <a
-href="./bibliography.html#edmonds72:_improvements_netflow">Edmonds and
-Karp</a>, though we are using the variation called the ``labeling
-algorithm'' described in <a
-href="./bibliography.html#ahuja93:_network_flows">Network Flows</a>.
-
-<p>
-This algorithm provides a very simple and easy to implement solution to
-the maximum flow problem. However, there are several reasons why this
-algorithm is not as good as the <a
-href="./push_relabel_max_flow.html"><tt>push_relabel_max_flow()</tt></a>
-or the <a
-href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>
-algorithm.
-
-<ul>
- <li>In the non-integer capacity case, the time complexity is <i>O(V
- E<sup>2</sup>)</i> which is worse than the time complexity of the
- push-relabel algorithm <i>O(V<sup>2</sup>E<sup>1/2</sup>)</i>
- for all but the sparsest of graphs.</li>
-
- <li>In the integer capacity case, if the capacity bound <i>U</i> is
- very large then the algorithm will take a long time.</li>
-</ul>
-
-
-<H3>Where Defined</H3>
-
-<P>
-boost/graph/edmunds_karp_max_flow.hpp
-
-<P>
-
-<h3>Parameters</h3>
-
-IN: <tt>Graph&amp; g</tt>
-<blockquote>
- A directed graph. The
- graph's type must be a model of <a
- href="./VertexListGraph.html">VertexListGraph</a> and IncidenceGraph For each edge
- <i>(u,v)</i> in the graph, the reverse edge <i>(v,u)</i> must also
- be in the graph.
-</blockquote>
-
-IN: <tt>vertex_descriptor src</tt>
-<blockquote>
- The source vertex for the flow network graph.
-</blockquote>
-
-IN: <tt>vertex_descriptor sink</tt>
-<blockquote>
- The sink vertex for the flow network graph.
-</blockquote>
-
-<h3>Named Parameters</h3>
-
-
-IN: <tt>capacity_map(CapacityEdgeMap cap)</tt>
-<blockquote>
- The edge capacity property map. The type must be a model of a
- constant <a
- href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>. The
- key type of the map must be the graph's edge descriptor type.<br>
- <b>Default:</b> <tt>get(edge_capacity, g)</tt>
-</blockquote>
-
-OUT: <tt>residual_capacity_map(ResidualCapacityEdgeMap res)</tt>
-<blockquote>
- This maps edges to their residual capacity. The type must be a model
- of a mutable <a
- href="../../property_map/LvaluePropertyMap.html">Lvalue Property
- Map</a>. The key type of the map must be the graph's edge descriptor
- type.<br>
- <b>Default:</b> <tt>get(edge_residual_capacity, g)</tt>
-</blockquote>
-
-IN: <tt>reverse_edge_map(ReverseEdgeMap rev)</tt>
-<blockquote>
- An edge property map that maps every edge <i>(u,v)</i> in the graph
- to the reverse edge <i>(v,u)</i>. The map must be a model of
- constant <a href="../../property_map/LvaluePropertyMap.html">Lvalue
- Property Map</a>. The key type of the map must be the graph's edge
- descriptor type.<br>
- <b>Default:</b> <tt>get(edge_reverse, g)</tt>
-</blockquote>
-
-UTIL: <tt>color_map(ColorMap color)</tt>
-<blockquote>
- Used by the algorithm to keep track of progress during the
- breadth-first search stage. At the end of the algorithm, the white
- vertices define the minimum cut set. The map must be a model of
- mutable <a
- href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>.
- The key type of the map should be the graph's vertex descriptor type, and
- the value type must be a model of <a
- href="./ColorValue.html">ColorValue</a>.<br>
-
- <b>Default:</b> an <a
- href="../../property_map/iterator_property_map.html">
- <tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
- of <tt>default_color_type</tt> of size <tt>num_vertices(g)</tt> and
- using the <tt>i_map</tt> for the index map.
-</blockquote>
-
-UTIL: <tt>predecessor_map(PredEdgeMap pred)</tt>
-<blockquote>
- Use by the algorithm to store augmenting paths. The map must be a
- model of mutable <a
- href="../../property_map/LvaluePropertyMap.html">Lvalue Property Map</a>.
- The key type must be the graph's vertex descriptor type and the
- value type must be the graph's edge descriptor type.<br>
-
- <b>Default:</b> an <a
- href="../../property_map/iterator_property_map.html">
- <tt>iterator_property_map</tt></a> created from a <tt>std::vector</tt>
- of edge descriptors of size <tt>num_vertices(g)</tt> and
- using the <tt>i_map</tt> for the index map.
-</blockquote>
-
-IN: <tt>vertex_index_map(VertexIndexMap i_map)</tt>
-<blockquote>
- Maps each vertex of the graph to a unique integer in the range
- <tt>[0, num_vertices(g))</tt>. This property map is only needed
- if the default for the color or predecessor map is used.
- The vertex index map must be a model of <a
- href="../../property_map/ReadablePropertyMap.html">Readable Property
- Map</a>. The key type of the map must be the graph's vertex
- descriptor type.<br>
- <b>Default:</b> <tt>get(vertex_index, g)</tt>
- Note: if you use this default, make sure your graph has
- an internal <tt>vertex_index</tt> property. For example,
- <tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
- not have an internal <tt>vertex_index</tt> property.
-</blockquote>
-
-
-<h3>Complexity</h3>
-
-The time complexity is <i>O(V E<sup>2</sup>)</i> in the general case
-or <i>O(V E U)</i> if capacity values are integers bounded by
-some constant <i>U</i>.
-
-<h3>Example</h3>
-
-The program in <a
-href="../example/edmunds-karp-eg.cpp"><tt>example/edmunds-karp-eg.cpp</tt></a>
-reads an example maximum flow problem (a graph with edge capacities)
-from a file in the DIMACS format and computes the maximum flow.
-
-
-<h3>See Also</h3>
-
-push_relabel_max_flow()<br>
-kolmogorov_max_flow().
-
-<br>
-<HR>
-<TABLE>
-<TR valign=top>
-<TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
-</TD></TR></TABLE>
-
-</BODY>
-</HTML>
-<!-- LocalWords: HTML Siek Edmunds BGCOLOR ffffff ee VLINK ALINK ff IMG SRC
- -->
-<!-- LocalWords: gif ALT BR sec edmunds karp TT DIV CELLPADDING TR TD PRE lt
- -->
-<!-- LocalWords: typename VertexListGraph CapacityEdgeMap ReverseEdgeMap gt
- -->
-<!-- LocalWords: ResidualCapacityEdgeMap VertexIndexMap src rev ColorMap pred
- -->
-<!-- LocalWords: PredEdgeMap tt href html hpp ul li nbsp br LvaluePropertyMap
- -->
-<!-- LocalWords: num ColorValue DIMACS cpp pre config iostream dimacs int std
- -->
-<!-- LocalWords: namespace vecS directedS cout endl iter ei HR valign nowrap
- -->
-<!-- LocalWords: jeremy siek htm Univ mailto jsiek lsc edu
-p -->

Modified: branches/proto/v3/libs/graph/doc/erdos_renyi_generator.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/erdos_renyi_generator.html (original)
+++ branches/proto/v3/libs/graph/doc/erdos_renyi_generator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -143,7 +143,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2005</TD><TD>
-Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
   <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/file_dependency_example.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/file_dependency_example.html (original)
+++ branches/proto/v3/libs/graph/doc/file_dependency_example.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -356,7 +356,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/filtered_graph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/filtered_graph.html (original)
+++ branches/proto/v3/libs/graph/doc/filtered_graph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -522,10 +522,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/fruchterman_reingold.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/fruchterman_reingold.html (original)
+++ branches/proto/v3/libs/graph/doc/fruchterman_reingold.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -234,7 +234,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2004</TD><TD>
-Doug Gregor, Indiana University
+Doug Gregor, Indiana University
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/graph_coloring.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/graph_coloring.html (original)
+++ branches/proto/v3/libs/graph/doc/graph_coloring.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -178,10 +178,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/graph_concepts.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/graph_concepts.html (original)
+++ branches/proto/v3/libs/graph/doc/graph_concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -486,7 +486,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/graph_theory_review.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/graph_theory_review.html (original)
+++ branches/proto/v3/libs/graph/doc/graph_theory_review.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -583,7 +583,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/graph_traits.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/graph_traits.html (original)
+++ branches/proto/v3/libs/graph/doc/graph_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -239,10 +239,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/gursoy_atun_layout.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/gursoy_atun_layout.html (original)
+++ branches/proto/v3/libs/graph/doc/gursoy_atun_layout.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -453,7 +453,7 @@
 <TR valign=top>
 <TD nowrap>Copyright &copy; 2004</TD><TD>
 Jeremiah Willcock, Indiana University (<script language="Javascript">address("osl.iu.edu", "jewillco")</script>)<br>
-Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
   <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/history.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/history.html (original)
+++ branches/proto/v3/libs/graph/doc/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -189,10 +189,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/incident.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/incident.html (original)
+++ branches/proto/v3/libs/graph/doc/incident.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -66,10 +66,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/incremental_components.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/incremental_components.html (original)
+++ branches/proto/v3/libs/graph/doc/incremental_components.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -408,10 +408,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/index.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/index.html (original)
+++ branches/proto/v3/libs/graph/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -289,10 +289,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/isomorphism.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/isomorphism.html (original)
+++ branches/proto/v3/libs/graph/doc/isomorphism.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -193,7 +193,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/johnson_all_pairs_shortest.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/johnson_all_pairs_shortest.html (original)
+++ branches/proto/v3/libs/graph/doc/johnson_all_pairs_shortest.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -205,7 +205,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/kamada_kawai_spring_layout.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/kamada_kawai_spring_layout.html (original)
+++ branches/proto/v3/libs/graph/doc/kamada_kawai_spring_layout.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -23,8 +23,8 @@
 <td align="center">Home</td>
 <td align="center">Libraries</td>
 <td align="center"><a href=
-"../../../people/people.htm">People</a></td>
-<td align="center">FAQ</td>
+"http://www.boost.org/people/people.htm">People</a></td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr>
 </table>
@@ -295,7 +295,7 @@
 <table>
 <tr valign="top">
 <td nowrap>Copyright &copy; 2004</td>
-<td>Douglas Gregor,
+<td>Douglas Gregor,
 Indiana University (dgregor -at cs.indiana.edu)<br>
 <a href="http://www.osl.iu.edu/~lums">Andrew Lumsdaine</a>, Indiana
 University (<a href=

Modified: branches/proto/v3/libs/graph/doc/kevin_bacon.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/kevin_bacon.html (original)
+++ branches/proto/v3/libs/graph/doc/kevin_bacon.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -302,7 +302,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy; 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/king_ordering.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/king_ordering.html (original)
+++ branches/proto/v3/libs/graph/doc/king_ordering.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -228,7 +228,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy; 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/known_problems.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/known_problems.html (original)
+++ branches/proto/v3/libs/graph/doc/known_problems.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -47,10 +47,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/kolmogorov_max_flow.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/kolmogorov_max_flow.html (original)
+++ branches/proto/v3/libs/graph/doc/kolmogorov_max_flow.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -364,7 +364,7 @@
 f 7 6 0
 f 7 5 0</PRE><H3>
 See Also</H3>
-<P STYLE="margin-bottom: 0cm"><TT>edmunds_karp_max_flow()</TT>,<BR><TT>push_relabel_max_flow()</TT>.
+<P STYLE="margin-bottom: 0cm"><TT>edmonds_karp_max_flow()</TT>,<BR><TT>push_relabel_max_flow()</TT>.
 </P>
 <HR>
 <TABLE CELLPADDING=2 CELLSPACING=2>

Modified: branches/proto/v3/libs/graph/doc/kruskal_min_spanning_tree.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/kruskal_min_spanning_tree.html (original)
+++ branches/proto/v3/libs/graph/doc/kruskal_min_spanning_tree.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -192,7 +192,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/layout_tolerance.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/layout_tolerance.html (original)
+++ branches/proto/v3/libs/graph/doc/layout_tolerance.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
   -- (See accompanying file LICENSE_1_0.txt or copy at
   -- http://www.boost.org/LICENSE_1_0.txt)
   -->
-<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Struct template layout_tolerance</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center">Home</td><td align="center">Libraries</td><td align="center">People</td><td align="center">FAQ</td><td align="center">More</td></table><hr><div class="refentry" lang="en"><a name="struct.boost.layout_tolerance"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">Struct template layout_tolerance</span></h2><p>boost::layout_tolerance &#8212; Determines when to terminate layout of a particular graph based o
n a given relative tolerance. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><b>template</b></span>&lt;<span class="bold"><b>typename</b></span> T = double&gt;
+<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Struct template layout_tolerance</title></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table cellpadding="2" width="100%"><td valign="top"><img src="../../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td><td align="center">Home</td><td align="center">Libraries</td><td align="center">People</td><td align="center">FAQ</td><td align="center">More</td></table><hr><div class="refentry" lang="en"><a name="struct.boost.layout_tolerance"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2><span class="refentrytitle">Struct template layout_tolerance</span></h2><p>boost::layout_tolerance &#8212; Determines when to terminate layout of a
particular graph based on a given relative tolerance. </p></div><h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2><div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><b>template</b></span>&lt;<span class="bold"><b>typename</b></span> T = double&gt;
 <span class="bold"><b>struct</b></span> layout_tolerance {
   <span class="emphasis"><em>// construct/copy/destruct</em></span>
   layout_tolerance(<span class="bold"><b>const</b></span> T &amp; = T(0.001));

Modified: branches/proto/v3/libs/graph/doc/leda_conversion.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/leda_conversion.html (original)
+++ branches/proto/v3/libs/graph/doc/leda_conversion.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -250,10 +250,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/minimum_degree_ordering.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/minimum_degree_ordering.html (original)
+++ branches/proto/v3/libs/graph/doc/minimum_degree_ordering.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -170,8 +170,8 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2001</TD><TD>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>) <br>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>) <br>
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/null_visitor.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/null_visitor.html (original)
+++ branches/proto/v3/libs/graph/doc/null_visitor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,10 +81,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/opposite.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/opposite.html (original)
+++ branches/proto/v3/libs/graph/doc/opposite.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -66,10 +66,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/plod_generator.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/plod_generator.html (original)
+++ branches/proto/v3/libs/graph/doc/plod_generator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -130,7 +130,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2005</TD><TD>
-Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
   <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/predecessor_recorder.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/predecessor_recorder.html (original)
+++ branches/proto/v3/libs/graph/doc/predecessor_recorder.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -173,10 +173,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/prim_minimum_spanning_tree.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/prim_minimum_spanning_tree.html (original)
+++ branches/proto/v3/libs/graph/doc/prim_minimum_spanning_tree.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -281,7 +281,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/property_map.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/property_map.html (original)
+++ branches/proto/v3/libs/graph/doc/property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -73,10 +73,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/property_writer.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/property_writer.html (original)
+++ branches/proto/v3/libs/graph/doc/property_writer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -184,10 +184,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/publications.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/publications.html (original)
+++ branches/proto/v3/libs/graph/doc/publications.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,10 +33,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/push_relabel_max_flow.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/push_relabel_max_flow.html (original)
+++ branches/proto/v3/libs/graph/doc/push_relabel_max_flow.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -225,7 +225,7 @@
 
 <h3>See Also</h3>
 
-edmunds_karp_max_flow()<br>
+edmonds_karp_max_flow()<br>
 <a href="./kolmogorov_max_flow.html"><tt>kolmogorov_max_flow()</tt></a>.
 
 <br>
@@ -233,7 +233,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/python.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/python.html (original)
+++ branches/proto/v3/libs/graph/doc/python.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -43,7 +43,7 @@
     <TABLE>
       <TR valign=top>
         <TD nowrap>Copyright &copy; 2005</TD><TD>
- Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+ Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
           <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
           Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
     </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/quick_tour.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/quick_tour.html (original)
+++ branches/proto/v3/libs/graph/doc/quick_tour.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -594,7 +594,7 @@
 <table>
   <tr valign="top">
     <td nowrap>Copyright © 2000</td>
- <td>Jeremy Siek,
+ <td>Jeremy Siek,
       Indiana University (<a href="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>)</td>
   </tr>
 </table>

Modified: branches/proto/v3/libs/graph/doc/random_layout.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/random_layout.html (original)
+++ branches/proto/v3/libs/graph/doc/random_layout.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,7 +94,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy; 2004</TD><TD>
-Doug Gregor, Indiana University
+Doug Gregor, Indiana University
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/reverse_graph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/reverse_graph.html (original)
+++ branches/proto/v3/libs/graph/doc/reverse_graph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -408,9 +408,9 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Dave Abrahams
+Dave Abrahams
 (<A HREF="mailto:david.abrahams_at_[hidden]">david.abrahams_at_[hidden]</A>)<br>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/sequential_vertex_coloring.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/sequential_vertex_coloring.html (original)
+++ branches/proto/v3/libs/graph/doc/sequential_vertex_coloring.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -110,7 +110,7 @@
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)<br>
-Douglas Gregor, Indiana University (dgregor -at- cs.indiana.edu)</A>)
+Douglas Gregor, Indiana University (dgregor -at- cs.indiana.edu)</A>)
 </TD></TR></TABLE>
   </body>
 </html>

Modified: branches/proto/v3/libs/graph/doc/small_world_generator.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/small_world_generator.html (original)
+++ branches/proto/v3/libs/graph/doc/small_world_generator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -117,7 +117,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2005</TD><TD>
-Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
   <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/sorted_erdos_renyi_gen.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/sorted_erdos_renyi_gen.html (original)
+++ branches/proto/v3/libs/graph/doc/sorted_erdos_renyi_gen.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -124,7 +124,7 @@
 <TD nowrap>Copyright &copy 2005</TD><TD>
 Jeremiah Willcock, Indiana University (<script language="Javascript">address("cs.indiana.edu", "jewillco")</script>)<br>
   
-Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
+Doug Gregor, Indiana University (<script language="Javascript">address("cs.indiana.edu", "dgregor")</script>)<br>
   <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<script language="Javascript">address("osl.iu.edu", "lums")</script>)
 </TD></TR></TABLE>

Modified: branches/proto/v3/libs/graph/doc/sparse_matrix_ordering.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/sparse_matrix_ordering.html (original)
+++ branches/proto/v3/libs/graph/doc/sparse_matrix_ordering.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -370,7 +370,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/stanford_graph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/stanford_graph.html (original)
+++ branches/proto/v3/libs/graph/doc/stanford_graph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -443,10 +443,10 @@
 <A HREF="http://people.freenet.de/andreas.scherer">Andreas Scherer</A>,
 Aachen (<A
 HREF="mailto:andreas_freenet_at_[hidden]">andreas_freenet_at_[hidden]</A>)<br>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-Lie-Quan Lee,
+Lie-Quan Lee,
 Indiana University (<A
 HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,

Modified: branches/proto/v3/libs/graph/doc/strong_components.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/strong_components.html (original)
+++ branches/proto/v3/libs/graph/doc/strong_components.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -194,7 +194,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/table_of_contents.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/table_of_contents.html (original)
+++ branches/proto/v3/libs/graph/doc/table_of_contents.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -282,10 +282,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/time_stamper.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/time_stamper.html (original)
+++ branches/proto/v3/libs/graph/doc/time_stamper.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -183,10 +183,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/topological_sort.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/topological_sort.html (original)
+++ branches/proto/v3/libs/graph/doc/topological_sort.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -148,7 +148,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/transitive_closure.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/transitive_closure.html (original)
+++ branches/proto/v3/libs/graph/doc/transitive_closure.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -216,7 +216,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana Univ.(<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana Univ.(<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/transpose_graph.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/transpose_graph.html (original)
+++ branches/proto/v3/libs/graph/doc/transpose_graph.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -120,7 +120,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/trouble_shooting.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/trouble_shooting.html (original)
+++ branches/proto/v3/libs/graph/doc/trouble_shooting.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -115,10 +115,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/undirected_dfs.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/undirected_dfs.html (original)
+++ branches/proto/v3/libs/graph/doc/undirected_dfs.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -323,10 +323,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/using_adjacency_list.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/using_adjacency_list.html (original)
+++ branches/proto/v3/libs/graph/doc/using_adjacency_list.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -781,7 +781,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/using_property_maps.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/using_property_maps.html (original)
+++ branches/proto/v3/libs/graph/doc/using_property_maps.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -473,7 +473,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/doc/visitor_concepts.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/visitor_concepts.html (original)
+++ branches/proto/v3/libs/graph/doc/visitor_concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -48,10 +48,10 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
 <A HREF=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</A>,
 Indiana University (<A
 HREF="mailto:lums_at_[hidden]">lums_at_[hidden]</A>)

Modified: branches/proto/v3/libs/graph/doc/write-graphviz.html
==============================================================================
--- branches/proto/v3/libs/graph/doc/write-graphviz.html (original)
+++ branches/proto/v3/libs/graph/doc/write-graphviz.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -338,8 +338,8 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2001</TD><TD>
-<A HREF="../../../people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
-<A HREF="../../../people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<A HREF="http://www.boost.org/people/liequan_lee.htm">Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee_at_[hidden]">llee_at_[hidden]</A>)<br>
+<A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/graph/example/edge-connectivity.cpp
==============================================================================
--- branches/proto/v3/libs/graph/example/edge-connectivity.cpp (original)
+++ branches/proto/v3/libs/graph/example/edge-connectivity.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,7 +8,7 @@
 #include <boost/config.hpp>
 #include <algorithm>
 #include <utility>
-#include <boost/graph/edmunds_karp_max_flow.hpp>
+#include <boost/graph/edmonds_karp_max_flow.hpp>
 #include <boost/graph/push_relabel_max_flow.hpp>
 #include <boost/graph/adjacency_list.hpp>
 #include <boost/graph/graphviz.hpp>
@@ -110,7 +110,7 @@
 
     while (!nonneighbor_S.empty()) {
       k = nonneighbor_S.front();
- alpha_S_k = edmunds_karp_max_flow
+ alpha_S_k = edmonds_karp_max_flow
         (flow_g, p, k, cap, res_cap, rev_edge, &color[0], &pred[0]);
       if (alpha_S_k < alpha_star) {
         alpha_star = alpha_S_k;

Deleted: branches/proto/v3/libs/graph/example/edmunds-karp-eg.cpp
==============================================================================
--- branches/proto/v3/libs/graph/example/edmunds-karp-eg.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,90 +0,0 @@
-//=======================================================================
-// Copyright 2001 Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee,
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//=======================================================================
-#include <boost/config.hpp>
-#include <iostream>
-#include <string>
-#include <boost/graph/edmunds_karp_max_flow.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/read_dimacs.hpp>
-#include <boost/graph/graph_utility.hpp>
-
-// Use a DIMACS network flow file as stdin.
-// edmunds-karp-eg < max_flow.dat
-//
-// Sample output:
-// c The total flow:
-// s 13
-//
-// c flow values:
-// f 0 6 3
-// f 0 1 6
-// f 0 2 4
-// f 1 5 1
-// f 1 0 0
-// f 1 3 5
-// f 2 4 4
-// f 2 3 0
-// f 2 0 0
-// f 3 7 5
-// f 3 2 0
-// f 3 1 0
-// f 4 5 4
-// f 4 6 0
-// f 5 4 0
-// f 5 7 5
-// f 6 7 3
-// f 6 4 0
-// f 7 6 0
-// f 7 5 0
-
-int
-main()
-{
- using namespace boost;
-
- typedef adjacency_list_traits < vecS, vecS, directedS > Traits;
- typedef adjacency_list < listS, vecS, directedS,
- property < vertex_name_t, std::string >,
- property < edge_capacity_t, long,
- property < edge_residual_capacity_t, long,
- property < edge_reverse_t, Traits::edge_descriptor > > > > Graph;
-
- Graph g;
-
- property_map < Graph, edge_capacity_t >::type
- capacity = get(edge_capacity, g);
- property_map < Graph, edge_reverse_t >::type rev = get(edge_reverse, g);
- property_map < Graph, edge_residual_capacity_t >::type
- residual_capacity = get(edge_residual_capacity, g);
-
- Traits::vertex_descriptor s, t;
- read_dimacs_max_flow(g, capacity, rev, s, t);
-
-#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300
- std::vector<default_color_type> color(num_vertices(g));
- std::vector<Traits::edge_descriptor> pred(num_vertices(g));
- long flow = edmunds_karp_max_flow
- (g, s, t, capacity, residual_capacity, rev, &color[0], &pred[0]);
-#else
- long flow = edmunds_karp_max_flow(g, s, t);
-#endif
-
- std::cout << "c The total flow:" << std::endl;
- std::cout << "s " << flow << std::endl << std::endl;
-
- std::cout << "c flow values:" << std::endl;
- graph_traits < Graph >::vertex_iterator u_iter, u_end;
- graph_traits < Graph >::out_edge_iterator ei, e_end;
- for (tie(u_iter, u_end) = vertices(g); u_iter != u_end; ++u_iter)
- for (tie(ei, e_end) = out_edges(*u_iter, g); ei != e_end; ++ei)
- if (capacity[*ei] > 0)
- std::cout << "f " << *u_iter << " " << target(*ei, g) << " "
- << (capacity[*ei] - residual_capacity[*ei]) << std::endl;
-
- return EXIT_SUCCESS;
-}

Modified: branches/proto/v3/libs/graph/example/regression.cfg
==============================================================================
--- branches/proto/v3/libs/graph/example/regression.cfg (original)
+++ branches/proto/v3/libs/graph/example/regression.cfg 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,7 +44,7 @@
 compile libs/graph/example/edge_connectivity.cpp
 compile libs/graph/example/edge_iterator_constructor.cpp
 compile libs/graph/example/edge_property.cpp
-compile libs/graph/example/edmunds-karp-eg.cpp
+compile libs/graph/example/edmonds-karp-eg.cpp
 compile libs/graph/example/exterior_properties.cpp
 compile libs/graph/example/exterior_property_map.cpp
 compile libs/graph/example/family-tree-eg.cpp

Modified: branches/proto/v3/libs/graph/test/csr_graph_test.cpp
==============================================================================
--- branches/proto/v3/libs/graph/test/csr_graph_test.cpp (original)
+++ branches/proto/v3/libs/graph/test/csr_graph_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -38,7 +38,13 @@
 typedef boost::adjacency_list<> GraphT;
 typedef boost::erdos_renyi_iterator<boost::minstd_rand, GraphT> ERGen;
 
-typedef boost::compressed_sparse_row_graph<> CSRGraphT;
+struct VertexData
+{
+ int index;
+};
+
+typedef boost::compressed_sparse_row_graph<boost::directedS, VertexData>
+ CSRGraphT;
 
 template <class G1, class VI1, class G2, class VI2, class IsomorphismMap>
 void assert_graphs_equal(const G1& g1, const VI1& vi1,
@@ -191,6 +197,9 @@
   CSRGraphT g4;
   BOOST_CHECK(num_vertices(g4) == 0);
   std::size_t first_vert = add_vertices(num_vertices(g3), g4);
+ BGL_FORALL_VERTICES(v, g4, CSRGraphT)
+ g4[v].index = v;
+
   BOOST_CHECK(first_vert == 0);
   BOOST_CHECK(num_vertices(g4) == num_vertices(g3));
   CSRGraphT::edge_iterator ei, ei_end;

Modified: branches/proto/v3/libs/graph/test/max_flow_test.cpp
==============================================================================
--- branches/proto/v3/libs/graph/test/max_flow_test.cpp (original)
+++ branches/proto/v3/libs/graph/test/max_flow_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -39,7 +39,7 @@
 //three max_flows we test here
 #include <boost/graph/kolmogorov_max_flow.hpp>
 #include <boost/graph/push_relabel_max_flow.hpp>
-#include <boost/graph/edmunds_karp_max_flow.hpp>
+#include <boost/graph/edmonds_karp_max_flow.hpp>
 //boost utilities we use
 #include <boost/graph/adjacency_list.hpp>
 #include <boost/graph/random.hpp>
@@ -127,10 +127,10 @@
   
   tEdgeVal kolmo = kolmogorov_max_flow(g,source_vertex,sink_vertex);
   tEdgeVal push_relabel = push_relabel_max_flow(g,source_vertex,sink_vertex);
- tEdgeVal edmunds_karp = edmunds_karp_max_flow(g,source_vertex,sink_vertex);
+ tEdgeVal edmonds_karp = edmonds_karp_max_flow(g,source_vertex,sink_vertex);
   
   BOOST_REQUIRE( kolmo == push_relabel );
- BOOST_REQUIRE( push_relabel == edmunds_karp );
+ BOOST_REQUIRE( push_relabel == edmonds_karp );
 
   return 0;
 }

Modified: branches/proto/v3/libs/integer/doc/integer_mask.html
==============================================================================
--- branches/proto/v3/libs/integer/doc/integer_mask.html (original)
+++ branches/proto/v3/libs/integer/doc/integer_mask.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -196,7 +196,7 @@
 <h2><a name="credits">Credits</a></h2>
 
 <p>The author of the Boost bit mask class templates is <a
-href="../../../people/daryle_walker.html">Daryle Walker</a>.</p>
+href="http://www.boost.org/people/daryle_walker.html">Daryle Walker</a>.</p>
 
 <hr>
 

Modified: branches/proto/v3/libs/integer/doc/static_log2.html
==============================================================================
--- branches/proto/v3/libs/integer/doc/static_log2.html (original)
+++ branches/proto/v3/libs/integer/doc/static_log2.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -186,7 +186,7 @@
 
 
 <p>The original version of the Boost binary logarithm class template was
-written by Daryle Walker
+written by Daryle Walker
 and then enhanced by Giovanni Bajo with support for compilers without
 partial template specialization. The current version was suggested,
 together with a reference implementation, by Vesa Karvonen. Gennaro Prota

Modified: branches/proto/v3/libs/integer/doc/static_min_max.html
==============================================================================
--- branches/proto/v3/libs/integer/doc/static_min_max.html (original)
+++ branches/proto/v3/libs/integer/doc/static_min_max.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -106,7 +106,7 @@
 <h2><a name="credits">Credits</a></h2>
 
 <p>The author of the Boost compile-time extrema class templates is <a
-href="../../../people/daryle_walker.html">Daryle Walker</a>.</p>
+href="http://www.boost.org/people/daryle_walker.html">Daryle Walker</a>.</p>
 
 <hr>
 

Modified: branches/proto/v3/libs/integer/index.html
==============================================================================
--- branches/proto/v3/libs/integer/index.html (original)
+++ branches/proto/v3/libs/integer/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,8 +10,8 @@
                 <td bgcolor="white"><img src="../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
                 <td>Home</td>
                 <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
+ <td>People</td>
+ <td>FAQ</td>
                 <td>More</td>
         </tr>
 </table>

Modified: branches/proto/v3/libs/integer/integer.htm
==============================================================================
--- branches/proto/v3/libs/integer/integer.htm (original)
+++ branches/proto/v3/libs/integer/integer.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -193,11 +193,11 @@
 <h2><a name="credits">Credits</a></h2>
 
 <p>The author of most of the Boost integer type choosing templates is <a
-href="../../people/beman_dawes.html">Beman Dawes</a>. He gives thanks
+href="http://www.boost.org/people/beman_dawes.html">Beman Dawes</a>. He gives thanks
 to Valentin Bonnard and
- Kevlin Henney for sharing
+ Kevlin Henney for sharing
 their designs for similar templates. <a
-href="../../people/daryle_walker.html">Daryle Walker</a> designed the
+href="http://www.boost.org/people/daryle_walker.html">Daryle Walker</a> designed the
 value-based sized templates.</p>
 
 <hr>
@@ -206,7 +206,7 @@
 
 <p>&copy; Copyright Beman Dawes 1999. Use, modification, and distribution are
 subject to the Boost Software License, Version 1.0. (See accompanying file <a
-href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at &lt;<a
+href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at &lt;<a
 href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>&gt;.)</p>
 </body>
-</html>
\ No newline at end of file
+</html>

Modified: branches/proto/v3/libs/interprocess/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/interprocess/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/interprocess/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,8 +26,8 @@
         <doxygen:param>HIDE_UNDOC_MEMBERS=YES
         <doxygen:param>EXTRACT_PRIVATE=NO
         <doxygen:param>EXPAND_ONLY_PREDEF=YES
+ <doxygen:param>PREDEFINED=BOOST_INTERPROCESS_DOXYGEN_INVOKED
         <xsl:param>"boost.doxygen.reftitle=Boost.Interprocess Reference"
- <xsl:param>"boost.doxygen.refid=reference"
    ;
 
 xml interprocess : interprocess.qbk ;

Modified: branches/proto/v3/libs/interprocess/doc/interprocess.qbk
==============================================================================
--- branches/proto/v3/libs/interprocess/doc/interprocess.qbk (original)
+++ branches/proto/v3/libs/interprocess/doc/interprocess.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6418,7 +6418,7 @@
    [classref boost::interprocess::named_mutex named_mutex].
 
 * Reduced template bloat for node and adaptive allocators extracting node
- implementation to a class taht only depends on the memory algorithm, instead of
+ implementation to a class that only depends on the memory algorithm, instead of
    the segment manager + node size + node number...
 
 * Fixed bug in `mapped_region` in UNIX when mapping address was provided but

Modified: branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj
==============================================================================
--- branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj (original)
+++ branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -173,6 +173,9 @@
                                         RelativePath="..\..\..\..\boost\interprocess\allocators\detail\adaptive_node_pool.hpp">
                                 </File>
                                 <File
+ RelativePath="..\..\..\..\boost\interprocess\allocators\detail\allocator_common.hpp">
+ </File>
+ <File
                                         RelativePath="..\..\..\..\boost\interprocess\allocators\detail\node_pool.hpp">
                                 </File>
                                 <File
@@ -571,6 +574,9 @@
                         <File
                                 RelativePath="..\..\test\util.hpp">
                         </File>
+ <File
+ RelativePath="..\..\test\vector_test.hpp">
+ </File>
                 </Filter>
                 <Filter
                         Name="Proj"

Modified: branches/proto/v3/libs/interprocess/test/adaptive_node_pool_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/adaptive_node_pool_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/adaptive_node_pool_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,7 +17,7 @@
    typedef managed_shared_memory::segment_manager segment_manager;
 
    typedef detail::private_adaptive_node_pool
- <segment_manager, 4, 64, 64> node_pool_t;
+ <segment_manager, 4, 64, 64, 5> node_pool_t;
 
    if(!test::test_all_node_pool<node_pool_t>())
       return 1;

Modified: branches/proto/v3/libs/interprocess/test/adaptive_pool_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/adaptive_pool_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/adaptive_pool_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,11 +11,13 @@
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/managed_shared_memory.hpp>
 #include <boost/interprocess/containers/list.hpp>
+#include <boost/interprocess/containers/vector.hpp>
 #include <boost/interprocess/allocators/adaptive_pool.hpp>
 #include "print_container.hpp"
 #include "dummy_test_allocator.hpp"
 #include "movable_int.hpp"
 #include "list_test.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
@@ -24,14 +26,36 @@
 typedef adaptive_pool
    <int, managed_shared_memory::segment_manager> shmem_node_allocator_t;
 
+typedef detail::adaptive_pool_v1
+ <int, managed_shared_memory::segment_manager> shmem_node_allocator_v1_t;
+
+//Explicit instantiations to catch compilation errors
+template class adaptive_pool<int, managed_shared_memory::segment_manager>;
+template class detail::adaptive_pool_v1<int, managed_shared_memory::segment_manager>;
+
 //Alias list types
 typedef list<int, shmem_node_allocator_t> MyShmList;
+typedef list<int, shmem_node_allocator_v1_t> MyShmListV1;
+
+//Alias vector types
+typedef vector<int, shmem_node_allocator_t> MyShmVector;
+typedef vector<int, shmem_node_allocator_v1_t> MyShmVectorV1;
+
 
 int main ()
 {
    if(test::list_test<managed_shared_memory, MyShmList, true>())
       return 1;
 
+ if(test::list_test<managed_shared_memory, MyShmListV1, true>())
+ return 1;
+
+ if(test::vector_test<managed_shared_memory, MyShmVector>())
+ return 1;
+
+ if(test::vector_test<managed_shared_memory, MyShmVectorV1>())
+ return 1;
+
    return 0;
 }
 

Modified: branches/proto/v3/libs/interprocess/test/cached_adaptive_pool_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/cached_adaptive_pool_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/cached_adaptive_pool_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,6 +16,7 @@
 #include "dummy_test_allocator.hpp"
 #include "movable_int.hpp"
 #include "list_test.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
@@ -25,14 +26,37 @@
    <int, managed_shared_memory::segment_manager>
    cached_node_allocator_t;
 
+typedef detail::cached_adaptive_pool_v1
+ <int, managed_shared_memory::segment_manager>
+ cached_node_allocator_v1_t;
+
+//Explicit instantiations to catch compilation errors
+template class cached_adaptive_pool<int, managed_shared_memory::segment_manager>;
+template class detail::cached_adaptive_pool_v1<int, managed_shared_memory::segment_manager>;
+
+
 //Alias list types
 typedef list<int, cached_node_allocator_t> MyShmList;
+typedef list<int, cached_node_allocator_v1_t> MyShmListV1;
+
+//Alias vector types
+typedef vector<int, cached_node_allocator_t> MyShmVector;
+typedef vector<int, cached_node_allocator_v1_t> MyShmVectorV1;
 
 int main ()
 {
    if(test::list_test<managed_shared_memory, MyShmList, true>())
       return 1;
 
+ if(test::list_test<managed_shared_memory, MyShmListV1, true>())
+ return 1;
+
+ if(test::vector_test<managed_shared_memory, MyShmVector>())
+ return 1;
+
+ if(test::vector_test<managed_shared_memory, MyShmVectorV1>())
+ return 1;
+
    return 0;
 }
 

Modified: branches/proto/v3/libs/interprocess/test/cached_node_allocator_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/cached_node_allocator_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/cached_node_allocator_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //////////////////////////////////////////////////////////////////////////////
 //
-// (C) Copyright Ion Gaztanaga 2004-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2004-2008. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
 //
@@ -16,23 +16,40 @@
 #include "dummy_test_allocator.hpp"
 #include "movable_int.hpp"
 #include "list_test.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
-//We will work with wide characters for shared memory objects
 //Alias a integer node allocator type
 typedef cached_node_allocator
    <int, managed_shared_memory::segment_manager>
    cached_node_allocator_t;
+typedef detail::cached_node_allocator_v1
+ <int, managed_shared_memory::segment_manager>
+ cached_node_allocator_v1_t;
+
+//Explicit instantiations to catch compilation errors
+template class cached_node_allocator<int, managed_shared_memory::segment_manager>;
+template class detail::cached_node_allocator_v1<int, managed_shared_memory::segment_manager>;
 
 //Alias list types
 typedef list<int, cached_node_allocator_t> MyShmList;
+typedef list<int, cached_node_allocator_v1_t> MyShmListV1;
+
+//Alias vector types
+typedef vector<int, cached_node_allocator_t> MyShmVector;
+typedef vector<int, cached_node_allocator_v1_t> MyShmVectorV1;
 
 int main ()
 {
    if(test::list_test<managed_shared_memory, MyShmList, true>())
       return 1;
-
+ if(test::list_test<managed_shared_memory, MyShmListV1, true>())
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVector>())
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVectorV1>())
+ return 1;
    return 0;
 }
 

Modified: branches/proto/v3/libs/interprocess/test/file_mapping_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/file_mapping_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/file_mapping_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,15 +9,15 @@
 //////////////////////////////////////////////////////////////////////////////
 
 #include <boost/interprocess/detail/config_begin.hpp>
-#include <fstream>
+#include <ios> //std::streamoff
+#include <fstream> //std::ofstream, std::ifstream
 #include <iostream>
-#include <ios>
 #include <boost/interprocess/file_mapping.hpp>
 #include <boost/interprocess/mapped_region.hpp>
-#include <memory>
-#include <cstdio>
-#include <string>
+#include <memory> //std::auto_ptr
+#include <stdexcept> //std::exception
 #include <cstdio> //std::remove
+#include <cstddef> //std::size_t
 #include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;

Modified: branches/proto/v3/libs/interprocess/test/get_process_id_name.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/get_process_id_name.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/get_process_id_name.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,9 +12,8 @@
 #define BOOST_INTERPROCESS_GET_PROCESS_ID_NAME_HPP
 
 #include <boost/config.hpp>
-#include <string>
-#include <algorithm>
-#include <sstream>
+#include <string> //std::string
+#include <sstream> //std::stringstream
 #include <boost/interprocess/detail/os_thread_functions.hpp>
 
 namespace boost{

Modified: branches/proto/v3/libs/interprocess/test/list_test.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/list_test.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/list_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -39,7 +39,8 @@
          shmlist->push_back(move(move_me));
          stdlist->push_back(i);
       }
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
       return 0;
    }
 };
@@ -56,7 +57,8 @@
          shmlist->push_front(move(move_me));
          stdlist->push_front(i);
       }
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
       return 0;
    }
 };
@@ -69,7 +71,8 @@
    {
       shmlist->pop_back();
       stdlist->pop_back();
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
       return 0;
    }
 };
@@ -177,12 +180,14 @@
 
       shmlist->unique();
       stdlist->unique();
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
 
       if(copied_allocators_equal){
          shmlist->sort(std::greater<IntType>());
          stdlist->sort(std::greater<int>());
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
       }
 
       shmlist->resize(25);
@@ -191,7 +196,8 @@
       stdlist->resize(50);
       shmlist->resize(0);
       stdlist->resize(0);
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
 
       if(push_data_t::execute(max, shmlist, stdlist)){
          return 1;
@@ -209,7 +215,8 @@
          if(copied_allocators_equal){
             shmlist->splice(shmlist->begin(), othershmlist);
             stdlist->splice(stdlist->begin(), otherstdlist);
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
          }
 
          listsize = (int)shmlist->size();
@@ -225,15 +232,18 @@
          if(copied_allocators_equal){
             shmlist->sort(std::greater<IntType>());
             stdlist->sort(std::greater<int>());
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
 
             othershmlist.sort(std::greater<IntType>());
             otherstdlist.sort(std::greater<int>());
- if(!CheckEqualContainers(&othershmlist, &otherstdlist)) return 1;
+ if(!CheckEqualContainers(&othershmlist, &otherstdlist))
+ return 1;
 
             shmlist->merge(othershmlist, std::greater<IntType>());
             stdlist->merge(otherstdlist, std::greater<int>());
- if(!CheckEqualContainers(shmlist, stdlist)) return 1;
+ if(!CheckEqualContainers(shmlist, stdlist))
+ return 1;
          }
       }
 

Modified: branches/proto/v3/libs/interprocess/test/map_test.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/map_test.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/map_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -296,6 +296,8 @@
       }
 
       //Now do count exercise
+ shmmap->erase(shmmap->begin(), shmmap->end());
+ shmmultimap->erase(shmmultimap->begin(), shmmultimap->end());
       shmmap->clear();
       shmmultimap->clear();
 

Modified: branches/proto/v3/libs/interprocess/test/memory_algorithm_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/memory_algorithm_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/memory_algorithm_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,52 +14,74 @@
 #include <boost/interprocess/mem_algo/rbtree_best_fit.hpp>
 #include <boost/interprocess/indexes/null_index.hpp>
 #include <boost/interprocess/sync/mutex_family.hpp>
+#include <boost/interprocess/detail/type_traits.hpp>
 #include "memory_algorithm_test_template.hpp"
 #include <iostream>
 #include <string>
 #include "get_process_id_name.hpp"
 
+using namespace boost::interprocess;
+
+const int memsize = 16384;
+const char *const shMemName = test::get_process_id_name();
+
+int test_simple_seq_fit()
+{
+ //A shared memory with simple sequential fit algorithm
+ typedef basic_managed_shared_memory
+ <char
+ ,simple_seq_fit<mutex_family>
+ ,null_index
+ > my_managed_shared_memory;
+
+ //Create shared memory
+ shared_memory_object::remove(shMemName);
+ my_managed_shared_memory segment(create_only, shMemName, memsize);
+
+ //Now take the segment manager and launch memory test
+ if(!test::test_all_allocation(*segment.get_segment_manager())){
+ return 1;
+ }
+ return 0;
+}
+
+template<std::size_t Alignment>
+int test_rbtree_best_fit()
+{
+ //A shared memory with red-black tree best fit algorithm
+ typedef basic_managed_shared_memory
+ <char
+ ,rbtree_best_fit<mutex_family, offset_ptr<void>, Alignment>
+ ,null_index
+ > my_managed_shared_memory;
+
+ //Create shared memory
+ shared_memory_object::remove(shMemName);
+ my_managed_shared_memory segment(create_only, shMemName, memsize);
+
+ //Now take the segment manager and launch memory test
+ if(!test::test_all_allocation(*segment.get_segment_manager())){
+ return 1;
+ }
+ return 0;
+}
+
 int main ()
 {
- using namespace boost::interprocess;
- const int memsize = 16384;
- const char *const shMemName = test::get_process_id_name();
-
- {
- //A shared memory with simple sequential fit algorithm
- typedef basic_managed_shared_memory
- <char
- ,simple_seq_fit<mutex_family>
- ,null_index
- > my_managed_shared_memory;
-
- //Create shared memory
- shared_memory_object::remove(shMemName);
- my_managed_shared_memory segment(create_only, shMemName, memsize);
-
- //Now take the segment manager and launch memory test
- if(!test::test_all_allocation(*segment.get_segment_manager())){
- return 1;
- }
- }
-
- {
- //A shared memory with red-black tree best fit algorithm
- typedef basic_managed_shared_memory
- <char
- ,rbtree_best_fit<mutex_family>
- ,null_index
- > my_managed_shared_memory;
-
- //Create shared memory
- shared_memory_object::remove(shMemName);
- my_managed_shared_memory segment(create_only, shMemName, memsize);
-
- //Now take the segment manager and launch memory test
- if(!test::test_all_allocation(*segment.get_segment_manager())){
- return 1;
- }
+ const std::size_t void_ptr_align = detail::alignment_of<void*>::value;
+ if(test_simple_seq_fit()){
+ return 1;
+ }
+ if(test_rbtree_best_fit<void_ptr_align>()){
+ return 1;
+ }
+ if(test_rbtree_best_fit<2*void_ptr_align>()){
+ return 1;
    }
+ if(test_rbtree_best_fit<4*void_ptr_align>()){
+ return 1;
+ }
+
    shared_memory_object::remove(shMemName);
    return 0;
 }

Modified: branches/proto/v3/libs/interprocess/test/memory_algorithm_test_template.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/memory_algorithm_test_template.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/memory_algorithm_test_template.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,7 +16,7 @@
 #include <iostream>
 #include <new>
 #include <utility>
-#include <cstring>
+#include <cstring> //std::memset
 #include <cstdio> //std::remove
 
 namespace boost { namespace interprocess { namespace test {
@@ -38,6 +38,8 @@
          void *ptr = a.allocate(i, std::nothrow);
          if(!ptr)
             break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
          buffers.push_back(ptr);
       }
 
@@ -94,6 +96,8 @@
       void *ptr = a.allocate(i*2, std::nothrow);
       if(!ptr)
          break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
       buffers.push_back(ptr);
    }
 
@@ -111,6 +115,7 @@
          if(received_size < std::size_t(i)){
             return false;
          }
+ std::memset(buffers[i], 0, a.size(buffers[i]));
       }
    }
    
@@ -139,6 +144,8 @@
       void *ptr = a.allocate(i, std::nothrow);
       if(!ptr)
          break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
       buffers.push_back(ptr);
    }
 
@@ -203,7 +210,7 @@
 
    //Now shrink to half
    for(int i = 0, max = (int)buffers.size()
- ;i < max
+ ; i < max
       ; ++i){
       std::size_t received_size;
       if(a.template allocation_command<char>
@@ -224,9 +231,10 @@
       ;i < max
       ;++i){
       std::size_t received_size;
+ std::size_t request_size = received_sizes[i];
       if(a.template allocation_command<char>
- ( expand_fwd | nothrow_allocation, received_sizes[i]
- , received_sizes[i], received_size, (char*)buffers[i]).first){
+ ( expand_fwd | nothrow_allocation, request_size
+ , request_size, received_size, (char*)buffers[i]).first){
          if(received_size != received_sizes[i]){
             return false;
          }
@@ -262,6 +270,8 @@
       void *ptr = a.allocate(i, std::nothrow);
       if(!ptr)
          break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
       buffers.push_back(ptr);
    }
 
@@ -327,19 +337,21 @@
 bool test_allocation_with_reuse(Allocator &a)
 {
    //We will repeat this test for different sized elements
- for(int size = 1; size < 20; ++size){
+ for(int sizeof_object = 1; sizeof_object < 20; ++sizeof_object){
       std::vector<void*> buffers;
 
       //Allocate buffers with extra memory
       for(int i = 0; true; ++i){
- void *ptr = a.allocate(i*size, std::nothrow);
+ void *ptr = a.allocate(i*sizeof_object, std::nothrow);
          if(!ptr)
             break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
          buffers.push_back(ptr);
       }
       
       //Now deallocate all except the latest
- //Now try to expand to the double of the size
+ //Now try to expand to the double of the sizeof_object
       for(int i = 0, max = (int)buffers.size() - 1
          ;i < max
          ;++i){
@@ -353,14 +365,18 @@
       //Now allocate with reuse
       std::size_t received_size = 0;
       for(int i = 0; true; ++i){
- std::pair<void*, bool> ret = a.template allocation_command<char>
- ( expand_bwd | nothrow_allocation, received_size/size*size + size
- , received_size/size*size+(i+1)*size*2, received_size, (char*)ptr);
+ std::size_t min_size = (received_size + 1);
+ std::size_t prf_size = (received_size + (i+1)*2);
+ std::pair<void*, bool> ret = a.raw_allocation_command
+ ( expand_bwd | nothrow_allocation, min_size
+ , prf_size, received_size, (char*)ptr, sizeof_object);
          if(!ret.first)
             break;
          //If we have memory, this must be a buffer reuse
          if(!ret.second)
             return 1;
+ if(received_size < min_size)
+ return 1;
          ptr = ret.first;
       }
       //There is only a single block so deallocate it
@@ -456,6 +472,8 @@
       void *ptr = a.allocate(i, std::nothrow);
       if(!ptr)
          break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 1, size);
       buffers.push_back(ptr);
    }
 
@@ -544,6 +562,8 @@
       void *ptr = a.allocate(i, std::nothrow);
       if(!ptr)
          break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
       buffers.push_back(ptr);
    }
 
@@ -564,7 +584,11 @@
    for(int j = 0, max = (int)buffers.size()
       ;j < max
       ;++j){
- int pos = (j%4)*((int)buffers.size())/4;
+ int pos = (j%5)*((int)buffers.size())/4;
+ if(pos == int(buffers.size()))
+ --pos;
+ a.deallocate(buffers[pos]);
+ buffers.erase(buffers.begin()+pos);
       std::size_t old_free = a.get_free_memory();
       a.shrink_to_fit();
       if(!a.check_sanity()) return false;
@@ -576,9 +600,6 @@
       if(!a.check_sanity()) return false;
       if(original_size != a.get_size()) return false;
       if(old_free != a.get_free_memory()) return false;
-
- a.deallocate(buffers[pos]);
- buffers.erase(buffers.begin()+pos);
    }
 
    //Now shrink it to the maximum
@@ -623,6 +644,8 @@
          void *ptr = a.allocate(i, std::nothrow);
          if(!ptr)
             break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
          if(!a.check_sanity())
             return false;
          buffers2.push_back(ptr);
@@ -736,6 +759,8 @@
          void *ptr = a.allocate(i, std::nothrow);
          if(!ptr)
             break;
+ std::size_t size = a.size(ptr);
+ std::memset(ptr, 0, size);
          buffers2.push_back(ptr);
       }
 
@@ -816,6 +841,57 @@
    return true;
 }
 
+//This test allocates multiple values until there is no more memory
+//and after that deallocates all in the inverse order
+template<class Allocator>
+bool test_many_deallocation(Allocator &a)
+{
+ typedef typename Allocator::multiallocation_iterator multiallocation_iterator;
+ const std::size_t ArraySize = 11;
+ std::vector<multiallocation_iterator> buffers;
+ std::size_t requested_sizes[ArraySize];
+ for(std::size_t i = 0; i < ArraySize; ++i){
+ requested_sizes[i] = 4*i;
+ }
+ std::size_t free_memory = a.get_free_memory();
+
+ {
+ for(int i = 0; true; ++i){
+ multiallocation_iterator it = a.allocate_many(requested_sizes, ArraySize, 1, std::nothrow);
+ if(!it)
+ break;
+ buffers.push_back(it);
+ }
+ for(int i = 0, max = (int)buffers.size(); i != max; ++i){
+ a.deallocate_many(buffers[i]);
+ }
+ buffers.clear();
+ bool ok = free_memory == a.get_free_memory() &&
+ a.all_memory_deallocated() && a.check_sanity();
+ if(!ok) return ok;
+ }
+
+ {
+ for(int i = 0; true; ++i){
+ multiallocation_iterator it = a.allocate_many(i*4, ArraySize, std::nothrow);
+ if(!it)
+ break;
+ buffers.push_back(it);
+ }
+ for(int i = 0, max = (int)buffers.size(); i != max; ++i){
+ a.deallocate_many(buffers[i]);
+ }
+ buffers.clear();
+
+ bool ok = free_memory == a.get_free_memory() &&
+ a.all_memory_deallocated() && a.check_sanity();
+ if(!ok) return ok;
+ }
+
+ return true;
+}
+
+
 //This function calls all tests
 template<class Allocator>
 bool test_all_allocation(Allocator &a)
@@ -847,6 +923,12 @@
       return false;
    }
 
+ if(!test_many_deallocation(a)){
+ std::cout << "test_many_deallocation failed. Class: "
+ << typeid(a).name() << std::endl;
+ return false;
+ }
+
    std::cout << "Starting test_allocation_shrink. Class: "
              << typeid(a).name() << std::endl;
 

Modified: branches/proto/v3/libs/interprocess/test/node_allocator_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/node_allocator_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/node_allocator_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,6 +16,7 @@
 #include "dummy_test_allocator.hpp"
 #include "movable_int.hpp"
 #include "list_test.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
@@ -23,15 +24,31 @@
 //Alias a integer node allocator type
 typedef node_allocator
    <int, managed_shared_memory::segment_manager> shmem_node_allocator_t;
+typedef detail::node_allocator_v1
+ <int, managed_shared_memory::segment_manager> shmem_node_allocator_v1_t;
+
+//Explicit instantiations to catch compilation errors
+template class node_allocator<int, managed_shared_memory::segment_manager>;
+template class detail::node_allocator_v1<int, managed_shared_memory::segment_manager>;
 
 //Alias list types
 typedef list<int, shmem_node_allocator_t> MyShmList;
+typedef list<int, shmem_node_allocator_v1_t> MyShmListV1;
+
+//Alias vector types
+typedef vector<int, shmem_node_allocator_t> MyShmVector;
+typedef vector<int, shmem_node_allocator_v1_t> MyShmVectorV1;
 
 int main ()
 {
    if(test::list_test<managed_shared_memory, MyShmList, true>())
       return 1;
-
+ if(test::list_test<managed_shared_memory, MyShmListV1, true>())
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVector>())
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVectorV1>())
+ return 1;
    return 0;
 }
 

Modified: branches/proto/v3/libs/interprocess/test/node_pool_test.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/node_pool_test.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/node_pool_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -42,7 +42,7 @@
 
    //First allocate nodes
    for(std::size_t i = 0; i < num_alloc; ++i){
- nodes.push_back(pool.allocate(1));
+ nodes.push_back(pool.allocate_node());
    }
 
    //Check that the free count is correct
@@ -52,7 +52,7 @@
    
    //Now deallocate all and check again
    for(std::size_t i = 0; i < num_alloc; ++i){
- pool.deallocate(nodes[i], 1);
+ pool.deallocate_node(nodes[i]);
    }
 
    //Check that the free count is correct
@@ -85,7 +85,7 @@
 
    //First allocate nodes
    for(std::size_t i = 0; i < max_nodes; ++i){
- nodes.push_back(pool.allocate(1));
+ nodes.push_back(pool.allocate_node());
    }
 
    //Check that the free count is correct
@@ -97,7 +97,7 @@
    for(std::size_t node_i = 0; node_i < nodes_per_chunk; ++node_i){
       //Deallocate a node per chunk
       for(std::size_t i = 0; i < max_chunks; ++i){
- pool.deallocate(nodes[i*nodes_per_chunk + node_i], 1);
+ pool.deallocate_node(nodes[i*nodes_per_chunk + node_i]);
       }
 
       //Check that the free count is correct

Modified: branches/proto/v3/libs/interprocess/test/private_adaptive_pool_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/private_adaptive_pool_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/private_adaptive_pool_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,6 +16,7 @@
 #include "dummy_test_allocator.hpp"
 #include "movable_int.hpp"
 #include "list_test.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
@@ -23,15 +24,31 @@
 //Alias a private adaptive pool that allocates ints
 typedef private_adaptive_pool
    <int, managed_shared_memory::segment_manager> priv_node_allocator_t;
+typedef detail::private_adaptive_pool_v1
+ <int, managed_shared_memory::segment_manager> priv_node_allocator_v1_t;
+
+//Explicit instantiations to catch compilation errors
+template class private_adaptive_pool<int, managed_shared_memory::segment_manager>;
+template class detail::private_adaptive_pool_v1<int, managed_shared_memory::segment_manager>;
 
 //Alias list types
 typedef list<int, priv_node_allocator_t> MyShmList;
+typedef list<int, priv_node_allocator_v1_t> MyShmListV1;
+
+//Alias vector types
+typedef vector<int, priv_node_allocator_t> MyShmVector;
+typedef vector<int, priv_node_allocator_v1_t> MyShmVectorV1;
 
 int main ()
 {
    if(test::list_test<managed_shared_memory, MyShmList, true>(false))
       return 1;
-
+ if(test::list_test<managed_shared_memory, MyShmListV1, true>(false))
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVector>())
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVectorV1>())
+ return 1;
    return 0;
 }
 

Modified: branches/proto/v3/libs/interprocess/test/private_node_allocator_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/private_node_allocator_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/private_node_allocator_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,6 +16,7 @@
 #include "dummy_test_allocator.hpp"
 #include "movable_int.hpp"
 #include "list_test.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
@@ -23,15 +24,31 @@
 //Alias a integer node allocator type
 typedef private_node_allocator
    <int, managed_shared_memory::segment_manager> priv_node_allocator_t;
+typedef detail::private_node_allocator_v1
+ <int, managed_shared_memory::segment_manager> priv_node_allocator_v1_t;
+
+//Explicit instantiations to catch compilation errors
+template class private_node_allocator<int, managed_shared_memory::segment_manager>;
+template class detail::private_node_allocator_v1<int, managed_shared_memory::segment_manager>;
 
 //Alias list types
-typedef list<int, priv_node_allocator_t> MyShmList;
+typedef list<int, priv_node_allocator_t> MyShmList;
+typedef list<int, priv_node_allocator_v1_t> MyShmListV1;
+
+//Alias vector types
+typedef vector<int, priv_node_allocator_t> MyShmVector;
+typedef vector<int, priv_node_allocator_v1_t> MyShmVectorV1;
 
 int main ()
 {
    if(test::list_test<managed_shared_memory, MyShmList, true>(false))
       return 1;
-
+ if(test::list_test<managed_shared_memory, MyShmListV1, true>(false))
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVector>())
+ return 1;
+ if(test::vector_test<managed_shared_memory, MyShmVectorV1>())
+ return 1;
    return 0;
 }
 

Modified: branches/proto/v3/libs/interprocess/test/set_test.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/set_test.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/set_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -384,6 +384,8 @@
       }
 
       //Now do count exercise
+ shmset->erase(shmset->begin(), shmset->end());
+ shmmultiset->erase(shmmultiset->begin(), shmmultiset->end());
       shmset->clear();
       shmmultiset->clear();
 

Modified: branches/proto/v3/libs/interprocess/test/vector_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/vector_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/vector_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,227 +17,22 @@
 
 #include <boost/interprocess/managed_shared_memory.hpp>
 #include <boost/interprocess/containers/vector.hpp>
-#include <boost/interprocess/indexes/flat_map_index.hpp>
 #include <boost/interprocess/allocators/allocator.hpp>
 #include "allocator_v1.hpp"
-#include <boost/interprocess/exceptions.hpp>
-#include <boost/interprocess/detail/move_iterator.hpp>
-#include <boost/interprocess/detail/move.hpp>
-#include "print_container.hpp"
 #include "check_equal_containers.hpp"
 #include "movable_int.hpp"
 #include "expand_bwd_test_allocator.hpp"
 #include "expand_bwd_test_template.hpp"
 #include "dummy_test_allocator.hpp"
-#include <string>
-#include "get_process_id_name.hpp"
+#include "vector_test.hpp"
 
 using namespace boost::interprocess;
 
-typedef basic_managed_shared_memory
- <char,
- simple_seq_fit<mutex_family>,
- flat_map_index
- > managed_shared_memory_t;
-
 //Explicit instantiation to detect compilation errors
 template class boost::interprocess::vector<test::movable_and_copyable_int,
    test::dummy_test_allocator<test::movable_and_copyable_int> >;
 
-template<class V1, class V2>
-bool copyable_only(V1 *, V2 *, detail::false_type)
-{
- return true;
-}
-
-//Function to check if both sets are equal
-template<class V1, class V2>
-bool copyable_only(V1 *shmvector, V2 *stdvector, detail::true_type)
-{
- typedef typename V1::value_type IntType;
- std::size_t size = shmvector->size();
- stdvector->insert(stdvector->end(), 50, 1);
- shmvector->insert(shmvector->end(), 50, 1);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- {
- IntType move_me(1);
- stdvector->insert(stdvector->begin()+size/2, 50, 1);
- shmvector->insert(shmvector->begin()+size/2, 50, move(move_me));
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
- }
- {
- IntType move_me(2);
- shmvector->assign(shmvector->size()/2, move(move_me));
- stdvector->assign(stdvector->size()/2, 2);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
- }
- {
- IntType move_me(3);
- shmvector->assign(shmvector->size()*3-1, move(move_me));
- stdvector->assign(stdvector->size()*3-1, 3);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
- }
- return true;
-}
-
-template<class IntType, template<class T, class SegmentManager> class AllocatorType >
-bool do_test()
-{
- //Customize managed_shared_memory class
- typedef basic_managed_shared_memory
- <char,
- //simple_seq_fit<mutex_family>,
- rbtree_best_fit<mutex_family>,
- flat_map_index
- > my_managed_shared_memory;
-
- //Alias AllocatorType type
- typedef AllocatorType<IntType, my_managed_shared_memory::segment_manager>
- shmem_allocator_t;
-
- //Alias vector types
- typedef vector<IntType, shmem_allocator_t> MyShmVector;
- typedef std::vector<int> MyStdVector;
-
- std::string process_name;
- test::get_process_id_name(process_name);
-
- const int Memsize = 65536;
- const char *const shMemName = process_name.c_str();
- const int max = 100;
-
- {
- //Compare several shared memory vector operations with std::vector
- //Create shared memory
- shared_memory_object::remove(shMemName);
- try{
- my_managed_shared_memory segment(create_only, shMemName, Memsize);
-
- segment.reserve_named_objects(100);
-
- //Shared memory allocator must be always be initialized
- //since it has no default constructor
- MyShmVector *shmvector = segment.template construct<MyShmVector>("MyShmVector")
- (segment.get_segment_manager());
- MyStdVector *stdvector = new MyStdVector;
-
- shmvector->resize(100);
- stdvector->resize(100);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- shmvector->resize(200);
- stdvector->resize(200);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- shmvector->resize(0);
- stdvector->resize(0);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- for(int i = 0; i < max; ++i){
- IntType new_int(i);
- shmvector->insert(shmvector->end(), move(new_int));
- stdvector->insert(stdvector->end(), i);
- }
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- typename MyShmVector::iterator shmit(shmvector->begin());
- typename MyStdVector::iterator stdit(stdvector->begin());
- typename MyShmVector::const_iterator cshmit = shmit;
- ++shmit; ++stdit;
- shmvector->erase(shmit);
- stdvector->erase(stdit);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- shmvector->erase(shmvector->begin());
- stdvector->erase(stdvector->begin());
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- {
- //Initialize values
- IntType aux_vect[50];
- for(int i = 0; i < 50; ++i){
- IntType new_int(-1);
- aux_vect[i] = move(new_int);
- }
- int aux_vect2[50];
- for(int i = 0; i < 50; ++i){
- aux_vect2[i] = -1;
- }
-
- shmvector->insert(shmvector->end()
- ,detail::make_move_iterator(&aux_vect[0])
- ,detail::make_move_iterator(aux_vect + 50));
- stdvector->insert(stdvector->end(), aux_vect2, aux_vect2 + 50);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- for(int i = 0, j = static_cast<int>(shmvector->size()); i < j; ++i){
- shmvector->erase(shmvector->begin());
- stdvector->erase(stdvector->begin());
- }
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
- }
- {
- IntType aux_vect[50];
- for(int i = 0; i < 50; ++i){
- IntType new_int(-1);
- aux_vect[i] = move(new_int);
- }
- int aux_vect2[50];
- for(int i = 0; i < 50; ++i){
- aux_vect2[i] = -1;
- }
- shmvector->insert(shmvector->begin()
- ,detail::make_move_iterator(&aux_vect[0])
- ,detail::make_move_iterator(aux_vect + 50));
- stdvector->insert(stdvector->begin(), aux_vect2, aux_vect2 + 50);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
- }
-
- shmvector->reserve(shmvector->size()*2);
- stdvector->reserve(stdvector->size()*2);
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- IntType push_back_this(1);
- shmvector->push_back(move(push_back_this));
- stdvector->push_back(int(1));
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- if(!copyable_only(shmvector, stdvector
- ,detail::bool_<!is_movable<IntType>::value>())){
- return false;
- }
-
- shmvector->erase(shmvector->begin());
- stdvector->erase(stdvector->begin());
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- for(int i = 0; i < max; ++i){
- IntType insert_this(i);
- shmvector->insert(shmvector->begin(), move(insert_this));
- stdvector->insert(stdvector->begin(), i);
- }
- if(!test::CheckEqualContainers(shmvector, stdvector)) return false;
-
- delete stdvector;
- segment.template destroy<MyShmVector>("MyShmVector");
- segment.shrink_to_fit_indexes();
-
- if(!segment.all_memory_deallocated())
- return false;
- }
- catch(std::exception &ex){
- shared_memory_object::remove(shMemName);
- std::cout << ex.what() << std::endl;
- return false;
- }
- }
- shared_memory_object::remove(shMemName);
- std::cout << std::endl << "Test OK!" << std::endl;
- return true;
-}
-
-bool test_expand_bwd()
+int test_expand_bwd()
 {
    //Now test all back insertion possibilities
 
@@ -248,7 +43,7 @@
       int_vector;
 
    if(!test::test_all_expand_bwd<int_vector>())
- return false;
+ return 1;
 
    //Now user defined wrapped int
    typedef test::expand_bwd_test_allocator<test::int_holder>
@@ -257,7 +52,7 @@
       int_holder_vector;
 
    if(!test::test_all_expand_bwd<int_holder_vector>())
- return false;
+ return 1;
 
    //Now user defined bigger wrapped int
    typedef test::expand_bwd_test_allocator<test::triple_int_holder>
@@ -267,26 +62,32 @@
       triple_int_holder_vector;
 
    if(!test::test_all_expand_bwd<triple_int_holder_vector>())
- return false;
+ return 1;
 
- return true;
+ return 0;
 }
 
 int main()
 {
- if(!do_test<int, allocator>())
- return 1;
+ typedef allocator<int, managed_shared_memory::segment_manager> ShmemAllocator;
+ typedef vector<int, ShmemAllocator> MyVector;
+
+ typedef allocator<test::movable_int, managed_shared_memory::segment_manager> ShmemMoveAllocator;
+ typedef vector<test::movable_int, ShmemMoveAllocator> MyMoveVector;
+
+ typedef allocator<test::movable_and_copyable_int, managed_shared_memory::segment_manager> ShmemCopyMoveAllocator;
+ typedef vector<test::movable_and_copyable_int, ShmemCopyMoveAllocator> MyCopyMoveVector;
 
- if(!do_test<test::movable_int, allocator>())
+ if(test::vector_test<managed_shared_memory, MyVector>())
       return 1;
 
- if(!do_test<test::movable_and_copyable_int, allocator>())
+ if(test::vector_test<managed_shared_memory, MyMoveVector>())
       return 1;
 
- if(!do_test<int, test::allocator_v1>())
+ if(test::vector_test<managed_shared_memory, MyCopyMoveVector>())
       return 1;
 
- if(!test_expand_bwd())
+ if(test_expand_bwd())
       return 1;
 
    return 0;

Modified: branches/proto/v3/libs/intrusive/example/doc_list_algorithms.cpp
==============================================================================
--- branches/proto/v3/libs/intrusive/example/doc_list_algorithms.cpp (original)
+++ branches/proto/v3/libs/intrusive/example/doc_list_algorithms.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -38,7 +38,7 @@
 
    //Create an empty doubly linked list container:
    //"one" will be the first node of the container
- algo::init(&one);
+ algo::init_header(&one);
    assert(algo::count(&one) == 1);
 
    //Now add a new node before "one"

Modified: branches/proto/v3/libs/intrusive/example/doc_slist_algorithms.cpp
==============================================================================
--- branches/proto/v3/libs/intrusive/example/doc_slist_algorithms.cpp (original)
+++ branches/proto/v3/libs/intrusive/example/doc_slist_algorithms.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -36,7 +36,7 @@
 
    //Create an empty singly linked list container:
    //"one" will be the first node of the container
- algo::init(&one);
+ algo::init_header(&one);
    assert(algo::count(&one) == 1);
 
    //Now add a new node

Modified: branches/proto/v3/libs/intrusive/index.html
==============================================================================
--- branches/proto/v3/libs/intrusive/index.html (original)
+++ branches/proto/v3/libs/intrusive/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,6 +4,6 @@
 </head>
 <body>
 Automatic redirection failed, please go to
-../../doc/html/intrusive
+../../doc/html/intrusive.html
 </body>
 </html>

Modified: branches/proto/v3/libs/intrusive/proj/vc7ide/_intrusivelib/_intrusivelib.vcproj
==============================================================================
--- branches/proto/v3/libs/intrusive/proj/vc7ide/_intrusivelib/_intrusivelib.vcproj (original)
+++ branches/proto/v3/libs/intrusive/proj/vc7ide/_intrusivelib/_intrusivelib.vcproj 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -136,6 +136,9 @@
                                 RelativePath="..\..\..\..\..\boost\intrusive\intrusive_fwd.hpp">
                         </File>
                         <File
+ RelativePath="..\..\..\..\..\boost\intrusive\linear_slist_algorithms.hpp">
+ </File>
+ <File
                                 RelativePath="..\..\..\..\..\boost\intrusive\link_mode.hpp">
                         </File>
                         <File
@@ -214,6 +217,9 @@
                                         RelativePath="..\..\..\..\..\boost\intrusive\detail\avltree_node.hpp">
                                 </File>
                                 <File
+ RelativePath="..\..\..\..\..\boost\intrusive\detail\common_slist_algorithms.hpp">
+ </File>
+ <File
                                         RelativePath="..\..\..\..\..\boost\intrusive\detail\config_begin.hpp">
                                 </File>
                                 <File

Modified: branches/proto/v3/libs/intrusive/test/itestvalue.hpp
==============================================================================
--- branches/proto/v3/libs/intrusive/test/itestvalue.hpp (original)
+++ branches/proto/v3/libs/intrusive/test/itestvalue.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -237,7 +237,7 @@
    // have to be handled appropriately when copied:
 
    testvalue & operator= (const testvalue& src)
- {
+ {/*
       set_base_hook_t::operator=(src);
       set_auto_base_hook_t::operator=(src);
       this->set_node_ = src.set_node_;
@@ -270,7 +270,7 @@
       slist_auto_base_hook_t::operator=(src);
       this->slist_node_ = src.slist_node_;
       this->slist_auto_node_ = src.slist_auto_node_;
-
+*/
       value_ = src.value_;
       return *this;
    }
@@ -366,6 +366,14 @@
    }
 };
 
+struct is_even
+{
+ template<class VoidPointer, bool constant_time_size>
+ bool operator()
+ (const testvalue<VoidPointer, constant_time_size>& v1) const
+ { return (v1.value_ & 1) == 0; }
+};
+
 } //namespace boost{
 } //namespace intrusive{
 

Modified: branches/proto/v3/libs/intrusive/test/list_test.cpp
==============================================================================
--- branches/proto/v3/libs/intrusive/test/list_test.cpp (original)
+++ branches/proto/v3/libs/intrusive/test/list_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,6 +31,8 @@
    static void test_all(std::vector<value_type>& values);
    static void test_front_back(std::vector<value_type>& values);
    static void test_sort(std::vector<value_type>& values);
+ static void test_merge(std::vector<value_type>& values);
+ static void test_remove_unique(std::vector<value_type>& values);
    static void test_insert(std::vector<value_type>& values);
    static void test_shift(std::vector<value_type>& values);
    static void test_swap(std::vector<value_type>& values);
@@ -58,19 +60,13 @@
 
    test_front_back(values);
    test_sort(values);
+ test_merge(values);
+ test_remove_unique(values);
    test_insert(values);
    test_shift(values);
    test_swap(values);
    test_clone(values);
    test_container_from_end(values);
-/*
- const char *list_name = typeid(list_type).name();
- std::cout << list_name << std::endl << strlen(list_name) << std::endl;
- const char *value_t = typeid(typename list_type::value_traits).name();
- std::cout << value_t << std::endl << strlen(value_t) << std::endl;
- const char *list_it_name = typeid(typename list_type::iterator).name();
- std::cout << list_it_name << std::endl << strlen(list_it_name ) << std::endl;
-*/
 }
 
 //test: push_front, pop_front, push_back, pop_back, front, back, size, empty:
@@ -134,6 +130,60 @@
    { int init_values [] = { 5, 3, 1, 4, 2 };
       TEST_INTRUSIVE_SEQUENCE( init_values, testlist.begin() ); }
 }
+
+//test: merge due to error in merge implementation:
+template<class ValueTraits>
+void test_list<ValueTraits>
+ ::test_remove_unique (std::vector<typename ValueTraits::value_type>& values)
+{
+ typedef typename ValueTraits::value_type value_type;
+ typedef list
+ < value_type
+ , value_traits<ValueTraits>
+ , size_type<std::size_t>
+ , constant_time_size<value_type::constant_time_size>
+ > list_type;
+ {
+ list_type list(values.begin(), values.end());
+ list.remove_if(is_even());
+ int init_values [] = { 1, 3, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, list.begin() );
+ }
+ {
+ std::vector<typename ValueTraits::value_type> values2(values);
+ list_type list(values.begin(), values.end());
+ list.insert(list.end(), values2.begin(), values2.end());
+ list.sort();
+ int init_values [] = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, list.begin() );
+ list.unique();
+ int init_values2 [] = { 1, 2, 3, 4, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values2, list.begin() );
+ }
+}
+
+//test: merge due to error in merge implementation:
+template<class ValueTraits>
+void test_list<ValueTraits>
+ ::test_merge (std::vector<typename ValueTraits::value_type>& values)
+{
+ typedef typename ValueTraits::value_type value_type;
+ typedef list
+ < value_type
+ , value_traits<ValueTraits>
+ , size_type<std::size_t>
+ , constant_time_size<value_type::constant_time_size>
+ > list_type;
+ list_type testlist1, testlist2;
+ testlist1.push_front (values[0]);
+ testlist2.push_front (values[4]);
+ testlist2.push_front (values[3]);
+ testlist2.push_front (values[2]);
+ testlist1.merge (testlist2);
+
+ int init_values [] = { 1, 3, 4, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() );
+}
   
 //test: assign, insert, const_iterator, const_reverse_iterator, erase, s_iterator_to:
 template<class ValueTraits>
@@ -194,26 +244,29 @@
    const int num_values = (int)values.size();
    std::vector<int> expected_values(num_values);
 
- //Shift forward all possible positions 3 times
- for(int i = 0; i < num_values*3; ++i){
- testlist.assign(values.begin(), values.end());
- testlist.shift_forward(i);
- for(int j = 0; j < num_values; ++j){
- expected_values[(j + num_values - i%num_values) % num_values] = (j + 1);
+ for(int s = 1; s <= num_values; ++s){
+ expected_values.resize(s);
+ //Shift forward all possible positions 3 times
+ for(int i = 0; i < s*3; ++i){
+ testlist.insert(testlist.begin(), &values[0], &values[0] + s);
+ testlist.shift_forward(i);
+ for(int j = 0; j < s; ++j){
+ expected_values[(j + s - i%s) % s] = (j + 1);
+ }
+ TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin());
+ testlist.clear();
       }
- TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin());
- testlist.clear();
- }
 
- //Shift backwards all possible positions
- for(int i = 0; i < num_values*3; ++i){
- testlist.assign(values.begin(), values.end());
- testlist.shift_backwards(i);
- for(int j = 0; j < num_values; ++j){
- expected_values[(j + i) % num_values] = (j + 1);
+ //Shift backwards all possible positions
+ for(int i = 0; i < s*3; ++i){
+ testlist.insert(testlist.begin(), &values[0], &values[0] + s);
+ testlist.shift_backwards(i);
+ for(int j = 0; j < s; ++j){
+ expected_values[(j + i) % s] = (j + 1);
+ }
+ TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin());
+ testlist.clear();
       }
- TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin());
- testlist.clear();
    }
 }
 
@@ -278,6 +331,28 @@
       { int init_values [] = { 4, 3 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist2.begin() ); }
    }
+ {
+ list_type testlist1 (&values[0], &values[1]);
+
+ { int init_values [] = { 1 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+
+ values[1].swap_nodes(values[2]);
+
+ { int init_values [] = { 1 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+
+ values[0].swap_nodes(values[2]);
+
+ { int init_values [] = { 3 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+
+ values[0].swap_nodes(values[2]);
+
+ { int init_values [] = { 1 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+ }
+
 }
 
 template<class ValueTraits>

Modified: branches/proto/v3/libs/intrusive/test/slist_test.cpp
==============================================================================
--- branches/proto/v3/libs/intrusive/test/slist_test.cpp (original)
+++ branches/proto/v3/libs/intrusive/test/slist_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,24 +24,28 @@
 
 using namespace boost::intrusive;
 
-template<class ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
 struct test_slist
 {
    typedef typename ValueTraits::value_type value_type;
- static void test_all (std::vector<value_type>& values);
- static void test_front_back (std::vector<value_type>& values);
+ static void test_all(std::vector<value_type>& values);
+ static void test_front(std::vector<value_type>& values);
+ static void test_back(std::vector<value_type>& values, detail::bool_<true>);
+ static void test_back(std::vector<value_type>& values, detail::bool_<false>);
    static void test_sort(std::vector<value_type>& values);
- static void test_merge (std::vector<value_type>& values);
+ static void test_merge(std::vector<value_type>& values);
+ static void test_remove_unique(std::vector<value_type>& values);
    static void test_insert(std::vector<value_type>& values);
    static void test_shift(std::vector<value_type>& values);
    static void test_swap(std::vector<value_type>& values);
- static void test_slow_insert (std::vector<value_type>& values);
- static void test_clone (std::vector<value_type>& values);
- static void test_container_from_end(std::vector<value_type> &values);
+ static void test_slow_insert(std::vector<value_type>& values);
+ static void test_clone(std::vector<value_type>& values);
+ static void test_container_from_end(std::vector<value_type> &, detail::bool_<true>){}
+ static void test_container_from_end(std::vector<value_type> &values, detail::bool_<false>);
 };
 
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_all (std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -50,6 +54,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    {
       list_type list(values.begin(), values.end());
@@ -58,21 +64,23 @@
       list.insert(list.end(), values.begin(), values.end());
       test::test_sequence_container(list, values);
    }
- test_front_back (values);
+ test_front(values);
+ test_back(values, detail::bool_<CacheLast>());
    test_sort(values);
    test_merge (values);
+ test_remove_unique(values);
    test_insert(values);
    test_shift(values);
    test_slow_insert (values);
    test_swap(values);
    test_clone(values);
- test_container_from_end(values);
+ test_container_from_end(values, detail::bool_<Linear>());
 }
 
 //test: push_front, pop_front, front, size, empty:
-template<class ValueTraits>
-void test_slist<ValueTraits>
- ::test_front_back (std::vector<typename ValueTraits::value_type>& values)
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
+ ::test_front(std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
    typedef slist
@@ -80,6 +88,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist;
    BOOST_TEST (testlist.empty());
@@ -98,11 +108,45 @@
      
    testlist.pop_front();
    BOOST_TEST (testlist.empty());
-}
+}
+
+//test: push_front, pop_front, front, size, empty:
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
+ ::test_back(std::vector<typename ValueTraits::value_type>& values, detail::bool_<true>)
+{
+ typedef typename ValueTraits::value_type value_type;
+ typedef slist
+ < value_type
+ , value_traits<ValueTraits>
+ , size_type<std::size_t>
+ , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
+ > list_type;
+ list_type testlist;
+ BOOST_TEST (testlist.empty());
+
+ testlist.push_back (values[0]);
+ BOOST_TEST (testlist.size() == 1);
+ BOOST_TEST (&testlist.front() == &values[0]);
+ BOOST_TEST (&testlist.back() == &values[0]);
+ testlist.push_back(values[1]);
+ BOOST_TEST(*testlist.previous(testlist.end()) == values[1]);
+ BOOST_TEST (&testlist.front() == &values[0]);
+ BOOST_TEST (&testlist.back() == &values[1]);
+}
+
+//test: push_front, pop_front, front, size, empty:
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
+ ::test_back(std::vector<typename ValueTraits::value_type>&, detail::bool_<false>)
+{}
+
 
 //test: merge due to error in merge implementation:
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_merge (std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -111,6 +155,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist1, testlist2;
    testlist1.push_front (values[0]);
@@ -123,9 +169,42 @@
    TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() );
 }
 
+//test: merge due to error in merge implementation:
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
+ ::test_remove_unique (std::vector<typename ValueTraits::value_type>& values)
+{
+ typedef typename ValueTraits::value_type value_type;
+ typedef slist
+ < value_type
+ , value_traits<ValueTraits>
+ , size_type<std::size_t>
+ , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
+ > list_type;
+ {
+ list_type list(values.begin(), values.end());
+ list.remove_if(is_even());
+ int init_values [] = { 1, 3, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, list.begin() );
+ }
+ {
+ std::vector<typename ValueTraits::value_type> values2(values);
+ list_type list(values.begin(), values.end());
+ list.insert_after(list.before_begin(), values2.begin(), values2.end());
+ list.sort();
+ int init_values [] = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, list.begin() );
+ list.unique();
+ int init_values2 [] = { 1, 2, 3, 4, 5 };
+ TEST_INTRUSIVE_SEQUENCE( init_values2, list.begin() );
+ }
+}
+
 //test: constructor, iterator, sort, reverse:
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_sort(std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -134,6 +213,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist (values.begin(), values.end());
 
@@ -145,13 +226,13 @@
       TEST_INTRUSIVE_SEQUENCE( init_values, testlist.begin() ); }
 
    testlist.reverse();
- { int init_values [] = { 5, 3, 1, 4, 2, };
+ { int init_values [] = { 5, 3, 1, 4, 2 };
       TEST_INTRUSIVE_SEQUENCE( init_values, testlist.begin() ); }
 }
   
 //test: assign, insert_after, const_iterator, erase_after, s_iterator_to, previous:
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_insert(std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -160,6 +241,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist;
    testlist.assign (&values[0] + 2, &values[0] + 5);
@@ -189,8 +272,8 @@
 }
 
 //test: insert, const_iterator, erase, siterator_to:
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_slow_insert (std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -199,6 +282,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist;
    testlist.push_front (values[4]);
@@ -232,8 +317,8 @@
    BOOST_TEST (testlist.front().value_ == 3);
 }
 
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_shift(std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -242,6 +327,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist;
 
@@ -249,33 +336,36 @@
    std::vector<int> expected_values(num_values);
 
    //Shift forward all possible positions 3 times
- for(int i = 0; i < num_values*3; ++i){
- testlist.assign(values.begin(), values.end());
- testlist.shift_forward(i);
- for(int j = 0; j < num_values; ++j){
- expected_values[(j + num_values - i%num_values) % num_values] = (j + 1);
+ for(int s = 1; s <= num_values; ++s){
+ expected_values.resize(s);
+ for(int i = 0; i < s*3; ++i){
+ testlist.insert_after(testlist.before_begin(), &values[0], &values[0] + s);
+ testlist.shift_forward(i);
+ for(int j = 0; j < s; ++j){
+ expected_values[(j + s - i%s) % s] = (j + 1);
+ }
+
+ TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin())
+ testlist.clear();
       }
 
- TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin())
- testlist.clear();
- }
+ //Shift backwards all possible positions
+ for(int i = 0; i < s*3; ++i){
+ testlist.insert_after(testlist.before_begin(), &values[0], &values[0] + s);
+ testlist.shift_backwards(i);
+ for(int j = 0; j < s; ++j){
+ expected_values[(j + i) % s] = (j + 1);
+ }
 
- //Shift backwards all possible positions
- for(int i = 0; i < num_values*3; ++i){
- testlist.assign(values.begin(), values.end());
- testlist.shift_backwards(i);
- for(int j = 0; j < num_values; ++j){
- expected_values[(j + i) % num_values] = (j + 1);
+ TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin())
+ testlist.clear();
       }
-
- TEST_INTRUSIVE_SEQUENCE_EXPECTED(expected_values, testlist.begin())
- testlist.clear();
    }
 }
 
 //test: insert_after (seq-version), swap, splice_after:
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_swap(std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -284,11 +374,13 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    {
       list_type testlist1 (&values[0], &values[0] + 2);
       list_type testlist2;
- testlist2.insert_after (testlist2.end(), &values[0] + 2, &values[0] + 5);
+ testlist2.insert_after (testlist2.before_begin(), &values[0] + 2, &values[0] + 5);
       testlist1.swap(testlist2);
       { int init_values [] = { 3, 4, 5 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
@@ -299,19 +391,20 @@
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist2.begin() ); }
       BOOST_TEST (testlist1.empty());
 
- testlist1.splice_after (testlist1.end(), testlist2, ++testlist2.begin());
+ testlist1.splice_after (testlist1.before_begin(), testlist2, ++testlist2.begin());
       { int init_values [] = { 4 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
       { int init_values [] = { 1, 3, 5, 2 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist2.begin() ); }
 
       testlist1.splice_after (testlist1.begin(), testlist2,
- testlist2.end(), ++++testlist2.begin());
+ testlist2.before_begin(), ++++testlist2.begin());
       { int init_values [] = { 4, 1, 3, 5 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
       { int init_values [] = { 2 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist2.begin() ); }
    }
+ if(!list_type::linear)
    {
       list_type testlist1 (&values[0], &values[0] + 2);
       list_type testlist2 (&values[0] + 3, &values[0] + 5);
@@ -326,10 +419,32 @@
       { int init_values [] = { 4, 3 };
          TEST_INTRUSIVE_SEQUENCE( init_values, testlist2.begin() ); }
    }
+ if(!list_type::linear)
+ {
+ list_type testlist1 (&values[0], &values[1]);
+
+ { int init_values [] = { 1 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+
+ values[1].swap_nodes(values[2]);
+
+ { int init_values [] = { 1 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+
+ values[0].swap_nodes(values[2]);
+
+ { int init_values [] = { 3 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+
+ values[0].swap_nodes(values[2]);
+
+ { int init_values [] = { 1 };
+ TEST_INTRUSIVE_SEQUENCE( init_values, testlist1.begin() ); }
+ }
 }
 
-template<class ValueTraits>
-void test_slist<ValueTraits>
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
    ::test_clone(std::vector<typename ValueTraits::value_type>& values)
 {
    typedef typename ValueTraits::value_type value_type;
@@ -338,6 +453,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
 
       list_type testlist1 (&values[0], &values[0] + values.size());
@@ -349,9 +466,10 @@
       BOOST_TEST (testlist2.empty());
 }
 
-template<class ValueTraits>
-void test_slist<ValueTraits>
- ::test_container_from_end(std::vector<typename ValueTraits::value_type>& values)
+template<class ValueTraits, bool Linear, bool CacheLast>
+void test_slist<ValueTraits, Linear, CacheLast>
+ ::test_container_from_end(std::vector<typename ValueTraits::value_type>& values
+ ,detail::bool_<false>)
 {
    typedef typename ValueTraits::value_type value_type;
    typedef slist
@@ -359,6 +477,8 @@
       , value_traits<ValueTraits>
       , size_type<std::size_t>
       , constant_time_size<value_type::constant_time_size>
+ , linear<Linear>
+ , cache_last<CacheLast>
> list_type;
    list_type testlist1 (&values[0], &values[0] + values.size());
    BOOST_TEST (testlist1 == list_type::container_from_end_iterator(testlist1.end()));
@@ -380,7 +500,29 @@
                   < value_type
                   , typename value_type::slist_base_hook_t
>::type
+ , false
+ , false
+ >::test_all(data);
+ test_slist < typename detail::get_member_value_traits
+ < value_type
+ , member_hook< value_type
+ , typename value_type::slist_member_hook_t
+ , &value_type::slist_node_
+ >
+ >::type
+ , false
+ , false
+ >::test_all(data);
+
+ //Now linear slists
+ test_slist < typename detail::get_base_value_traits
+ < value_type
+ , typename value_type::slist_base_hook_t
+ >::type
+ , true
+ , false
>::test_all(data);
+
       test_slist < typename detail::get_member_value_traits
                   < value_type
                   , member_hook< value_type
@@ -388,8 +530,48 @@
                                , &value_type::slist_node_
>
>::type
+ , true
+ , false
>::test_all(data);
 
+ //Now the same but caching the last node
+ test_slist < typename detail::get_base_value_traits
+ < value_type
+ , typename value_type::slist_base_hook_t
+ >::type
+ , false
+ , true
+ >::test_all(data);
+ test_slist < typename detail::get_member_value_traits
+ < value_type
+ , member_hook< value_type
+ , typename value_type::slist_member_hook_t
+ , &value_type::slist_node_
+ >
+ >::type
+ , false
+ , true
+ >::test_all(data);
+
+ //Now linear slists
+ test_slist < typename detail::get_base_value_traits
+ < value_type
+ , typename value_type::slist_base_hook_t
+ >::type
+ , true
+ , true
+ >::test_all(data);
+
+ test_slist < typename detail::get_member_value_traits
+ < value_type
+ , member_hook< value_type
+ , typename value_type::slist_member_hook_t
+ , &value_type::slist_node_
+ >
+ >::type
+ , true
+ , true
+ >::test_all(data);
       return 0;
    }
 };
@@ -409,6 +591,8 @@
                   < value_type
                   , typename value_type::slist_base_hook_t
>::type
+ , false
+ , false
>::test_all(data);
 
       test_slist < typename detail::get_member_value_traits
@@ -418,12 +602,16 @@
                                , &value_type::slist_node_
>
>::type
+ , false
+ , false
>::test_all(data);
 
       test_slist < typename detail::get_base_value_traits
                   < value_type
                   , typename value_type::slist_auto_base_hook_t
>::type
+ , false
+ , false
>::test_all(data);
 
       test_slist < typename detail::get_member_value_traits
@@ -433,6 +621,66 @@
                                , &value_type::slist_auto_node_
>
>::type
+ , false
+ , false
+ >::test_all(data);
+
+ test_slist < typename detail::get_base_value_traits
+ < value_type
+ , typename value_type::slist_base_hook_t
+ >::type
+ , true
+ , false
+ >::test_all(data);
+
+ test_slist < typename detail::get_member_value_traits
+ < value_type
+ , member_hook< value_type
+ , typename value_type::slist_member_hook_t
+ , &value_type::slist_node_
+ >
+ >::type
+ , true
+ , false
+ >::test_all(data);
+
+ //Now cache last
+ test_slist < typename detail::get_base_value_traits
+ < value_type
+ , typename value_type::slist_base_hook_t
+ >::type
+ , false
+ , true
+ >::test_all(data);
+
+ test_slist < typename detail::get_member_value_traits
+ < value_type
+ , member_hook< value_type
+ , typename value_type::slist_member_hook_t
+ , &value_type::slist_node_
+ >
+ >::type
+ , false
+ , true
+ >::test_all(data);
+
+ test_slist < typename detail::get_base_value_traits
+ < value_type
+ , typename value_type::slist_base_hook_t
+ >::type
+ , true
+ , true
+ >::test_all(data);
+
+ test_slist < typename detail::get_member_value_traits
+ < value_type
+ , member_hook< value_type
+ , typename value_type::slist_member_hook_t
+ , &value_type::slist_node_
+ >
+ >::type
+ , true
+ , true
>::test_all(data);
       return 0;
    }

Modified: branches/proto/v3/libs/io/doc/index.html
==============================================================================
--- branches/proto/v3/libs/io/doc/index.html (original)
+++ branches/proto/v3/libs/io/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,9 +14,9 @@
                         color="white"><big>Home</big></font></a></td>
                 <td><a href="../../libraries.htm"><font face="Arial"
                         color="white"><big>Libraries</big></font></a></td>
- <td><a href="../../../people/people.htm"><font face="Arial"
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial"
                         color="white"><big>People</big></font></a></td>
- <td><a href="../../../more/faq.htm"><font face="Arial"
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial"
                         color="white"><big>FAQ</big></font></a></td>
                 <td><a href="../../../more/index.htm"><font face="Arial"
                         color="white"><big>More</big></font></a></td>

Modified: branches/proto/v3/libs/io/doc/ios_state.html
==============================================================================
--- branches/proto/v3/libs/io/doc/ios_state.html (original)
+++ branches/proto/v3/libs/io/doc/ios_state.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -434,7 +434,7 @@
 <h3><a name="contributors">Contributors</a></h3>
 
 <dl>
- <dt>Daryle Walker
+ <dt>Daryle Walker
         <dd>Started the library. Contributed the initial versions of the
                 format flags, precision, width, and user-defined format flags
                 saver classes. Contributed the initial versions of the success

Modified: branches/proto/v3/libs/iostreams/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/iostreams/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/iostreams/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,7 @@
 # Boost.Iostreams Library Build Jamfile
 
-# (C) Copyright Jonathan Turkanis 2004
+# (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+# (C) Copyright 2004-2007 Jonathan Turkanis
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -125,8 +126,7 @@
 }
 
 local bz2 = [ create-library bzip2 : libbz2 bz2 :
- blocksort bzlib compress crctable decompress huffman
- mk251 randtable :
+ blocksort bzlib compress crctable decompress huffman randtable :
     <link>shared:<def-file>$(BZIP2_SOURCE)/libbz2.def ] ;
 
 if $(bz2)

Modified: branches/proto/v3/libs/iostreams/doc/acknowledgments.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/acknowledgments.html (original)
+++ branches/proto/v3/libs/iostreams/doc/acknowledgments.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,6 +14,12 @@
 
 <!-- End Banner -->
 
+<H3>1.35</H3>
+
+<P>Numerous users submitted bug reports and patches to correct and optimize Boost.Iostreams for release 1.35. Frank Birbacher and Chad Walters deserve special thanks for diagnosing and fixing bugs and for prodding the author to resume active maintenance of the library.
+
+<H3>1.33</H3>
+
 <P>
     The original idea for the library came from the example stream buffer implementations in <I>Standard C++ IOStreams and Locales</I>, by Angelika Langer and Klaus Kreft (<A CLASS="bib_ref" HREF="bibliography.html#langer">[Langer]</A>). Robert Ramey suggested extending the library to handle filtering. In addition:
 </P>
@@ -23,13 +29,13 @@
         The implementation of stream_buffer is indebted to work of Angelika Langer and Klaus Kreft (<A CLASS="bib_ref" HREF="bibliography.html#langer">[Langer]</A>, <I>pp.</I> 228-43).
     </LI>
     <LI CLASS="square">
- The filtering stream buffer concept was invented by James Kanze and Dietmar Kühl. <I>See</I> <A CLASS="bib_ref" HREF="bibliography.html#kanze">[Kanze]</A>.
+ The filtering stream buffer concept was invented by James Kanze and Dietmar K&uuml;hl. <I>See</I> <A CLASS="bib_ref" HREF="bibliography.html#kanze">[Kanze]</A>.
     </LI>
     <LI>
         The concepts InputFilter and OutputFilter were inspired by James Kanze's <I>extractors</I> and <I>inserters</I>. In addition, the names of the components filtering_stream and filtering_streambuf are borrwed from Kanze, as are several of the Filters from the Tutorial. <I>See</I> <A CLASS="bib_ref" HREF="bibliography.html#kanze">[Kanze]</A>.
     </LI>
     <LI CLASS="square">
- Pipelines were introduce by Jan Christiaan van Winkel and John van Krieken. <I>See</I> <A CLASS="bib_ref" HREF="bibliography.html#van_winkel">[van Winkel].</A> Dietmar Kühl suggested adding this functionality to the Iostreams library.
+ Pipelines were introduce by Jan Christiaan van Winkel and John van Krieken. <I>See</I> <A CLASS="bib_ref" HREF="bibliography.html#van_winkel">[van Winkel].</A> Dietmar K&uuml;hl suggested adding this functionality to the Iostreams library.
     </LI>
     <LI CLASS="square">
         The facility for adding iterator ranges and output iterators to filter chains was inspired by work of Maxim Egorushkin. <I>See</I> <A CLASS="bib_ref" HREF="bibliography.html#egorushkin">[Egorushkin]</A>.
@@ -68,7 +74,7 @@
         Jeff Garland served as review manager and provided helpful criticism and guidance.
     </LI>
     <LI CLASS="square">
- Those who participated in the formal review or the post-review discussions, or who submitted bug reports or patches, include (in no particular order) Adam Peterson, Joaquín M López Muñoz, Neal D. Becker, Stas Garifulin, Vladimir Prus, Rob Stewart, Robert Ramey, Michel Decima, Michiel Salters, Pedro Lamarão, Dietmar Kühl, Oleg Rekutin, Reece Dunn, Stefan Slapeta, Jeff Flinn, Jeff Garland, Eugene Lazutkin, John Torjo, Brian Braatz, Keith Burton, Keith MacDonald, Phil Richards, Arjen Wagenaar, Caleb Epstein, Dylan Trotter, Ben Hutchings, Daniel James, Daniel Schlyder, Jan Christiaan van Winkel, Jonathan Graehl, Jonathan Wakely, Rene Rivera, Tony Juricic, Bronek Kozicki, George M. Garner, Jr., Thorsten Ottosen, Bertolt Mildner, Carlo Wood, Christoper Diggins, Christoph Ludwig, Daryle Walker, Dirk Griffioen, Gareth Sylvester-Bradley, Jürgen Hunold, Larry Evans, Markus Sch&ouml;pflin, Martin Ecker, Martin Wille, Russel Hind, Matthew Vogt, Matthias Troyer, Peter Dimov, Bruno Martínez Aguerre, Douglas Grego
r, Paul A. Bristow, David B. Held, Kevin Wheatley, Pavel Vozenilek, Emmanuel Thomé, Scott Woods, Israel Fernández Cabrera, Felix Gartsman, Pavel Chikulaev, Lisa Glendenning, Yuval Ronen and Paul Harris.
+ Those who participated in the formal review or the post-review discussions, or who submitted bug reports or patches, include (in no particular order) Adam Peterson, Joaqu&iacute;n M L&oacute;pez Mu&ntilde;oz, Neal D. Becker, Stas Garifulin, Vladimir Prus, Rob Stewart, Robert Ramey, Michel Decima, Michiel Salters, Pedro Lamar&atilde;o, Dietmar K&uuml;hl, Oleg Rekutin, Reece Dunn, Stefan Slapeta, Jeff Flinn, Jeff Garland, Eugene Lazutkin, John Torjo, Brian Braatz, Keith Burton, Keith MacDonald, Phil Richards, Arjen Wagenaar, Caleb Epstein, Dylan Trotter, Ben Hutchings, Daniel James, Daniel Schlyder, Jan Christiaan van Winkel, Jonathan Graehl, Jonathan Wakely, Rene Rivera, Tony Juricic, Bronek Kozicki, George M. Garner, Jr., Thorsten Ottosen, Bertolt Mildner, Carlo Wood, Christoper Diggins, Christoph Ludwig, Daryle Walker, Dirk Griffioen, Gareth Sylvester-Bradley, J&uuml;rgen Hunold, Larry Evans, Markus Sch&ouml;pflin, Martin Ecker, Martin Wille, Russel Hind, Matthew Vogt, Matthias Troyer, Peter Dimov,
 Bruno Mart&iacute;nez Aguerre, Douglas Gregor, Paul A. Bristow, David B. Held, Kevin Wheatley, Pavel Vozenilek, Emmanuel Thomé, Scott Woods, Israel Fern&aacute;ndez Cabrera, Felix Gartsman, Pavel Chikulaev, Lisa Glendenning, Yuval Ronen and Paul Harris.
     </LI>
 </UL>
 
@@ -76,13 +82,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/bibliography.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/bibliography.html (original)
+++ branches/proto/v3/libs/iostreams/doc/bibliography.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,7 +21,7 @@
 <TABLE CELLPADDING=7=2>
 <TR>
     <TH ALIGN="left" VALIGN="top"><A NAME="abrahams1">[Abrahams1]</A></TD><TD WIDTH="1em"></TH>
- <TD>Abrahams, D. <A NAME="abrahams1" HREF="../../../more/generic_exception_safety.html" TARGET="_top">Exception Safety in Generic Components.</A> <I>In</I> M. Jazayeri, R. Loos, D. Musser (eds.), <I>Generic Programming '98, Proc. of a Dagstuhl Seminar</I>, Lecture Notes on Computer Science, Vol. 1766, pp. 69-79. Springer-Verlag Berlin Heidelberg, 2000.
+ <TD>Abrahams, D. <A NAME="abrahams1" HREF="http://www.boost.org/more/generic_exception_safety.html" TARGET="_top">Exception Safety in Generic Components.</A> <I>In</I> M. Jazayeri, R. Loos, D. Musser (eds.), <I>Generic Programming '98, Proc. of a Dagstuhl Seminar</I>, Lecture Notes on Computer Science, Vol. 1766, pp. 69-79. Springer-Verlag Berlin Heidelberg, 2000.
 </TR>
 <TR>
     <TH ALIGN="left" VALIGN="top"><A NAME="abrahams2">[Abrahams2]</A></TD><TD WIDTH="1em"></TH>
@@ -58,15 +58,15 @@
 <TR>
     <TH ALIGN="left" VALIGN="top"><A NAME="garland">[Garland]</A></TD><TD WIDTH="1em"></TH>
     <TD>Garland, J. <I>Boost ZStream</I>.<A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1"><SUP>[1]</SUP></A>
- Available at the Boost Yahoo Files Section (<I>see</I> here for registration information).</TD>
+ Available at the Boost Yahoo Files Section (<I>see</I> here for registration information).</TD>
 </TR>
 <TR>
     <TH ALIGN="left" VALIGN="top"><A NAME="de_halleux">[de Halleux]</A></TD><TD WIDTH="1em"></TH>
- <TD>de Halleux, J. <I>ZipStream</I>. Available at the Boost Yahoo Files Section (<I>see</I> here for registration information), or at The Code Project.</TD>
+ <TD>de Halleux, J. <I>ZipStream</I>. Available at the Boost Yahoo Files Section (<I>see</I> here for registration information), or at The Code Project.</TD>
 </TR>
 <TR>
     <TH ALIGN="left" VALIGN="top"><A NAME="henderson">[Henderson]</A></TD><TD WIDTH="1em"></TH>
- <TD>Henderson, C. <I>Boost Memory Mapped File</I>.<A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1"><SUP>[1]</SUP></A> Available in the Boost Sandbox.</TD>
+ <TD>Henderson, C. <I>Boost Memory Mapped File</I>.<A CLASS="footnote_ref" NAME="note_1_ref" HREF="#note_1"><SUP>[1]</SUP></A> Available in the Boost Sandbox.</TD>
 </TR>
 <TR>
     <TH ALIGN="left" VALIGN="top"><A NAME="iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A></TD><TD WIDTH="1em"></TH>
@@ -121,13 +121,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/aggregate.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/aggregate.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/aggregate.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -102,13 +102,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/array.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/array.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/array.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -202,19 +202,15 @@
 <H2>Acknowledgments</H2>
 
 <P>
-The concept of Devices which provide unbuffered access to character sequences was suggested by Daryle Walker's array_stream template.
+The concept of Devices which provide unbuffered access to character sequences was suggested by Daryle Walker's array_stream template.
 </P>
 
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/back_inserter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/back_inserter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/back_inserter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,13 +94,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/bzip2.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/bzip2.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/bzip2.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -49,7 +49,7 @@
     The bzip2 Filters were influences by the work of Jeff Garland (<A CLASS="bib_ref" HREF="../bibliography.html#garland">[Garland]</A>) and Jonathan de Halleux (<A CLASS="bib_ref" HREF="../bibliography.html#de_halleux">[de Halleux]</A>).
 </P>
 
-Thanks to <A HREF="mailto:jseward_at_[hidden]">Julian Seward</A> for making his excellent library available to the public with a <A HREF="../../../../more/lib_guide.htm#Requirements">Boost-compatible</A> license.
+Thanks to <A HREF="mailto:jseward_at_[hidden]">Julian Seward</A> for making his excellent library available to the public with a <A HREF="http://www.boost.org/more/lib_guide.htm#Requirements">Boost-compatible</A> license.
 
 <A NAME="headers"></A>
 <H2>Headers</H2>
@@ -312,13 +312,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/chain.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/chain.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/chain.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -378,13 +378,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/char_traits.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/char_traits.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/char_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -98,13 +98,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/classes.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/classes.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/classes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -243,13 +243,9 @@
 <!-- Begin Footer -->
 
 <HR STYLE="margin-top:2em">
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/classes/code_converter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/code_converter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/code_converter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -177,13 +177,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/counter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/counter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/counter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -146,13 +146,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/device.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/device.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/device.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -116,13 +116,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/file.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/file.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/file.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -231,13 +231,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/file_descriptor.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/file_descriptor.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/file_descriptor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -274,13 +274,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -173,13 +173,9 @@
 <!-- Begin Footer -->
 
 <HR STYLE="margin-top:2em">
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/filtering_stream.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/filtering_stream.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/filtering_stream.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -110,7 +110,6 @@
     size_type <A CLASS="documented" HREF="#size">size</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#reset">reset</A>();
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
- <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#auto_close">auto_close</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#set_auto_close">set_auto_close</A>(<SPAN CLASS='keyword'>bool</SPAN> close);
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#sync">sync</A>();
@@ -425,13 +424,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/filtering_streambuf.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/filtering_streambuf.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/filtering_streambuf.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -106,7 +106,6 @@
     size_type <A CLASS="documented" HREF="#size">size</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#reset">reset</A>();
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
- <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#is_complete">is_complete</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#auto_close">auto_close</A>() <SPAN CLASS="keyword">const</SPAN>;
     <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#set_auto_close">set_auto_close</A>(<SPAN CLASS='keyword'>bool</SPAN> close);
     <SPAN CLASS="keyword">bool</SPAN> <A CLASS="documented" HREF="#sync">sync</A>();
@@ -421,13 +420,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/gzip.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/gzip.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/gzip.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -49,7 +49,7 @@
     The gzip Filters were influences by the work of Jeff Garland (<A CLASS="bib_ref" HREF="../bibliography.html#garland">[Garland]</A>) and Jonathan de Halleux (<A CLASS="bib_ref" HREF="../bibliography.html#de_halleux">[de Halleux]</A>).
 </P>
 
-Thanks to <A HREF="mailto:jloup_at_[hidden]">Jean-loup Gailly</A> and <A HREF="mailto:&#109;&#097;&#100;&#108;&#101;&#114;&#064;&#097;&#108;&#117;&#109;&#110;&#105;&#046;&#099;&#097;&#108;&#116;&#101;&#099;&#104;&#046;&#101;&#100;&#117;">Mark Adler</A> for making their excellent library available to the public with a <A HREF="../../../../more/lib_guide.htm#Requirements">Boost-compatible</A> license.
+Thanks to <A HREF="mailto:jloup_at_[hidden]">Jean-loup Gailly</A> and <A HREF="mailto:&#109;&#097;&#100;&#108;&#101;&#114;&#064;&#097;&#108;&#117;&#109;&#110;&#105;&#046;&#099;&#097;&#108;&#116;&#101;&#099;&#104;&#046;&#101;&#100;&#117;">Mark Adler</A> for making their excellent library available to the public with a <A HREF="http://www.boost.org/more/lib_guide.htm#Requirements">Boost-compatible</A> license.
 
 <A NAME="headers"></A>
 <H2>Headers</H2>
@@ -357,13 +357,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/line_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/line_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/line_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -117,13 +117,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/mapped_file.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/mapped_file.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/mapped_file.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -567,13 +567,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/mode.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/mode.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/mode.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,13 +94,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/newline_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/newline_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/newline_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -300,13 +300,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/null.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/null.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/null.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,7 +44,7 @@
 <H2>Acknowledgments</H2>
 
 <P>
- The templates described here were inspired by Daryle Walker's <CODE>basic_nullbuf</CODE> template. <I>See</I> Disconnected Streams.
+ The templates described here were inspired by Daryle Walker's <CODE>basic_nullbuf</CODE> template. <I>See</I> Disconnected Streams.
 </P>
 
 <A NAME="headers"></A>
@@ -186,7 +186,7 @@
 <UL>
 <LI><CODE>read</CODE> returns <CODE>-1</CODE>, indicating end-of-sequence
 <LI><CODE>write</CODE> consumes but ignores the entire contents of the character buffer passed to it
-<LI><CODE>seek</CODE> consumes but ignores the entire contents of the character buffer passed to it
+<LI><CODE>seek</CODE> returns an invalid stream position
 </UL>
 
 <H4>Synopsis</H4>
@@ -264,13 +264,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/regex_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/regex_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/regex_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -235,13 +235,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/stdio_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/stdio_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/stdio_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -90,13 +90,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/symmetric_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/symmetric_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/symmetric_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -133,13 +133,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/classes/zlib.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/classes/zlib.html (original)
+++ branches/proto/v3/libs/iostreams/doc/classes/zlib.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -48,7 +48,7 @@
     The zlib Filters were influences by the work of Jeff Garland (<A CLASS="bib_ref" HREF="../bibliography.html#garland">[Garland]</A>) and Jonathan de Halleux (<A CLASS="bib_ref" HREF="../bibliography.html#de_halleux">[de Halleux]</A>).
 </P>
 
-Thanks to <A HREF="mailto:jloup_at_[hidden]">Jean-loup Gailly</A> and <A HREF="mailto:&#109;&#097;&#100;&#108;&#101;&#114;&#064;&#097;&#108;&#117;&#109;&#110;&#105;&#046;&#099;&#097;&#108;&#116;&#101;&#099;&#104;&#046;&#101;&#100;&#117;">Mark Adler</A> for making their excellent library available to the public with a <A HREF="../../../../more/lib_guide.htm#Requirements">Boost-compatible</A> license.
+Thanks to <A HREF="mailto:jloup_at_[hidden]">Jean-loup Gailly</A> and <A HREF="mailto:&#109;&#097;&#100;&#108;&#101;&#114;&#064;&#097;&#108;&#117;&#109;&#110;&#105;&#046;&#099;&#097;&#108;&#116;&#101;&#099;&#104;&#046;&#101;&#100;&#117;">Mark Adler</A> for making their excellent library available to the public with a <A HREF="http://www.boost.org/more/lib_guide.htm#Requirements">Boost-compatible</A> license.
 
 <A NAME="headers"></A>
 <H2>Headers</H2>
@@ -391,13 +391,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_device.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_device.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_device.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -149,13 +149,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/bidirectional_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -143,13 +143,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/blocking.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/blocking.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/blocking.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -53,13 +53,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/closable.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/closable.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/closable.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,10 +32,10 @@
 <H4>Closure Notifications</H4>
     
 <P>
- The Iostreams library sends closure notifications by invoking the function close. For a Closable Filter or Device, <CODE>close</CODE> delegates to a member function <CODE>close</CODE>; for other Devices, it does nothing. The details regarding when and how <CODE>close</CODE> is invoked are complicated. However, defining a Filter or Device which receives closure notifications is easy:
+ The Iostreams library sends closure notifications by invoking the function close. For most Closable Filter or Device, <CODE>close</CODE> delegates to a member function <CODE>close</CODE>; for non-Closable Devices, <CODE>close</CODE> calls flush. The details regarding when and how <CODE>close</CODE> is invoked are complicated. However, defining a Filter or Device which receives closure notifications is easy, as illustrated in the following sections.
 </P>
 
-<H2>Examples</H2>
+<H4>Single-Sequence Devices</H4>
 
 <P>
     If a Device controls a single sequence of characters, it can be made Closable simply by specifying a category tag which is convertible to <CODE>closable_tag</CODE> and by adding a member function <CODE>close</CODE>, like so:
@@ -44,13 +44,34 @@
 <P>
     Filters and Devices which derive from the convenience templates and typedefs have category tags convertible to <CODE>closable_tag</CODE> provided automatically.
 </P>
+
+<H4>Single-Sequence Filters</H4>
+
 <P>For Filters controlling a single sequence, the signature of <CODE>close</CODE> is:</P>
 <PRE CLASS="broken_ie"> <SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> Device&gt;
- <SPAN CLASS="keyword">void</SPAN> close(Device&amp;) { <SPAN CLASS="omitted"> ... </SPAN> }</PRE>
+ <SPAN CLASS="keyword">void</SPAN> close(Device&amp;);</PRE>
+
+<H4>Two-Sequence Devices</H4>
+
 <P>
- For Filters and Devices controlling separate input and output sequences, the above signatures should be modified by adding a <CODE>std::ios_base::openmode</CODE> parameter at the end of the parameter list. This function will be called twice: first with argument <CODE>std::ios_base::in</CODE>, to signal the closing of the input sequence, and later with argument <CODE>std::ios_base::out</CODE>, to signal the closing of the output sequence.
-</P>
-
+ If a Device controls separate input and output sequences, the signature of <CODE>close</CODE> is:</P>
+ <PRE CLASS="broken_ie"> <SPAN CLASS="keyword">void</SPAN> close(std::ios_base::openmode);</PRE>
+<P>This function will be called twice: first with argument <CODE>std::ios_base::in</CODE>, to signal the closing of the input sequence, and later with argument <CODE>std::ios_base::out</CODE>, to signal the closing of the output sequence. </P>
+
+<H4>Two-Sequence Filters</H4>
+
+<P>
+ If a Filter controls separate input and output sequences, the signature of <CODE>close</CODE> is:</P>
+<PRE CLASS="broken_ie"> <SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> Device&gt;
+ <SPAN CLASS="keyword">void</SPAN> close(Device&amp;, std::ios_base::openmode);</PRE>
+<P>This function will be called twice: first with argument <CODE>std::ios_base::in</CODE>, to signal the closing of the input sequence, and later with argument <CODE>std::ios_base::out</CODE>, to signal the closing of the output sequence.</P>
+
+<H4>Dual-Use Filters</H4>
+
+<P>The signature of <CODE>close</CODE> for DualUserFilters is the same as that for two-sequence Filters:</P>
+<PRE CLASS="broken_ie"> <SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> Device&gt;
+ <SPAN CLASS="keyword">void</SPAN> close(Device&amp;, std::ios_base::openmode);</PRE>
+<P>This function will be called only once, depending on whether the filter is being used for input or output.</P>
 
 <H2>Refinement of</H2>
 
@@ -112,18 +133,18 @@
 
 <H2>Models</H2>
 
-<P>Many of the Filters and Devices provided by the Iostreams library are Closable, but this is an implementation detail.</P>
+<UL>
+ <LI>Generic Streams and Stream Buffers.
+ <LI>Filtering Streams and Stream Buffers.
+ <LI>Standard file streams and stream buffers.</A>
+</UL>
 
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/concepts.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/concepts.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -61,13 +61,9 @@
 
 <!-- Begin Footer -->
 
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/concepts/device.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/device.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/device.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -240,7 +240,7 @@
 <HR>
 
 <P>
- <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A><A CLASS="bib_ref" HREF="../bibliography.html#iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A>, 24.3.1. <I>See</I> Tag Dispatching for a discussion.
+ <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A><A CLASS="bib_ref" HREF="../bibliography.html#iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A>, 24.3.1. <I>See</I> Tag Dispatching for a discussion.
 </P>
 
 <!-- End Footnotes -->
@@ -248,13 +248,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/direct.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/direct.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/direct.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -52,13 +52,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/dual_use_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/dual_use_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/dual_use_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -63,13 +63,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -251,7 +251,7 @@
 <HR>
 
 <P>
- <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A><A CLASS="bib_ref" HREF="../bibliography.html#iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A>, 24.3.1. <I>See</I> Tag Dispatching for a discussion.
+ <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A><A CLASS="bib_ref" HREF="../bibliography.html#iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A>, 24.3.1. <I>See</I> Tag Dispatching for a discussion.
 </P>
 
 <!-- End Footnotes -->
@@ -259,13 +259,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/flushable.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/flushable.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/flushable.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -88,13 +88,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/input_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/input_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/input_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -243,13 +243,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/localizable.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/localizable.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/localizable.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -61,13 +61,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/multi-character.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/multi-character.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/multi-character.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -48,11 +48,7 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
 <P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
 <P CLASS="copyright">

Modified: branches/proto/v3/libs/iostreams/doc/concepts/multi_character.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/multi_character.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/multi_character.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -48,13 +48,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/optimally_buffered.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/optimally_buffered.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/optimally_buffered.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -54,13 +54,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/output_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/output_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/output_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -66,7 +66,7 @@
         <SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> Sink&gt;
         <SPAN CLASS="keyword">bool</SPAN> put(Sink& snk, <SPAN CLASS="keyword">char</SPAN> c)
         {
- <SPAN CLASS="keyword">return</SPAN> io:put(snk, toupper((<SPAN CLASS="keyword">unsigned</SPAN> <SPAN CLASS="keyword">char</SPAN>) c));
+ <SPAN CLASS="keyword">return</SPAN> io::put(snk, toupper((<SPAN CLASS="keyword">unsigned</SPAN> <SPAN CLASS="keyword">char</SPAN>) c));
         }
     };</PRE>
 
@@ -221,13 +221,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/peekable.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/peekable.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/peekable.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -77,13 +77,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/pipable.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/pipable.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/pipable.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,13 +81,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/seekable_device.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/seekable_device.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/seekable_device.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -172,13 +172,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/seekable_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/seekable_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/seekable_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -165,13 +165,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/sink.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/sink.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/sink.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -141,13 +141,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/source.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/source.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/source.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -142,13 +142,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/concepts/symmetric_filter.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/concepts/symmetric_filter.html (original)
+++ branches/proto/v3/libs/iostreams/doc/concepts/symmetric_filter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,13 +94,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/faq.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/faq.html (original)
+++ branches/proto/v3/libs/iostreams/doc/faq.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -126,13 +126,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/close.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/close.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/close.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -25,8 +25,19 @@
 <A NAME="description"></A>
 <H2>Description</H2>
 
-<P>
- The two overloads of the function template <CODE>close</CODE> are invoked automatically by the Iostreams library to indicate to Filters and Devices that a sequence of data is about to end. This gives Filters and Devices an opportunity to free resources or to reset their states in preparation for a new character sequence. Filters and Devices which perform output can use the opportunity to write additional data to the end of a stream.
+<P>The Iostreams library provides three overloads of the function template <CODE>close</CODE>.</P>
+
+<P>The first overload of <CODE>close</CODE> takes a single Device argument. It allows a user to close a Device without worrying whether the Device controls a single sequence or two sequences:</P>
+
+<PRE CLASS="broken_ie"><SPAN CLASS="keyword">namespace</SPAN> boost { <SPAN CLASS="keyword">namespace</SPAN> iostreams {
+
+<SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#template_params">T</A>&gt;
+<SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#close_device">close</A>(T& t);
+
+} } <SPAN CLASS="comment">// End namespace boost::io</SPAN></PRE>
+
+
+<P>The other two overloads of <CODE>close</CODE> should rarely be called by library users; they are invoked automatically by the library to indicate to Filters and Devices that a sequence of data is about to end. This gives Filters and Devices an opportunity to free resources or to reset their states in preparation for a new character sequence. Filters and Devices which perform output can use the opportunity to write additional data to the end of a stream.
 </P>
 
 <P>The details regarding when and how <CODE>close</CODE> is invoked are a bit messy:</P>
@@ -68,8 +79,14 @@
     boost::iostreams::close(f<SUB>n-1</SUB>, buf<SUB>n</SUB>,<SPAN STYLE="visibility:hidden"><SUB>n-</SUB></SPAN> ios_base::out);
     boost::iostreams::close(d,<SPAN STYLE="visibility:hidden"><SUB>n-1</SUB>, buf<SUB>n-1</SUB></SPAN> ios_base::out);</PRE>
 </P>
-<P>The effect is that with input streams, the elements of a chain are closed in reverse order; with output streams, they are closed in forward order; and with streams controlling separate input and output sequences, each element receives two closure notifications, the first with argument <CODE>ios_base::in</CODE> and the second with argument <CODE>ios_base::out</CODE>. (<I>See</I> the semantics of <CODE>close</CODE> for Filter and Device types, below.)
-</P>
+<P>This implies</P>
+<UL>
+<LI>For filter chains consisting of read-only components, the elements of the chain are closed in reverse order</LI>
+<LI>For filter chains consisting of write-only components, the elements of the chain are closed in forward order</LI>
+<LI>Filters and Devices controlling separate input and output sequences receive two closure notifications, the first with argument <CODE>ios_base::in</CODE> and the second with argument <CODE>ios_base::out</CODE>.
+</UL>
+
+<P>(<I>See</I> the semantics of <CODE>close</CODE> for Filter and Device types, below.)</P>
 
 <A NAME="headers"></A>
 <H2>Headers</H2>
@@ -88,6 +105,9 @@
 <PRE CLASS="broken_ie"><SPAN CLASS="keyword">namespace</SPAN> boost { <SPAN CLASS="keyword">namespace</SPAN> iostreams {
               
 <SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#template_params">T</A>&gt;
+<SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#close_convenience">close</A>(T& t);
+
+<SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#template_params">T</A>&gt;
 <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#close_device">close</A>(T& t, std::ios_base::openmode which);
 
 <SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#template_params">T</A>, <SPAN CLASS="keyword">typename</SPAN> <A CLASS="documented" HREF="#template_params">Device</A>&gt;
@@ -95,8 +115,30 @@
 
 } } <SPAN CLASS="comment">// End namespace boost::io</SPAN></PRE>
 
+
+<A NAME="close_convenience"></A>
+<H3>Function Template <CODE>close</CODE> &#8212; Convenience Function</H3>
+
+<A NAME="template_params"></A>
+<H4>Template Parameters</H4>
+
+<TABLE STYLE="margin-left:2em" BORDER=0 CELLPADDING=2>
+<TR>
+ <TR>
+ <TD VALIGN="top"><I>T</I></TD><TD WIDTH="2em" VALIGN="top">-</TD>
+ <TD>A model of one of the Device concepts.
+ </TR>
+</TABLE>
+
+<H4>Semantics</H4>
+
+<PRE CLASS="broken_ie"><SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> T&gt;
+<SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#close_device">close</A>(T& t);</PRE>
+
+<P>This overload of <CODE>close</CODE> calls <CODE>close(t, std::ios_base::in)</CODE> followed by <CODE>close(t, std::ios_base::out)</CODE>. It ensures that <CODE>t</CODE> is closed properly, regardless of the mode or <CODE>t</CODE>.
+
 <A NAME="close_device"></A>
-<H3>Function Template <CODE>close</CODE> &#8212; Device Types</H3>
+<H3>Function Template <CODE>close</CODE> &#8212; Closure Notification for Devices</H3>
 
 <A NAME="template_params"></A>
 <H4>Template Parameters</H4>
@@ -114,13 +156,27 @@
 <PRE CLASS="broken_ie"><SPAN CLASS="keyword">template</SPAN>&lt;<SPAN CLASS="keyword">typename</SPAN> T&gt;
 <SPAN CLASS="keyword">void</SPAN> <A CLASS="documented" HREF="#close_device">close</A>(T& t, std::ios_base::openmode which);</PRE>
 
-<P>The semantics of <CODE>close</CODE> for a Device type <CODE>T</CODE> depends on its category as follows:</P>
+<P>If <CODE>t</CODE> is a filtering stream or stream buffer, <CODE>close</CODE> calls pop if <CODE>t</CODE> is complete. The semantics depends on its category as follows:</P>
+
+<TABLE STYLE="margin-left:2em" BORDER=1 CELLPADDING=4>
+ <TR><TH><CODE>category&lt;T&gt;::type</CODE></TH><TH>semantics</TH></TR>
+ <TR>
+ <TD VALIGN="top">convertible to input but not to output</TD>
+ <TD>calls <CODE>t.pop()</CODE> if <code>t</CODE> is complete and which == ios_base::in</CODE></TD>
+ </TR>
+ <TR>
+ <TD VALIGN="top">otherwise</TD>
+ <TD>calls <CODE>t.pop()</CODE> if <code>t</CODE> is complete and <CODE>which == ios_base::out</CODE></TD>
+ </TR>
+</TABLE>
+
+<P>The semantics of <CODE>close</CODE> for a device <CODE>T</CODE> other than a filtering stream or stream buffer depends on its category as follows:</P>
 
 <TABLE STYLE="margin-left:2em" BORDER=1 CELLPADDING=4>
     <TR><TH><CODE>category&lt;T&gt;::type</CODE></TH><TH>semantics</TH></TR>
     <TR>
         <TD VALIGN="top">not convertible to closable_tag</TD>
- <TD>no-op</TD>
+ <TD>calls flush</TD>
     </TR>
     <TR>
         <TD VALIGN="top">convertible to closable_tag and to bidirectional</A></TD>
@@ -128,25 +184,31 @@
     </TR>
     <TR>
         <TD VALIGN="top">convertible to closable_tag and to input but not to output</TD>
- <TD>calls <CODE>t.close()</CODE> if <CODE>(which & ios_base::in) != 0</CODE></TD>
+ <TD>calls <CODE>t.close()</CODE> if <CODE>which == ios_base::in</CODE></TD>
     </TR>
     <TR>
         <TD VALIGN="top">convertible to closable_tag and to output but not to bidirectional</TD>
- <TD>calls <CODE>t.close()</CODE> if <CODE>(which & ios_base::out) != 0</CODE></TD>
+ <TD>calls <CODE>t.close()</CODE> if <CODE>which == ios_base::out</CODE></TD>
     </TR>
 </TABLE>
 
 <P>In short:
 <UL>
- <LI CLASS="square">If <CODE>T</CODE> is not Closable, <CODE>close</CODE> does nothing.
+ <LI CLASS="square">If <CODE>T</CODE> is not Closable, <CODE>close</CODE> calls flush.
     <LI CLASS="square">If <CODE>T</CODE> is Closable and controls two separate sequences, <CODE>close</CODE> delegates to a member function <CODE>close</CODE> taking a single <CODE>openmode</CODE> parameter.
     <LI CLASS="square">Otherwise, <CODE>close</CODE> delegates to a member function <CODE>close</CODE> taking no parameters, but only if its <CODE>openmode</CODE> parameter is consistent with the mode of <CODE>T</CODE>.
 </UL>
 
 <P>The last condition prevents a Device controlling a single sequence from being closed twice in succession.</P>
 
+<P><B>NOTE:</B> Starting with Boost 1.35, the invocation of this function with an <CODE>openmode</CODE> other than <CODE>std::ios_base::in</CODE> or
+ <CODE>std::ios_base::out</CODE> is <B>deprecated</B>. To close both sequences at once, use
+<PRE>close(t)</PRE>
+instead of
+<PRE>close(t, std::ios_base::in | std::ios_base::out)</PRE></P>
+
 <A NAME="close_filter"></A>
-<H3>Function Template <CODE>close</CODE> &#8212; Filter Types</H3>
+<H3>Function Template <CODE>close</CODE> &#8212; Closure Notification for Filters</H3>
 
 <A NAME="template_params"></A>
 <H4>Template Parameters</H4>
@@ -174,7 +236,7 @@
     <TR><TH><CODE>category&lt;T&gt;::type</CODE></TH><TH>semantics</TH></TR>
     <TR>
         <TD VALIGN="top">not convertible to closable_tag</TD>
- <TD>no-op</TD>
+ <TD>calls flush</TD>
     </TR>
     <TR>
         <TD VALIGN="top">convertible to closable_tag and to bidirectional</A></TD>
@@ -182,23 +244,26 @@
     </TR>
     <TR>
         <TD VALIGN="top">convertible to closable_tag and to input but not to output</TD>
- <TD>calls <CODE>t.close(next)</CODE> if <CODE>(which & ios_base::in) != 0</CODE></TD>
+ <TD>calls <CODE>t.close(next)</CODE> if <CODE>which == ios_base::in</CODE></TD>
     </TR>
     <TR>
         <TD VALIGN="top">convertible to closable_tag and to output but not to bidirectional</TD>
- <TD>calls <CODE>t.close(next)</CODE> if <CODE>(which & ios_base::out) != 0</CODE></TD>
+ <TD>calls <CODE>t.close(next)</CODE> if <CODE>which == ios_base::out</CODE></TD>
     </TR>
 </TABLE>
 
 <P>In short:
 <UL>
- <LI CLASS="square">If <CODE>T</CODE> is not Closable, <CODE>close</CODE> does nothing.
+ <LI CLASS="square">If <CODE>T</CODE> is not Closable, <CODE>close</CODE> calls flush.
     <LI CLASS="square">If <CODE>T</CODE> is Closable and controls two separate sequences, <CODE>close</CODE> delegates to a member function <CODE>close</CODE> taking <CODE>openmode</CODE> and stream buffer parameters.
     <LI CLASS="square">Otherwise, <CODE>close</CODE> delegates to a member function <CODE>close</CODE> taking a single stream buffer parameter, but only if its <CODE>openmode</CODE> parameter is consistent with the mode of <CODE>T</CODE>.
 </UL>
 
 <P>The last condition prevents a Filter controlling a single sequence from being closed twice in succession.</P>
 
+<P><B>NOTE:</B> Starting with Boost 1.35, the invocation of this function with an <CODE>openmode</CODE> other than <CODE>std::ios_base::in</CODE> or
+ <CODE>std::ios_base::out</CODE> is <B>deprecated</B>.</P>
+
 <!-- End Footnotes -->
 
 <HR>
@@ -212,13 +277,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/combine.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/combine.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/combine.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -50,13 +50,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/compose.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/compose.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/compose.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,7 +30,7 @@
 </P>
 
 <P>
- The function template <A HREF='#composite'><CODE>composite</CODE></A> represents a Filter or Device which has been constructed in the above manner. The function template <A HREF='#compose'><CODE>compose</CODE></A> is an <A HREF='../../../../more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which given a pair of components returns an appropriate instance of <CODE>composite</CODE>.
+ The function template <A HREF='#composite'><CODE>composite</CODE></A> represents a Filter or Device which has been constructed in the above manner. The function template <A HREF='#compose'><CODE>compose</CODE></A> is an <A HREF='http://www.boost.org/more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which given a pair of components returns an appropriate instance of <CODE>composite</CODE>.
 </P>
 
 <P>
@@ -123,13 +123,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/copy.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/copy.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/copy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -52,13 +52,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/filter_test.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/filter_test.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/filter_test.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -118,13 +118,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/flush.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/flush.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/flush.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -136,13 +136,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/functions.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/functions.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/functions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -49,13 +49,9 @@
 
 <!-- Begin Footer -->
 
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/functions/get.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/get.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/get.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -138,13 +138,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/imbue.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/imbue.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/imbue.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -83,13 +83,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/invert.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/invert.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/invert.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -26,7 +26,7 @@
 <H2>Description</H2>
 
 <P>
- The class template <CODE>inverse</CODE> is an adapter which transforms an <A HREF='../concepts/input_filter.html'>InputFilter</A> into an <A HREF='../concepts/output_filter.html'>OutputFilter</A> or <I>vice versa</I>. The function template <CODE>invert</CODE> is an <A HREF='../../../../more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which when passed a Filter returns a instance of an appropriate specialization of <CODE>inverse</CODE>.
+ The class template <CODE>inverse</CODE> is an adapter which transforms an <A HREF='../concepts/input_filter.html'>InputFilter</A> into an <A HREF='../concepts/output_filter.html'>OutputFilter</A> or <I>vice versa</I>. The function template <CODE>invert</CODE> is an <A HREF='http://www.boost.org/more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which when passed a Filter returns a instance of an appropriate specialization of <CODE>inverse</CODE>.
 </P>
 
 <P>Given an <A HREF='../concepts/input_filter.html'>InputFilter</A> <CODE>f</CODE>, the inverse of <CODE>f</CODE> is <A HREF='../concepts/multi_character.html'>Multi-Character</A> <A HREF='../concepts/output_filter.html'>OutputFilter</A> whose member function <CODE>write</CODE> is implemented as follows. Given a <A HREF='../concepts/sink.html'>Sink</A> <CODE>snk</CODE> and a character buffer <CODE>s</CODE> of length <CODE>n</CODE>, we
@@ -125,13 +125,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/optimal_buffer_size.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/optimal_buffer_size.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/optimal_buffer_size.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -84,13 +84,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/positioning.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/positioning.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/positioning.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,13 +81,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/put.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/put.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/put.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -129,13 +129,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/putback.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/putback.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/putback.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -93,13 +93,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/read.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/read.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/read.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -191,13 +191,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/restrict.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/restrict.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/restrict.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML>
 <HEAD>
- <TITLE>Class Template chain</TITLE>
+ <TITLE>Function Template restrict</TITLE>
     <LINK REL="stylesheet" HREF="../../../../boost.css">
     <LINK REL="stylesheet" HREF="../theme/iostreams.css">
 </HEAD>
@@ -26,13 +26,17 @@
 <H2>Description</H2>
 
 <P>
- Given a Filter or Device that provides access to a single character sequence, we can construct a second Filter or Device which provides access to contiguous subsequence of the the original sequence. This second Filter or Device is called a <I>restriction</I> of the original device. Restrictions are represented by instances of the class template <CODE>restriction</CODE>. The function template <CODE>resrict</CODE> is an <A HREF='../../../../more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which returns an appropriate instance of <CODE>resriction</CODE> when passed a Filter or Device and a pair of values indicating the endpoints of the restricted subsequence.
+ Given a Filter or Device that provides access to a single character sequence, we can construct a second Filter or Device which provides access to contiguous subsequence of the the original sequence. This second Filter or Device is called a <I>restriction</I> of the original device. Restrictions are represented by instances of the class template <CODE>restriction</CODE>. The function template <CODE>resrict</CODE> is an <A HREF='http://www.boost.org/more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which returns an appropriate instance of <CODE>resriction</CODE> when passed a Filter or Device and a pair of values indicating the endpoints of the restricted subsequence.
 </P>
 
 <P>
     The <A HREF='../guide/modes.html'>mode</A> of a <CODE>resriction</CODE> is the same as that of the underlying component. A <CODE>resriction</CODE> is <A HREF='../concepts/closable.html'>Closable</A>, <A HREF='../concepts/flushable.html'>Flushable</A>, <A HREF='../concepts/localizable.html'>Localizable</A> and <A HREF='../concepts/optimally_buffered.html'>OptimallyBuffered</A>.
 </P>
 
+<P>
+ The function template slice is available as an alias of <code>restrict</code>, for platforms that treat <code>restrict</code> as a keyword.
+</P>
+
 <A NAME="headers"></A>
 <H2>Headers</H2>
 
@@ -153,13 +157,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/seek.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/seek.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/seek.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -148,13 +148,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/tee.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/tee.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/tee.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,7 +30,7 @@
 </P>
 
 <P>
- The overloaded function template <A HREF='#tee'><CODE>tee</CODE></A> is an <A HREF='../../../../more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which given a Device or a pair of Sinks returns an appropriate specialization of <CODE>tee_filter</CODE> or <CODE>tee_device</CODE>.
+ The overloaded function template <A HREF='#tee'><CODE>tee</CODE></A> is an <A HREF='http://www.boost.org/more/generic_programming.html#object_generator' TARGET='_top'>object generator</A> which given a Device or a pair of Sinks returns an appropriate specialization of <CODE>tee_filter</CODE> or <CODE>tee_device</CODE>.
 </P>
 
 <A NAME="headers"></A>
@@ -183,13 +183,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/functions/write.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/functions/write.html (original)
+++ branches/proto/v3/libs/iostreams/doc/functions/write.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -192,13 +192,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/asynchronous.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/asynchronous.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/asynchronous.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -70,13 +70,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/buffering.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/buffering.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/buffering.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -36,13 +36,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/code_conversion.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/code_conversion.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/code_conversion.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -40,13 +40,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/concepts.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/concepts.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -125,13 +125,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/exceptions.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/exceptions.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/exceptions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -145,13 +145,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/filtering_streams.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/filtering_streams.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/filtering_streams.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,13 +44,9 @@
 <!-- Begin Footer -->
 
 <HR STYLE="margin-top:1em">
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/generic_streams.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/generic_streams.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/generic_streams.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -520,13 +520,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/guide.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/guide.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/guide.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,13 +33,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/lifetimes.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/lifetimes.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/lifetimes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -36,13 +36,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/modes.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/modes.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/modes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -233,13 +233,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/pipelines.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/pipelines.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/pipelines.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -132,13 +132,9 @@
 <!-- Begin Footer -->
 
 <HR STYLE="margin-top:1em">
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/text_processing.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/text_processing.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/text_processing.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -46,13 +46,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/traits.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/traits.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -283,7 +283,7 @@
 <HR>
 
 <P>
- <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A><A CLASS="bib_ref" href="../bibliography.html#iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A> 24.3.1. <I>See</I> Tag Dispatching for a discussion.
+ <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A><A CLASS="bib_ref" href="../bibliography.html#iso">[I<SPAN STYLE="font-size:80%">SO</SPAN>]</A> 24.3.1. <I>See</I> Tag Dispatching for a discussion.
 </P>
 
 <!-- End Footnotes -->
@@ -297,7 +297,7 @@
 <!--webbot bot="Timestamp" endspan i-checksum="38504" -->
 </P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use modification and distribution are subject to the Boost Software License Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/guide/views.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/guide/views.html (original)
+++ branches/proto/v3/libs/iostreams/doc/guide/views.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,7 +30,7 @@
 <HR STYLE="margin-top:1em">
 
 <P>
- Boost.Iostreams provides a number of templates for combining one or more Filters or Devices to produce a Filter or Device that performs i/o by delegating to the given components in a straightforward way. Each view consists of a class template, whose template parameters represnt the component Filters and Devices, together with an object generator.
+ Boost.Iostreams provides a number of templates for combining one or more Filters or Devices to produce a Filter or Device that performs i/o by delegating to the given components in a straightforward way. Each view consists of a class template, whose template parameters represnt the component Filters and Devices, together with an object generator.
 </P>
     
 <P>
@@ -40,13 +40,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/home.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/home.html (original)
+++ branches/proto/v3/libs/iostreams/doc/home.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -51,7 +51,7 @@
 <H2>Overview</H2>
 
 <P>
- At the heart of Boost.Iostreams are a collection of concepts and set of templates which turn models of these concepts into C++ standard library streams and stream buffers.
+ At the heart of Boost.Iostreams are a collection of concepts and set of templates which turn models of these concepts into C++ standard library streams and stream buffers.
 </P>
 
 <H3>Concepts</H3>
@@ -119,13 +119,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/index.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/index.html (original)
+++ branches/proto/v3/libs/iostreams/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <head>
 <!--
 Revised 1 November, 2004
-&copy; Copyright Jonathan Turkanis, 2004
+&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis
 Distributed under the Boost Software License, Version 1.0. (See
 accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 -->

Modified: branches/proto/v3/libs/iostreams/doc/installation.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/installation.html (original)
+++ branches/proto/v3/libs/iostreams/doc/installation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -76,7 +76,7 @@
 <H2>Building with Boost.Build</H2>
 
 <P>
- To build with Boost.Build, run <I>bjam</I> from the directory <CODE>libs/iostreams/build</CODE>, or from the Boost root directory. If you want to use the compression filters, you may need to set several Boost.Build variables indicating where the source files or pre-built binaries are located. These variables are summarized in the following table.
+ To build with Boost.Build, run <I>bjam</I> from the directory <CODE>libs/iostreams/build</CODE>, or from the Boost root directory. If you want to use the compression filters, you may need to set several Boost.Build variables indicating where the source files or pre-built binaries are located. These variables are summarized in the following table.
 </P>
 <P>
     On most UNIX systems, it should not be necessary to set any of these variables, since the zlib and libbz2 headers and binaries are already installed in locations where they will be found automatically. On Windows, the zlib and bzip2 filters are disabled by default; to enable support for these filters, you will need to set variables indicating the location of the source files, if building from the source, or the location of the headers and binaries, if using pre-built binaries.
@@ -170,13 +170,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/macros/buffer_sizes.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/macros/buffer_sizes.html (original)
+++ branches/proto/v3/libs/iostreams/doc/macros/buffer_sizes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -51,13 +51,9 @@
 
 <!-- Begin Footer -->
 
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/macros/macros.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/macros/macros.html (original)
+++ branches/proto/v3/libs/iostreams/doc/macros/macros.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,13 +44,9 @@
 
 <!-- Begin Footer -->
 
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/macros/workarounds.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/macros/workarounds.html (original)
+++ branches/proto/v3/libs/iostreams/doc/macros/workarounds.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -201,13 +201,9 @@
 
 <!-- Begin Footer -->
 
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/menu.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/menu.html (original)
+++ branches/proto/v3/libs/iostreams/doc/menu.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -78,8 +78,8 @@
         .add("Views", "guide/views.html").parent()
         .add("Exceptions", "guide/exceptions.html").parent()
         .add("Buffering", "guide/buffering.html");
- tree.add("Reference", "reference.html")
- .add("Concepts", "concepts/concepts.html", true)
+ var ref = tree.add("Reference", "reference.html");
+ ref.add("Concepts", "concepts/concepts.html", true)
             .add("Devices", "concepts/concepts.html#devices")
                 .add("BidirectionalDevice", "concepts/bidirectional_device.html").parent()
                 .add("Blocking", "concepts/blocking.html").parent()
@@ -103,9 +103,9 @@
                 .add("Flushable", "concepts/flushable.html").parent()
                 .add("Localizable", "concepts/localizable.html").parent()
                 .add("OptimallyBuffered", "concepts/optimally_buffered.html").parent()
- .add("SymmetricFilter", "concepts/symmetric_filter.html").parent().parent().parent()
- .add("Classes", "classes/classes.html", true)
- .add("A", "classes/classes.html#a")
+ .add("SymmetricFilter", "concepts/symmetric_filter.html");
+ var classes = ref.add("Classes", "classes/classes.html", true);
+ classes.add("A", "classes/classes.html#a")
                 .add("<CODE>aggregate_filter</CODE>", "classes/aggregate.html").parent()
                 .add("<CODE>array</CODE>", "classes/array.html#array").parent()
                 .add("<CODE>array_sink</CODE>", "classes/array.html#array_sink").parent()
@@ -166,8 +166,8 @@
             .add("I", "classes/classes.html#i")
                                   .add("<CODE>input_filter</CODE>", "classes/filter.html#reference").parent()
                                   .add("<CODE>input_wfilter</CODE>", "classes/filter.html#reference").parent()
- .add("<CODE>inverse</CODE>", "classes/../functions/invert.html#inverse").parent().parent()
- .add("L", "classes/classes.html#l")
+ .add("<CODE>inverse</CODE>", "classes/../functions/invert.html#inverse");
+ classes.add("L", "classes/classes.html#l")
                                   .add("<CODE>line_filter</CODE>", "classes/line_filter.html#reference").parent().parent()
             .add("M", "classes/classes.html#m")
                                   .add("<CODE>mapped_file</CODE>", "classes/mapped_file.html#mapped_file").parent()
@@ -226,8 +226,8 @@
                                   .add("<CODE>zlib_compressor</CODE>", "classes/zlib.html#basic_zlib_compressor").parent()
                                   .add("<CODE>zlib_decompressor</CODE>", "classes/zlib.html#basic_zlib_decompressor").parent()
                                   .add("<CODE>zlib_error</CODE>", "classes/zlib.html#zlib_error").parent()
- .add("<CODE>zlib_params</CODE>", "classes/zlib.html#zlib_params").parent().parent().parent()
- .add("Functions", "functions/functions.html", true)
+ .add("<CODE>zlib_params</CODE>", "classes/zlib.html#zlib_params");
+ ref.add("Functions", "functions/functions.html", true)
             .add("<CODE>back_inserter</CODE>", "classes/back_inserter.html#back_inserter").parent()
             .add("<CODE>close</CODE>", "functions/close.html").parent()
             .add("<CODE>combine</CODE>", "functions/combine.html").parent()
@@ -245,12 +245,13 @@
             .add("<CODE>read</CODE>", "functions/read.html").parent()
             .add("<CODE>restrict</CODE>", "functions/restrict.html").parent()
             .add("<CODE>seek</CODE>", "functions/seek.html").parent()
+ .add("<CODE>slice</CODE>", "functions/slice.html").parent()
             .add("<CODE>tee</CODE>", "functions/tee.html").parent()
             .add("<CODE>test_filter_pair</CODE>", "functions/filter_test.html#test_pair").parent()
             .add("<CODE>test_input_filter</CODE>", "functions/filter_test.html#test_input").parent()
             .add("<CODE>test_output_filter</CODE>", "functions/filter_test.html#test_output").parent()
- .add("<CODE>write</CODE>", "functions/write.html").parent().parent()
- .add("Macros", "macros/macros.html", true)
+ .add("<CODE>write</CODE>", "functions/write.html");
+ ref.add("Macros", "macros/macros.html", true)
             .add("<CODE>IOS</CODE>", "macros/workarounds.html#ios").parent()
             .add("<CODE>BASIC_ISTREAM</CODE>", "macros/workarounds.html#streams").parent()
             .add("<CODE>BASIC_IOS</CODE>", "macros/workarounds.html#ios").parent()
@@ -275,6 +276,7 @@
     tree.add("Rationale", "rationale.html");
     tree.add("Bibliography", "bibliography.html");
     tree.add("Acknowledgments", "acknowledgments.html");
+ tree.add("Release Notes", "release_notes.html");
 
     //tree.dump_html = true;
     tree.indent = 9;
@@ -315,38 +317,41 @@
 <!-- ------------------ Markup for Browsers with Scripting Disabled -- -->
 
     <noscript>
- <table><tr><td align="left"><table width=150><tr><td><h1 class=tree-caption>Contents</h1></td></tr></table></td></tr><tr><td><div id="list" style="white-space:nowrap;display:">
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">1</span> <A class="tree-text" onfocus="blur_tree()" href="home.html" target="content"><span class="tree-text">Introduction</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">2</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/tutorial.html" target="content"><span class="tree-text">Tutorial</span></A></div><div id="list.2" style="white-space:nowrap;display:">
- <div class="tree-item"><div style="margin-left:18;text-indent:-9"><span class="tree-label">2.1</span> <span class="tree-text">Writing Devices</span></div><div id="list.2.1" style="white-space:nowrap;display:">
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.1.1</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/writing_devices.html" target="content"><span class="tree-text">Overview</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.1.2</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/container_source.html" target="content"><span class="tree-text"><CODE>container_source</CODE></span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.1.3</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/container_sink.html" target="content"><span class="tree-text"><CODE>container_sink</CODE></span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.1.4</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/container_device.html" target="content"><span class="tree-text"><CODE>container_device</CODE></span></A></div></div></div></div>
- <div class="tree-item"><div style="margin-left:18;text-indent:-9"><span class="tree-label">2.2</span> <span class="tree-text">Writing Filters</span></div><div id="list.2.2" style="white-space:nowrap;display:">
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.1</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/writing_filters.html" target="content"><span class="tree-text">Overview</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.2</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/filter_usage.html" target="content"><span class="tree-text">Filter Usage</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.3</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/shell_comments_filters.html" target="content"><span class="tree-text">Shell Comments</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.4</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/line_wrapping_filters.html" target="content"><span class="tree-text">Line-Wrapping</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.5</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/tab_expanding_filters.html" target="content"><span class="tree-text">Tab-Expanding</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.6</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/dictionary_filters.html" target="content"><span class="tree-text">Dictionary</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.7</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/unix2dos_filters.html" target="content"><span class="tree-text">UNIX-to-DOS</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.8</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/multichar_filters.html" target="content"><span class="tree-text">Multi-Character Filters</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.9</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/dual_use_filters.html" target="content"><span class="tree-text">Dual-Use Filters</span></A></div></div>
- <div class="tree-item"><div style="margin-left:36;text-indent:-18"><span class="tree-label">2.2.10</span> <A class="tree-text" onfocus="blur_tree()" href="tutorial/finite_state_filters.html" target="content"><span class="tree-text">Finite State Filters</span></A></div></div></div></div></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">3</span> <A class="tree-text" onfocus="blur_tree()" href="guide/guide.html" target="content"><span class="tree-text">User"s Guide</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">4</span> <A class="tree-text" onfocus="blur_tree()" href="reference.html" target="content"><span class="tree-text">Reference</span></A></div><div id="list.4" style="white-space:nowrap;display:">
- <div class="tree-item"><div style="margin-left:18;text-indent:-9"><span class="tree-label">4.1</span> <A class="tree-text" onfocus="blur_tree()" href="concepts/concepts.html" target="content"><span class="tree-text">Concepts</span></A></div></div>
- <div class="tree-item"><div style="margin-left:18;text-indent:-9"><span class="tree-label">4.2</span> <A class="tree-text" onfocus="blur_tree()" href="classes/classes.html" target="content"><span class="tree-text">Classes</span></A></div></div>
- <div class="tree-item"><div style="margin-left:18;text-indent:-9"><span class="tree-label">4.3</span> <A class="tree-text" onfocus="blur_tree()" href="functions/functions.html" target="content"><span class="tree-text">Functions</span></A></div></div>
- <div class="tree-item"><div style="margin-left:18;text-indent:-9"><span class="tree-label">4.4</span> <A class="tree-text" onfocus="blur_tree()" href="macros/macros.html" target="content"><span class="tree-text">Macros</span></A></div></div></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">5</span> <A class="tree-text" onfocus="blur_tree()" href="quick_reference.html" target="content"><span class="tree-text">Quick Reference</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">6</span> <A class="tree-text" onfocus="blur_tree()" href="faq.html" target="content"><span class="tree-text">FAQ</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">7</span> <A class="tree-text" onfocus="blur_tree()" href="installation.html" target="content"><span class="tree-text">Installation</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">8</span> <A class="tree-text" onfocus="blur_tree()" href="portability.html" target="content"><span class="tree-text">Portability</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">9</span> <A class="tree-text" onfocus="blur_tree()" href="rationale.html" target="content"><span class="tree-text">Rationale</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">10</span> <A class="tree-text" onfocus="blur_tree()" href="bibliography.html" target="content"><span class="tree-text">Bibliography</span></A></div></div>
- <div class="tree-item"><div style="margin-left:0;text-indent:-0"><span class="tree-label">11</span> <A class="tree-text" onfocus="blur_tree()" href="acknowledgments.html" target="content"><span class="tree-text">Acknowledgments</span></A></div></div></div></td></tr></table>
+ <table><tr><td align='left'><table width=150><tr><td><h1 class=tree-caption>Contents</h1></td></tr></table></td></tr><tr><td><div id='list' style='white-space:nowrap;display:'>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>1</span> <a class='tree-text' onfocus='blur_tree()' href='home.html' target='content'><span class='tree-text'>Introduction</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>2</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/tutorial.html' target='content'><span class='tree-text'>Tutorial</span></a></div><div id='list.2' style='white-space:nowrap;display:'>
+<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>2.1</span> <span class='tree-text'>Writing Devices</span></div><div id='list.2.1' style='white-space:nowrap;display:'>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.1</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/writing_devices.html' target='content'><span class='tree-text'>Overview</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.2</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/container_source.html' target='content'><span class='tree-text'><CODE>container_source</CODE></span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.3</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/container_sink.html' target='content'><span class='tree-text'><CODE>container_sink</CODE></span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.1.4</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/container_device.html' target='content'><span class='tree-text'><CODE>container_device</CODE></span></a></div></div></div></div>
+<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>2.2</span> <span class='tree-text'>Writing Filters</span></div><div id='list.2.2' style='white-space:nowrap;display:'>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.1</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/writing_filters.html' target='content'><span class='tree-text'>Overview</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.2</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/filter_usage.html' target='content'><span class='tree-text'>Filter Usage</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.3</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/shell_comments_filters.html' target='content'><span class='tree-text'>Shell Comments</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.4</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/line_wrapping_filters.html' target='content'><span class='tree-text'>Line-Wrapping</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.5</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/tab_expanding_filters.html' target='content'><span class='tree-text'>Tab-Expanding</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.6</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/dictionary_filters.html' target='content'><span class='tree-text'>Dictionary</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.7</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/unix2dos_filters.html' target='content'><span class='tree-text'>UNIX-to-DOS</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.8</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/multichar_filters.html' target='content'><span class='tree-text'>Multi-Character Filters</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.9</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/dual_use_filters.html' target='content'><span class='tree-text'>Dual-Use Filters</span></a></div></div>
+<div class='tree-item'><div style='margin-left:36;text-indent:-18'><span class='tree-label'>2.2.10</span> <a class='tree-text' onfocus='blur_tree()' href='tutorial/finite_state_filters.html' target='content'><span class='tree-text'>Finite State Filters</span></a></div></div></div></div></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>3</span> <a class='tree-text' onfocus='blur_tree()' href='guide/guide.html' target='content'><span class='tree-text'>User's Guide</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>4</span> <a class='tree-text' onfocus='blur_tree()' href='reference.html' target='content'><span class='tree-text'>Reference</span></a></div><div id='list.4' style='white-space:nowrap;display:'>
+<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.1</span> <a class='tree-text' onfocus='blur_tree()' href='concepts/concepts.html' target='content'><span class='tree-text'>Concepts</span></a></div></div>
+<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.2</span> <a class='tree-text' onfocus='blur_tree()' href='classes/classes.html' target='content'><span class='tree-text'>Classes</span></a></div></div>
+<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.3</span> <a class='tree-text' onfocus='blur_tree()' href='functions/functions.html' target='content'><span class='tree-text'>Functions</span></a></div></div>
+<div class='tree-item'><div style='margin-left:18;text-indent:-9'><span class='tree-label'>4.4</span> <a class='tree-text' onfocus='blur_tree()' href='macros/macros.html' target='content'><span class='tree-text'>Macros</span></a></div></div></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>5</span> <a class='tree-text' onfocus='blur_tree()' href='quick_reference.html' target='content'><span class='tree-text'>Quick Reference</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>6</span> <a class='tree-text' onfocus='blur_tree()' href='faq.html' target='content'><span class='tree-text'>FAQ</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>7</span> <a class='tree-text' onfocus='blur_tree()' href='installation.html' target='content'><span class='tree-text'>Installation</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>8</span> <a class='tree-text' onfocus='blur_tree()' href='portability.html' target='content'><span class='tree-text'>Portability</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>9</span> <a class='tree-text' onfocus='blur_tree()' href='rationale.html' target='content'><span class='tree-text'>Rationale</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>10</span> <a class='tree-text' onfocus='blur_tree()' href='bibliography.html' target='content'><span class='tree-text'>Bibliography</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>11</span> <a class='tree-text' onfocus='blur_tree()' href='acknowledgments.html' target='content'><span class='tree-text'>Acknowledgments</span></a></div></div>
+<div class='tree-item'><div style='margin-left:0;text-indent:-0'><span class='tree-label'>12</span> <a class='tree-text' onfocus='blur_tree()' href='release_notes.html' target='content'><span class='tree-text'>Release Notes</span></a></div></div></div></td></tr></table>
+
+
     </noscript>
 
 <!-- ------------------ Tree Control --------------------------------- -->
@@ -357,4 +362,5 @@
     </table>
 
 </body>
-</html>
\ No newline at end of file
+</html>
+

Modified: branches/proto/v3/libs/iostreams/doc/portability.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/portability.html (original)
+++ branches/proto/v3/libs/iostreams/doc/portability.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,159 +15,15 @@
 <!-- End Banner -->
 
 <P>
- The Iostreams library has been tested with a wide variety of platforms. With a few exceptions, noted in the rightmost column below, the library is fully supported on the following platforms:
+ The Iostreams library has been tested with a wide variety of platforms. Please see the Boost regression reports for details.
 </P>
 
-<TABLE STYLE="margin-bottom:1em" BORDER="1" CELLPADDING="6" CELLSPACING="1">
-<TR>
- <TH>Compiler</TH><TH>Standard Library</TH><TH>Operating System</TH><TH>Limitations</TH>
-</TR>
-<TR>
- <TD ROWSPAN='3'>GCC 3.2 - 4.0</TD>
- <TD ROWSPAN='4'>libstdc++</TD>
- <TD>Linux and Most UNIX</TD>
- <TD><I>none</I></TD>
-</TR>
-<TR>
- <TD>Windows (MinGW and Cygwin)</TD>
- <TD ROWSPAN='2'><A CLASS='footnote_ref' NAME='note_1_ref' HREF="#note_1">[1]</TD>
-</TR>
-<TR>
- <TD>OSF1 V5</TD>
-</TR>
-<TR>
- <TD ROWSPAN='2'>GCC 2.9.3</TD>
- <TD ROWSPAN='2'>Linux</TD>
- <TD>
- <A CLASS='footnote_ref' NAME='note_1_ref' HREF="#note_1">[1]</A>,
- <A CLASS='footnote_ref' NAME='note_2_ref' HREF="#note_2">[2]</A>,
- <A CLASS="footnote_ref" NAME="note_2_ref" HREF="#note_3">[3]</A>
- </TD>
-</TR>
-<TR>
- <TD>STLPort</TD>
- <TD>
- <A CLASS='footnote_ref' NAME='note_2_ref' HREF="#note_2">[2]</A>,
- <A CLASS='footnote_ref' NAME='note_4_ref' HREF="#note_4">[4]</A>
- </TD>
-</TR>
-<TR>
- <TD>Visual C++ 7.1, 8.0 (beta 2)</TD>
- <TD ROWSPAN='2'>Dinkumware</TD>
- <TD ROWSPAN='2'>Windows</TD>
- <TD><I>none</I></TD>
-</TR>
-<TR>
- <TD>Visual C++ 6.0 - 7.0</TD>
- <TD>
- <A CLASS='footnote_ref' NAME='note_2_ref' HREF="#note_2">[2]</A>,
- <A CLASS='footnote_ref' NAME='note_5_ref' HREF="#note_5">[5]</A>
- </TD>
-</TR>
-<TR>
- <TD ROWSPAN='2'>CodeWarrior 8.3 - 9.5</TD>
- <TD ROWSPAN='2'>MSL</TD>
- <TD>Windows, Max OS X</TD>
- <TD ROWSPAN='2'><I>none</I></TD>
-</TR>
-<TR>
- <TD>Max OS X</TD>
-</TR>
-<TR>
- <TD>Borland 5.6.4</TD>
- <TD>STLPort 4.5.3</TD>
- <TD>Windows</TD>
- <TD>
- <A CLASS='footnote_ref' NAME='note_2_ref' HREF="#note_2">[2]</A>,
- <A CLASS='footnote_ref' NAME='note_4_ref' HREF="#note_4">[4]</A>
- </TD>
-</TR>
-<!--
- <TR>
- <TD>RogueWave</TD>
- <TD>
- <A CLASS='footnote_ref' NAME='note_2_ref' HREF="#note_2">[2]</A>
- </TD>
- </TR>
--->
-<TR>
- <TD>Comeau C/C++ 4.3.3</TD>
- <TD>libcomo 31</TD>
- <TD>Windows</TD>
- <TD>
- <A CLASS='footnote_ref' NAME='note_3_ref' HREF="#note_3">[3]</A>,
- <A CLASS='footnote_ref' NAME='note_4_ref' HREF="#note_4">[4]</A>
- <A CLASS='footnote_ref' NAME='note_6_ref' HREF="#note_6">[6]</A>
- </TD>
-</TR>
-<TR>
- <TD ROWSPAN='2'>Intel 7.0 - 8.0</TD>
- <TD>libstdc++</TD>
- <TD>Linux</TD>
- <TD ROWSPAN='2'><I>none</I></TD>
-</TR>
-<TR>
- <TD>Dinkumware</TD>
- <TD>Windows</TD>
-</TR>
-<TR>
- <TD>Intel 9.0</TD>
- <TD>Dinkumware</TD>
- <TD>Windows</TD>
- <TD><A CLASS='footnote_ref' NAME='note_7_ref' HREF="#note_7">[7]</A></TD>
-</TR>
-<TR>
- <TD>Compaq C++ 6.5-042</TD>
- <TD>RogueWave</TD>
- <TD>Tru64 UNIX</TD>
- <TD><I>none</I></TD>
-</TR>
-</TABLE>
-
-<!-- Begin Footnotes -->
-
-<H4>Notes</H4>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_1" HREF="#note_1_ref"><SUP>[1]</SUP></A>Wide streams are not supported.
-</P>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_2" HREF="#note_2_ref"><SUP>[2]</SUP></A>Fails finite_state_filter_test.cpp. Note that finite_state_filter is part of the library examples and not the core library.
-</P>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_3" HREF="#note_3_ref"><SUP>[3]</SUP></A>Exhibits several unexplained runtime failures. See the Compiler Status Tables for details.
-</P>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_4" HREF="#note_4_ref"><SUP>[4]</SUP></A>Fails seekable_file_test.cpp.
-</P>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_5" HREF="#note_5_ref"><SUP>[5]</SUP></A>Exhibits several unexplained runtime failures when global optimization (<CODE>/Og</CODE>) is enabled.
-</P>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_6" HREF="#note_6_ref"><SUP>[6]</SUP></A>When run in strict mode, fails to compile those tests which depend on the header <CODE>&lt;windows.h&gt;</CODE>, namely bzip2_test.cpp, file_descriptor_test.cpp and mapped_file_test.cpp.
-</P>
-
-<P>
- <A CLASS="footnote_ref" NAME="note_7" HREF="#note_7_ref"><SUP>[7]</SUP></A>Intermittently fails the mapped_file_test test cases in which a mapped_file is used to create a new file.</A>.
-</P>
-
-<!-- End Footnotes -->
-
 <!-- Begin Footer -->
 
 <HR>
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/quick_reference.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/quick_reference.html (original)
+++ branches/proto/v3/libs/iostreams/doc/quick_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -323,7 +323,7 @@
 <H2>Views</H2>
 
 <P>
- Each view consists of one or more class templates together with an object generator. <I>See</I> Views.
+ Each view consists of one or more class templates together with an object generator. <I>See</I> Views.
 <P>
 
 <TABLE STYLE="margin-bottom:1em" BORDER="1" CELLPADDING="6" CELLSPACING="1">
@@ -358,9 +358,9 @@
     </TD>
 </TR>
 <TR>
- <TD>restrict</TD>
+ <TD>restrict<BR>slice</TD>
     <TD>restriction</TD>
- <TD>restrict.hpp</TD>
+ <TD>restrict.hpp<BR>slice.hpp</TD>
     <TD>
         Takes a Filter or Device together with a stream offset and an optional length and yields a Filter or Device for accessing the specifed subquence of the given component
     </TD>
@@ -405,13 +405,9 @@
    
 <!-- Begin Footer -->
 
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/rationale.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/rationale.html (original)
+++ branches/proto/v3/libs/iostreams/doc/rationale.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -151,13 +151,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/reference.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/reference.html (original)
+++ branches/proto/v3/libs/iostreams/doc/reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,13 +31,9 @@
 <!-- Begin Footer -->
 
 <HR>
-<P STYLE="margin-top:2em" CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P STYLE="margin-top:2em" CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis<br/>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>
 
 <!-- End Footer -->

Modified: branches/proto/v3/libs/iostreams/doc/theme/iostreams.css
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/theme/iostreams.css (original)
+++ branches/proto/v3/libs/iostreams/doc/theme/iostreams.css 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,8 @@
 /*
- * © Copyright Jonathan Turkanis 2004. Use, modification, and distribution are
- * subject to the Boost Software License, Version 1.0. (See accompanying file
- * LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)
+ * (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+ * (C) Copyright 2004-2007 Jonathan Turkanis
+ * Distributed under the Boost Software License, Version 1.0. (See accompanying
+ * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
  *
  * Adapted Boost.Spirit stylesheet (www.boost.org/libs/spirit)
  */

Modified: branches/proto/v3/libs/iostreams/doc/tree/tree.css
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tree/tree.css (original)
+++ branches/proto/v3/libs/iostreams/doc/tree/tree.css 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,6 @@
 /*
- * (C) Copyright Jonathan Turkanis 2003.
+ * (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+ * (C) Copyright 2003-2007 Jonathan Turkanis
  * Distributed under the Boost Software License, Version 1.0. (See accompanying
  * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
  */

Modified: branches/proto/v3/libs/iostreams/doc/tree/tree.js
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tree/tree.js (original)
+++ branches/proto/v3/libs/iostreams/doc/tree/tree.js 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -105,10 +106,10 @@
 }
 function html_anchor(content, cl, href, target)
 {
- return "<A class='" + cl + "' onfocus='blur_tree()" +
+ return "<a class='" + cl + "' onfocus='blur_tree()" +
            "' href='" + href + "'" +
            (target ? " target='" + target + "'" : "") +
- ">" + content + "</A>";
+ ">" + content + "</a>";
 }
 
 //--------------Definition of class tree_node---------------------------------//

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/container_device.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/container_device.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/container_device.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -226,13 +226,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/container_sink.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/container_sink.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/container_sink.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -66,7 +66,7 @@
 
 <P>Here sink is a convenience base class which provides the member types <CODE>char_type</CODE> and <CODE>category</CODE>, as well as no-op implementations of member functions <CODE>close</CODE> and <CODE>imbue</CODE>, not needed here.
 
-<P>You're now ready to write your <CODE>container_source</CODE>.</P>
+<P>You're now ready to write your <CODE>container_sink</CODE>.</P>
 
 <PRE CLASS="broken_ie"><SPAN CLASS='preprocessor'>#include</SPAN> <SPAN CLASS='literal'>&lt;algorithm&gt;</SPAN> <SPAN CLASS='comment'>// copy, min</SPAN>
 <SPAN CLASS='preprocessor'>#include</SPAN> <SPAN CLASS='literal'>&lt;iosfwd&gt;</SPAN> <SPAN CLASS='comment'>// streamsize</SPAN>
@@ -96,7 +96,7 @@
 <UL>
 <LI>The member type <CODE>char_type</CODE> is defined to be equal to the containers's <CODE>value_type</CODE>;
 <LI>The member type <CODE>category</CODE> tells the Iostreams library that <CODE>container_sink</CODE> is a model of Sink;
-<LI>A <CODE>container_source</CODE> can be constructed from a instance of <CODE>Container</CODE>, which is passed and stored by reference, and accessible <I>via</I> the member function <CODE>container()</CODE>; and
+<LI>A <CODE>container_sink</CODE> can be constructed from a instance of <CODE>Container</CODE>, which is passed and stored by reference, and accessible <I>via</I> the member function <CODE>container()</CODE>; and
 <LI>The implementation of <CODE>write()</CODE> simply appends the characters in the specified buffer to the underlying container using the container's <CODE>insert</CODE> funcion,
 </UL>
 
@@ -105,7 +105,7 @@
 <PRE CLASS="broken_ie"><SPAN CLASS='preprocessor'>#include</SPAN> <SPAN CLASS='literal'>&lt;cassert&gt;</SPAN>
 <SPAN CLASS='preprocessor'>#include</SPAN> <SPAN CLASS='literal'>&lt;string&gt;</SPAN>
 <SPAN CLASS='preprocessor'>#include</SPAN> <A CLASS="HEADER" HREF="../../../../boost/iostreams/stream.hpp"><SPAN CLASS='literal'>&lt;boost/iostreams/stream.hpp&gt;</SPAN></A>
-<SPAN CLASS='preprocessor'>#include</SPAN> <A CLASS="HEADER" HREF="../../example/container_device.hpp"><SPAN CLASS='literal'>&lt;libs/iostreams/example/container_device.hpp&gt;</SPAN></A> <SPAN CLASS='comment'>// container_source</SPAN>
+<SPAN CLASS='preprocessor'>#include</SPAN> <A CLASS="HEADER" HREF="../../example/container_device.hpp"><SPAN CLASS='literal'>&lt;libs/iostreams/example/container_device.hpp&gt;</SPAN></A> <SPAN CLASS='comment'>// container_sink</SPAN>
 
 <SPAN CLASS='keyword'>namespace</SPAN> io = boost::iostreams;
 <SPAN CLASS='keyword'>namespace</SPAN> ex = boost::iostreams::example;
@@ -180,13 +180,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/container_source.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/container_source.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/container_source.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -173,13 +173,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/dictionary_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/dictionary_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/dictionary_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -310,13 +310,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/dual_use_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/dual_use_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/dual_use_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -90,13 +90,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/filter_usage.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/filter_usage.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/filter_usage.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -100,13 +100,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/finite_state_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/finite_state_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/finite_state_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -174,13 +174,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/line_wrapping_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/line_wrapping_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/line_wrapping_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -254,13 +254,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/multichar_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/multichar_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/multichar_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -264,13 +264,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/shell_comments_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/shell_comments_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/shell_comments_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -298,13 +298,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/tab_expanding_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/tab_expanding_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/tab_expanding_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -270,13 +270,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/tutorial.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/tutorial.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/tutorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,13 +44,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/unix2dos_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/unix2dos_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/unix2dos_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -220,13 +220,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/writing_devices.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/writing_devices.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/writing_devices.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -51,8 +51,8 @@
 
 <SPAN CLASS='keyword'>int</SPAN> main()
 {
- io::stream_buffer&lt;file_sink&gt; buf(<SPAN CLASS='literal'>"log.txt"</SPAN>);
- std::ostream out(&buf);
+ io::stream_buffer&lt;io::file_sink&gt; buf(<SPAN CLASS='literal'>"log.txt"</SPAN>);
+ std::ostream out(&buf);
     <SPAN CLASS='comment'>// out writes to log.txt</SPAN>
 }</PRE>
 
@@ -75,13 +75,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/doc/tutorial/writing_filters.html
==============================================================================
--- branches/proto/v3/libs/iostreams/doc/tutorial/writing_filters.html (original)
+++ branches/proto/v3/libs/iostreams/doc/tutorial/writing_filters.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -81,13 +81,9 @@
 
 <HR>
 
-<P CLASS="copyright">Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
-20 May, 2004
-<!--webbot bot="Timestamp" endspan i-checksum="38504" -->
-</P>
+<P CLASS="copyright">Revised 02 Feb 2008</P>
 
-<P CLASS="copyright">&copy; Copyright Jonathan Turkanis, 2004</P>
+<P CLASS="copyright">&copy; Copyright 2008 CodeRage, LLC<br/>&copy; Copyright 2004-2007 Jonathan Turkanis</P>
 <P CLASS="copyright">
     Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </P>

Modified: branches/proto/v3/libs/iostreams/example/boost_back_inserter_example.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/boost_back_inserter_example.cpp (original)
+++ branches/proto/v3/libs/iostreams/example/boost_back_inserter_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/container_device.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/container_device.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/container_device.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -30,7 +31,8 @@
     std::streamsize read(char_type* s, std::streamsize n)
     {
         using namespace std;
- std::streamsize amt = static_cast<streamsize>(container_.size() - pos_);
+ std::streamsize amt =
+ static_cast<std::streamsize>(container_.size() - pos_);
         std::streamsize result = (min)(n, amt);
         if (result != 0) {
             std::copy( container_.begin() + pos_,

Modified: branches/proto/v3/libs/iostreams/example/container_device_example.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/container_device_example.cpp (original)
+++ branches/proto/v3/libs/iostreams/example/container_device_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/container_sink_example.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/container_sink_example.cpp (original)
+++ branches/proto/v3/libs/iostreams/example/container_sink_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/container_source_example.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/container_source_example.cpp (original)
+++ branches/proto/v3/libs/iostreams/example/container_source_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/dictionary_filter.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/dictionary_filter.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/dictionary_filter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/finite_state_filter.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/finite_state_filter.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/finite_state_filter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/iterator_range_example.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/iterator_range_example.cpp (original)
+++ branches/proto/v3/libs/iostreams/example/iterator_range_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/line_wrapping_filter.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/line_wrapping_filter.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/line_wrapping_filter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/shell_comments_filter.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/shell_comments_filter.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/shell_comments_filter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/std_back_inserter_example.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/std_back_inserter_example.cpp (original)
+++ branches/proto/v3/libs/iostreams/example/std_back_inserter_example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/tab_expanding_filter.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/tab_expanding_filter.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/tab_expanding_filter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/example/unix2dos_filter.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/example/unix2dos_filter.hpp (original)
+++ branches/proto/v3/libs/iostreams/example/unix2dos_filter.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/src/bzip2.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/src/bzip2.cpp (original)
+++ branches/proto/v3/libs/iostreams/src/bzip2.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/src/file_descriptor.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/src/file_descriptor.cpp (original)
+++ branches/proto/v3/libs/iostreams/src/file_descriptor.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003-2007.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -44,6 +45,30 @@
 
 //------------------Implementation of file_descriptor-------------------------//
 
+file_descriptor::file_descriptor() : pimpl_(new impl) { }
+
+file_descriptor::file_descriptor(handle_type fd, bool close_on_exit)
+ : pimpl_(new impl(fd, close_on_exit))
+ { }
+
+#ifdef BOOST_IOSTREAMS_WINDOWS
+ file_descriptor::file_descriptor(int fd, bool close_on_exit)
+ : pimpl_(new impl(int_to_handle(fd), close_on_exit))
+ { }
+#endif
+
+file_descriptor::file_descriptor( const char* path,
+ BOOST_IOS::openmode mode,
+ BOOST_IOS::openmode base_mode )
+ : pimpl_(new impl)
+{ open(std::string(path), mode, base_mode); }
+
+file_descriptor::file_descriptor( const std::string& path,
+ BOOST_IOS::openmode mode,
+ BOOST_IOS::openmode base_mode )
+ : pimpl_(new impl)
+{ open(path, mode, base_mode); }
+
 void file_descriptor::open
     ( const std::string& path, BOOST_IOS::openmode m,
       BOOST_IOS::openmode base )
@@ -88,7 +113,7 @@
                        NULL ); // hTemplateFile
     if (handle != INVALID_HANDLE_VALUE) {
         pimpl_->handle_ = handle;
- pimpl_->flags_ |= impl::close_on_exit | impl::has_handle;
+ pimpl_->flags_ |= impl::close_on_exit;
     } else {
         pimpl_->flags_ = 0;
         throw BOOST_IOSTREAMS_FAILURE("bad open");
@@ -131,52 +156,55 @@
     if (fd == -1) {
         throw BOOST_IOSTREAMS_FAILURE("bad open");
     } else {
- pimpl_->fd_ = fd;
+ pimpl_->handle_ = fd;
         pimpl_->flags_ = impl::close_on_exit;
     }
 #endif // #ifndef BOOST_IOSTREAMS_WINDOWS //----------------------------------//
 }
 
+void file_descriptor::open
+ ( const char* path, BOOST_IOS::openmode m,
+ BOOST_IOS::openmode base )
+{ open(std::string(path), m, base); }
+
 std::streamsize file_descriptor::read(char_type* s, std::streamsize n)
 {
 #ifdef BOOST_IOSTREAMS_WINDOWS
- if (pimpl_->flags_ & impl::has_handle) {
- DWORD result;
- if (!::ReadFile(pimpl_->handle_, s, n, &result, NULL))
- throw detail::bad_read();
- return static_cast<std::streamsize>(result);
- }
-#endif
+ DWORD result;
+ if (!::ReadFile(pimpl_->handle_, s, n, &result, NULL))
+ throw detail::bad_read();
+ return result == 0 ? -1 : static_cast<std::streamsize>(result);
+#else // #ifdef BOOST_IOSTREAMS_WINDOWS
     errno = 0;
- std::streamsize result = BOOST_IOSTREAMS_FD_READ(pimpl_->fd_, s, n);
+ std::streamsize result = BOOST_IOSTREAMS_FD_READ(pimpl_->handle_, s, n);
     if (errno != 0)
         throw detail::bad_read();
     return result == 0 ? -1 : result;
+#endif // #ifdef BOOST_IOSTREAMS_WINDOWS
 }
 
 std::streamsize file_descriptor::write(const char_type* s, std::streamsize n)
 {
 #ifdef BOOST_IOSTREAMS_WINDOWS
- if (pimpl_->flags_ & impl::has_handle) {
- if (pimpl_->flags_ & impl::append) {
- DWORD const dwResult =
- ::SetFilePointer(pimpl_->handle_, 0, NULL, FILE_END);
- if ( dwResult == INVALID_SET_FILE_POINTER &&
- ::GetLastError() != NO_ERROR )
- {
- throw detail::bad_seek();
- }
+ if (pimpl_->flags_ & impl::append) {
+ DWORD const dwResult =
+ ::SetFilePointer(pimpl_->handle_, 0, NULL, FILE_END);
+ if ( dwResult == INVALID_SET_FILE_POINTER &&
+ ::GetLastError() != NO_ERROR )
+ {
+ throw detail::bad_seek();
         }
- DWORD ignore;
- if (!::WriteFile(pimpl_->handle_, s, n, &ignore, NULL))
- throw detail::bad_write();
- return n;
     }
-#endif
- int amt = BOOST_IOSTREAMS_FD_WRITE(pimpl_->fd_, s, n);
+ DWORD ignore;
+ if (!::WriteFile(pimpl_->handle_, s, n, &ignore, NULL))
+ throw detail::bad_write();
+ return n;
+#else // #ifdef BOOST_IOSTREAMS_WINDOWS
+ int amt = BOOST_IOSTREAMS_FD_WRITE(pimpl_->handle_, s, n);
     if (amt < n)
         throw detail::bad_write(); // Handles blocking fd's only.
     return n;
+#endif // #ifdef BOOST_IOSTREAMS_WINDOWS
 }
 
 std::streampos file_descriptor::seek
@@ -184,29 +212,27 @@
 {
     using namespace std;
 #ifdef BOOST_IOSTREAMS_WINDOWS
- if (pimpl_->flags_ & impl::has_handle) {
- LONG lDistanceToMove = static_cast<LONG>(off & 0xffffffff);
- LONG lDistanceToMoveHigh = static_cast<LONG>(off >> 32);
- DWORD dwResultLow =
- ::SetFilePointer( pimpl_->handle_,
- lDistanceToMove,
- &lDistanceToMoveHigh,
- way == BOOST_IOS::beg ?
- FILE_BEGIN :
- way == BOOST_IOS::cur ?
- FILE_CURRENT :
- FILE_END );
- if ( dwResultLow == INVALID_SET_FILE_POINTER &&
- ::GetLastError() != NO_ERROR )
- {
- throw detail::bad_seek();
- } else {
- return offset_to_position(
- (stream_offset(lDistanceToMoveHigh) << 32) + dwResultLow
- );
- }
+ LONG lDistanceToMove = static_cast<LONG>(off & 0xffffffff);
+ LONG lDistanceToMoveHigh = static_cast<LONG>(off >> 32);
+ DWORD dwResultLow =
+ ::SetFilePointer( pimpl_->handle_,
+ lDistanceToMove,
+ &lDistanceToMoveHigh,
+ way == BOOST_IOS::beg ?
+ FILE_BEGIN :
+ way == BOOST_IOS::cur ?
+ FILE_CURRENT :
+ FILE_END );
+ if ( dwResultLow == INVALID_SET_FILE_POINTER &&
+ ::GetLastError() != NO_ERROR )
+ {
+ throw detail::bad_seek();
+ } else {
+ return offset_to_position(
+ (stream_offset(lDistanceToMoveHigh) << 32) + dwResultLow
+ );
     }
-#endif // #ifdef BOOST_IOSTREAMS_WINDOWS
+#else // #ifdef BOOST_IOSTREAMS_WINDOWS
     if ( off > integer_traits<BOOST_IOSTREAMS_FD_OFFSET>::const_max ||
          off < integer_traits<BOOST_IOSTREAMS_FD_OFFSET>::const_min )
     {
@@ -214,7 +240,7 @@
     }
     stream_offset result =
         BOOST_IOSTREAMS_FD_SEEK(
- pimpl_->fd_,
+ pimpl_->handle_,
             static_cast<BOOST_IOSTREAMS_FD_OFFSET>(off),
             ( way == BOOST_IOS::beg ?
                   SEEK_SET :
@@ -225,6 +251,7 @@
     if (result == -1)
         throw detail::bad_seek();
     return offset_to_position(result);
+#endif // #ifdef BOOST_IOSTREAMS_WINDOWS
 }
 
 void file_descriptor::close() { close_impl(*pimpl_); }
@@ -232,20 +259,28 @@
 void file_descriptor::close_impl(impl& i)
 {
 #ifdef BOOST_IOSTREAMS_WINDOWS
- if (i.flags_ & impl::has_handle) {
+ if (i.handle_ != reinterpret_cast<handle_type>(-1)) {
         if (!::CloseHandle(i.handle_))
             throw BOOST_IOSTREAMS_FAILURE("bad close");
- i.fd_ = -1;
+ i.handle_ = reinterpret_cast<handle_type>(-1);
         i.flags_ = 0;
         return;
     }
-#endif
- if (i.fd_ != -1) {
- if (BOOST_IOSTREAMS_FD_CLOSE(i.fd_) == -1)
+#else // #ifdef BOOST_IOSTREAMS_WINDOWS
+ if (i.handle_ != -1) {
+ if (BOOST_IOSTREAMS_FD_CLOSE(i.handle_) == -1)
             throw BOOST_IOSTREAMS_FAILURE("bad close");
- i.fd_ = -1;
+ i.handle_ = -1;
         i.flags_ = 0;
     }
+#endif // #ifdef BOOST_IOSTREAMS_WINDOWS
+}
+
+#ifdef BOOST_IOSTREAMS_WINDOWS
+file_descriptor::handle_type file_descriptor::int_to_handle(int fd)
+{
+ return reinterpret_cast<handle_type>(_get_osfhandle(fd));
 }
+#endif
 
 } } // End namespaces iostreams, boost.

Modified: branches/proto/v3/libs/iostreams/src/mapped_file.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/src/mapped_file.cpp (original)
+++ branches/proto/v3/libs/iostreams/src/mapped_file.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,6 @@
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // (C) Copyright Craig Henderson 2002 'boost/memmap.hpp' from sandbox
-// (C) Copyright Jonathan Turkanis 2004.
 // (C) Copyright Jonathan Graehl 2004.
 
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -13,6 +14,9 @@
 #define BOOST_IOSTREAMS_SOURCE
 
 #include <cassert>
+#ifndef NDEBUG
+# include <boost/iostreams/detail/absolute_path.hpp>
+#endif
 #include <boost/iostreams/detail/config/dyn_link.hpp>
 #include <boost/iostreams/detail/config/windows_posix.hpp>
 #include <boost/iostreams/detail/ios.hpp> // failure.
@@ -55,6 +59,9 @@
     #else
         handle_ = 0;
     #endif
+ #ifndef NDEBUG
+ path_.erase();
+ #endif
     }
     void close()
     {
@@ -77,8 +84,16 @@
         data_ = 0;
         size_ = 0;
         mode_ = BOOST_IOS::openmode();
- if (error)
- throw_system_failure("error closing mapped file");
+ if (error) {
+ std::string msg("error closing mapped file");
+ #ifndef NDEBUG
+ msg += std::string(" (\"") + path_ + "\")";
+ #endif
+ throw_system_failure(msg);
+ }
+ #ifndef NDEBUG
+ path_.erase();
+ #endif
     }
     char* data_;
     std::size_t size_;
@@ -90,6 +105,9 @@
 #else
     int handle_;
 #endif
+#ifndef NDEBUG
+ std::string path_;
+#endif
 };
 
 } // End namespace detail.
@@ -123,9 +141,6 @@
 mapped_file_source::size_type mapped_file_source::size() const
 { return pimpl_->size_; }
 
-bool mapped_file_source::is_open() const
-{ return !!pimpl_ && pimpl_->handle_ != 0; }
-
 void mapped_file_source::close() { pimpl_->close(); }
 
 mapped_file_source::operator mapped_file_source::safe_bool() const
@@ -149,8 +164,11 @@
 
 namespace detail {
 
-void cleanup_and_throw(detail::mapped_file_impl& impl, const char* msg)
+void cleanup_and_throw(detail::mapped_file_impl& impl, std::string msg)
 {
+ #ifndef NDEBUG
+ msg += std::string(" (\"") + impl.path_ + "\")";
+ #endif
     if (impl.mapped_handle_ != INVALID_HANDLE_VALUE)
         ::CloseHandle(impl.mapped_handle_);
     if (impl.handle_ != NULL)
@@ -173,6 +191,9 @@
         pimpl_->clear(false);
     bool readonly = (p.mode & BOOST_IOS::out) == 0;
     pimpl_->mode_ = readonly ? BOOST_IOS::in : (BOOST_IOS::in | BOOST_IOS::out);
+ #ifndef NDEBUG
+ pimpl_->path_ = detail::absolute_path(p.path);
+ #endif
 
     //--------------Open underlying file--------------------------------------//
 
@@ -189,8 +210,9 @@
                            FILE_ATTRIBUTE_TEMPORARY,
                        NULL );
 
- if (pimpl_->handle_ == INVALID_HANDLE_VALUE)
+ if (pimpl_->handle_ == INVALID_HANDLE_VALUE) {
         detail::cleanup_and_throw(*pimpl_, "failed opening file");
+ }
 
     //--------------Set file size---------------------------------------------//
 
@@ -283,6 +305,9 @@
     pimpl_->data_ = reinterpret_cast<char*>(data);
 }
 
+bool mapped_file_source::is_open() const
+{ return !!pimpl_ && pimpl_->handle_ != INVALID_HANDLE_VALUE; }
+
 int mapped_file_source::alignment()
 {
     SYSTEM_INFO info;
@@ -294,8 +319,11 @@
 
 namespace detail {
 
-void cleanup_and_throw(detail::mapped_file_impl& impl, const char* msg)
+ void cleanup_and_throw(detail::mapped_file_impl& impl, std::string msg)
 {
+ #ifndef NDEBUG
+ msg += std::string(" (\"") + impl.path_ + "\")";
+ #endif
     if (impl.handle_ != 0)
         ::close(impl.handle_);
     impl.clear(true);
@@ -317,6 +345,9 @@
         pimpl_->clear(false);
     bool readonly = (p.mode & BOOST_IOS::out) == 0;
     pimpl_->mode_ = readonly ? BOOST_IOS::in : (BOOST_IOS::in | BOOST_IOS::out);
+ #ifndef NDEBUG
+ pimpl_->path_ = detail::absolute_path(p.path);
+ #endif
 
     //--------------Open underlying file--------------------------------------//
 
@@ -368,6 +399,9 @@
     return;
 }
 
+bool mapped_file_source::is_open() const
+{ return !!pimpl_ && pimpl_->handle_ != 0; }
+
 int mapped_file_source::alignment()
 { return static_cast<int>(sysconf(_SC_PAGESIZE)); }
 

Modified: branches/proto/v3/libs/iostreams/src/zlib.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/src/zlib.cpp (original)
+++ branches/proto/v3/libs/iostreams/src/zlib.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2003.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2003-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/iostreams/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/iostreams/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,7 @@
 # Boost.Iostreams Library test Jamfile
 
-# (C) Copyright Jonathan Turkanis 2004
+# (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+# (C) Copyright 2004-2007 Jonathan Turkanis
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -22,8 +23,9 @@
             : # command
             : # input files
             : # build requirements
+ <toolset>msvc:<define>_CRT_SECURE_NO_DEPRECATE
+ <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
                 <toolset>msvc,<stdlib>stlport:<runtime-link>static
- <toolset>msvc:<cxxflags>"-wd4996"
                 <toolset>cw-9.3,<os>darwin:<runtime-link>static
                 <define>BOOST_IOSTREAMS_NO_LIB
                 <link>shared:<define>BOOST_IOSTREAMS_DYN_LINK=1
@@ -38,7 +40,8 @@
           [ test-iostreams close_test.cpp ]
           [ test-iostreams
                 code_converter_test.cpp
- detail/utf8_codecvt_facet.cpp ]
+ detail/utf8_codecvt_facet.cpp : <link>static ]
+ [ test-iostreams combine_test.cpp ]
           [ test-iostreams compose_test.cpp ]
           [ test-iostreams component_access_test.cpp ]
           [ test-iostreams copy_test.cpp ]
@@ -47,17 +50,15 @@
           [ test-iostreams example_test.cpp ]
           [ test-iostreams execute_test.cpp ]
           [ test-iostreams file_test.cpp ]
- [ test-iostreams
- file_descriptor_test.cpp
- ../build//boost_iostreams : <link>static ]
+ [ test-iostreams file_descriptor_test.cpp
+ ../src/file_descriptor.cpp : <link>static ]
           [ test-iostreams filtering_stream_test.cpp ]
           [ test-iostreams finite_state_filter_test.cpp ]
           [ test-iostreams flush_test.cpp ]
           [ test-iostreams invert_test.cpp ]
           [ test-iostreams line_filter_test.cpp ]
- [ test-iostreams
- mapped_file_test.cpp
- ../build//boost_iostreams : <link>static ]
+ [ test-iostreams mapped_file_test.cpp
+ ../src/mapped_file.cpp : <link>static ]
           [ test-iostreams newline_test.cpp ]
           [ test-iostreams null_test.cpp ]
           [ test-iostreams operation_sequence_test.cpp ]
@@ -69,6 +70,7 @@
           [ test-iostreams seekable_file_test.cpp ]
           [ test-iostreams seekable_filter_test.cpp ]
           [ test-iostreams sequence_test.cpp ]
+ [ test-iostreams slice_test.cpp ]
           [ test-iostreams stdio_filter_test.cpp ]
           [ test-iostreams stream_offset_32bit_test.cpp ]
           [ test-iostreams stream_offset_64bit_test.cpp ]
@@ -83,18 +85,20 @@
           all-tests +=
               [ test-iostreams
                     large_file_test.cpp
- ../build//boost_iostreams
+ ../src/file_descriptor.cpp
+ ../src/mapped_file.cpp
                   : <define>LARGE_FILE_KEEP=$(LARGE_FILE_KEEP)
- $(KEEP) ] ;
+ <link>static ] ;
       }
       if $(LARGE_FILE_TEMP)
       {
           all-tests +=
               [ test-iostreams
                     large_file_test.cpp
- ../build//boost_iostreams
+ ../src/file_descriptor.cpp
+ ../src/mapped_file.cpp
                   : <define>LARGE_FILE_TEMP=$(LARGE_FILE_TEMP)
- $(KEEP) ] ;
+ <link>static ] ;
       }
       if ! $(NO_BZIP2)
       {

Modified: branches/proto/v3/libs/iostreams/test/array_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/array_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/array_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/auto_close_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/auto_close_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/auto_close_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/buffer_size_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/buffer_size_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/buffer_size_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/bzip2_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/bzip2_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/bzip2_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/close_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/close_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/close_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
  *
  * Verifies that the close() member functions of filters and devices
  * are called with the correct arguments in the correct order when
- * they are combined using chains or adapters.
+ * used with chains and streams.
  *
  * File: libs/iostreams/test/close_test.cpp
  * Date: Sun Dec 09 16:12:23 MST 2007
@@ -15,13 +15,8 @@
  */
 
 #include <boost/iostreams/chain.hpp>
-#include <boost/iostreams/combine.hpp>
-#include <boost/iostreams/compose.hpp>
-#include <boost/iostreams/filter/symmetric.hpp>
-#include <boost/iostreams/invert.hpp>
-#include <boost/iostreams/restrict.hpp>
+#include <boost/iostreams/filtering_streambuf.hpp>
 #include <boost/iostreams/stream.hpp>
-#include <boost/iostreams/tee.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
 #include "detail/closable.hpp"
@@ -38,8 +33,8 @@
 {
     // Test input filter and device
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<input>(seq.new_operation(2)));
@@ -47,6 +42,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<input>(seq.new_operation(1)));
@@ -56,10 +57,9 @@
 
     // Test bidirectional filter and device
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
 
-
         // Test chain::pop()
         ch.push(
             closable_filter<bidirectional>(
@@ -76,6 +76,17 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ );
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(
@@ -90,8 +101,8 @@
 
     // Test seekable filter and device
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<seekable>(seq.new_operation(1)));
@@ -99,6 +110,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<seekable>(seq.new_operation(2)));
@@ -108,19 +125,26 @@
 
     // Test dual-user filter
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
+ operation dummy;
 
         // Test chain::pop()
         ch.push(
             closable_filter<dual_use>(
                 seq.new_operation(2),
- seq.new_operation(3)
+ dummy
             )
         );
         ch.push(closable_device<input>(seq.new_operation(1)));
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
         // Test filter reuse and chain::reset()
         seq.reset();
@@ -131,14 +155,20 @@
 
     // Test direct source
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<input>(seq.new_operation(2)));
         ch.push(closable_device<direct_input>(seq.new_operation(1)));
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<direct_input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
         // Test filter reuse and chain::reset()
         seq.reset();
@@ -149,8 +179,8 @@
 
     // Test direct bidirectional device
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<input>(seq.new_operation(2)));
@@ -163,6 +193,17 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(
+ closable_device<direct_bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(3)
+ )
+ );
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(
@@ -177,8 +218,8 @@
 
     // Test direct seekable device
     {
- operation_sequence seq;
- chain<input> ch;
+ operation_sequence seq;
+ filtering_streambuf<input> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<input>(seq.new_operation(1)));
@@ -186,6 +227,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
@@ -198,8 +245,8 @@
 {
     // Test output filter and device
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<output>(seq.new_operation(1)));
@@ -207,6 +254,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<output>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<output>(seq.new_operation(2)));
@@ -216,9 +269,8 @@
 
     // Test bidirectional filter and device
     {
- operation_sequence seq;
- chain<output> ch;
-
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
         
         // Test chain::pop()
         ch.push(
@@ -236,6 +288,17 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ );
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(
@@ -250,8 +313,8 @@
 
     // Test seekable filter and device
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<seekable>(seq.new_operation(1)));
@@ -259,6 +322,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<seekable>(seq.new_operation(2)));
@@ -268,20 +337,27 @@
 
     // Test dual-user filter
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
+ operation dummy;
 
         // Test chain::pop()
         ch.push(
             closable_filter<dual_use>(
- seq.new_operation(1),
- seq.new_operation(2)
+ dummy,
+ seq.new_operation(1)
             )
         );
         ch.push(closable_device<output>(seq.new_operation(3)));
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<output>(seq.new_operation(3)));
@@ -291,8 +367,8 @@
 
     // Test direct sink
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<output>(seq.new_operation(1)));
@@ -300,6 +376,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<direct_output>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<direct_output>(seq.new_operation(2)));
@@ -309,8 +391,8 @@
 
     // Test direct bidirectional device
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<output>(seq.new_operation(2)));
@@ -323,6 +405,17 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(
+ closable_device<direct_bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(3)
+ )
+ );
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(
@@ -337,8 +430,8 @@
 
     // Test direct seekable device
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<output> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<output>(seq.new_operation(1)));
@@ -346,6 +439,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
@@ -358,8 +457,8 @@
 {
     // Test bidirectional filter and device
     {
- operation_sequence seq;
- chain<bidirectional> ch;
+ operation_sequence seq;
+ filtering_streambuf<bidirectional> ch;
         
         // Test chain::pop()
         ch.push(
@@ -377,6 +476,17 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ );
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(
@@ -391,8 +501,8 @@
 
     // Test direct bidirectional device
     {
- operation_sequence seq;
- chain<bidirectional> ch;
+ operation_sequence seq;
+ filtering_streambuf<bidirectional> ch;
 
         // Test chain::pop()
         ch.push(
@@ -410,6 +520,17 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(
+ closable_device<direct_bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ );
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(
@@ -427,8 +548,8 @@
 {
     // Test seekable filter and device
     {
- operation_sequence seq;
- chain<seekable> ch;
+ operation_sequence seq;
+ filtering_streambuf<seekable> ch;
 
         // Test chain::pop()
         ch.push(closable_filter<seekable>(seq.new_operation(1)));
@@ -436,6 +557,12 @@
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<seekable>(seq.new_operation(2)));
@@ -445,15 +572,21 @@
 
     // Test direct seekable device
     {
- operation_sequence seq;
- chain<output> ch;
+ operation_sequence seq;
+ filtering_streambuf<seekable> ch;
 
         // Test chain::pop()
- ch.push(closable_filter<output>(seq.new_operation(1)));
+ ch.push(closable_filter<seekable>(seq.new_operation(1)));
         ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
         BOOST_CHECK_NO_THROW(ch.pop());
         BOOST_CHECK_OPERATION_SEQUENCE(seq);
 
+ // Test filter reuse and io::close()
+ seq.reset();
+ ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(io::close(ch));
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+
         // Test filter reuse and chain::reset()
         seq.reset();
         ch.push(closable_device<direct_seekable>(seq.new_operation(2)));
@@ -506,905 +639,6 @@
     }
 }
 
-void combine_test()
-{
- // Combine a source and a sink
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_device<input>(seq.new_operation(1)),
- closable_device<output>(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Combine two bidirectional devices
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- closable_device<bidirectional>(
- seq.new_operation(3),
- seq.new_operation(4)
- )
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Combine two seekable devices
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_device<seekable>(seq.new_operation(1)),
- closable_device<seekable>(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Combine an input filter and an output filter
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_filter<input>(seq.new_operation(2)),
- closable_filter<output>(seq.new_operation(3))
- )
- );
- ch.push(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(4)
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Combine two bidirectional filters
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_filter<bidirectional>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_filter<bidirectional>(
- seq.new_operation(4),
- seq.new_operation(5)
- )
- )
- );
- ch.push(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(6)
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Combine two seekable filters
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_filter<seekable>(seq.new_operation(2)),
- closable_filter<seekable>(seq.new_operation(3))
- )
- );
- ch.push(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(4)
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Combine two dual-use filters
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::combine(
- closable_filter<dual_use>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_filter<dual_use>(
- seq.new_operation(4),
- seq.new_operation(5)
- )
- )
- );
- ch.push(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(6)
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void composite_device_test()
-{
- // Compose an input filter with a source
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<input>(seq.new_operation(2)),
- closable_device<input>(seq.new_operation(1))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a bidirectional filter with a source
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_device<input>(seq.new_operation(1))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a seekable filter with a source
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<seekable>(seq.new_operation(2)),
- closable_device<input>(seq.new_operation(1))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a dual-use filter with a source
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<dual_use>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_device<input>(seq.new_operation(1))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose an output filter with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<output>(seq.new_operation(1)),
- closable_device<output>(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a bidirectional filter with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- closable_device<output>(seq.new_operation(3))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a seekable filter with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<seekable>(seq.new_operation(1)),
- closable_device<output>(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a dual-use filter with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<dual_use>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- closable_device<output>(seq.new_operation(3))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a bidirectional filter with a bidirectional device
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(4)
- )
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a seekable filter with a seekable device
- {
- operation_sequence seq;
- chain<seekable> ch;
- ch.push(
- io::compose(
- closable_filter<seekable>(seq.new_operation(1)),
- closable_device<seekable>(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void composite_filter_test()
-{
- // Compose two input filters
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<input>(seq.new_operation(3)),
- closable_filter<input>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a bidirectional filter with an input filter
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(3),
- seq.new_operation(4)
- ),
- closable_filter<input>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_MESSAGE(seq.is_success(), seq.message());
- }
-
- // Compose a seekable filter with an input filter
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<seekable>(seq.new_operation(3)),
- closable_filter<input>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a dual-use filter with an input filter
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<dual_use>(
- seq.new_operation(3),
- seq.new_operation(4)
- ),
- closable_filter<input>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose two output filters
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<output>(seq.new_operation(1)),
- closable_filter<output>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<output>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a bidirectional filter with an output filter
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- closable_filter<output>(seq.new_operation(3))
- )
- );
- ch.push(closable_device<output>(seq.new_operation(4)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a seekable filter with an output filter
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<seekable>(seq.new_operation(1)),
- closable_filter<output>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<output>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose a dual-use filter with an output filter
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<dual_use>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- closable_filter<output>(seq.new_operation(3))
- )
- );
- ch.push(closable_device<output>(seq.new_operation(4)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose two bidirectional filters
- {
- operation_sequence seq;
- chain<bidirectional> ch;
- ch.push(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(3),
- seq.new_operation(4)
- ),
- closable_filter<bidirectional>(
- seq.new_operation(2),
- seq.new_operation(5)
- )
- )
- );
- ch.push(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(6)
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose two seekable filters
- {
- operation_sequence seq;
- chain<seekable> ch;
- ch.push(
- io::compose(
- closable_filter<seekable>(seq.new_operation(1)),
- closable_filter<seekable>(seq.new_operation(2))
- )
- );
- ch.push(closable_device<seekable>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose two dual-use filters for input
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::compose(
- closable_filter<dual_use>(
- seq.new_operation(3),
- seq.new_operation(4)
- ),
- closable_filter<dual_use>(
- seq.new_operation(2),
- seq.new_operation(5)
- )
- )
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Compose two dual-use filters for output
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::compose(
- closable_filter<dual_use>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_filter<dual_use>(
- seq.new_operation(1),
- seq.new_operation(4)
- )
- )
- );
- ch.push(closable_device<output>(seq.new_operation(5)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void invert_test()
-{
- // Invert an output filter
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(io::invert(closable_filter<output>(seq.new_operation(2))));
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Invert an input filter
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(io::invert(closable_filter<input>(seq.new_operation(1))));
- ch.push(closable_device<output>(seq.new_operation(2)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void restrict_test()
-{
- // Restrict a source
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(io::restrict(closable_device<input>(seq.new_operation(1)), 0));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict a seekable device
- {
- operation_sequence seq;
- chain<seekable> ch;
- ch.push(
- io::restrict(closable_device<seekable>(seq.new_operation(1)), 0)
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict a direct source
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::restrict(closable_device<direct_input>(seq.new_operation(1)), 0)
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict a direct seekable device
- {
- operation_sequence seq;
- chain<seekable> ch;
- ch.push(
- io::restrict(
- closable_device<direct_seekable>(seq.new_operation(1)),
- 0
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict an input filter
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(io::restrict(closable_filter<input>(seq.new_operation(2)), 0));
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict a seekable filter
- {
- operation_sequence seq;
- chain<seekable> ch;
- ch.push(
- io::restrict(closable_filter<seekable>(seq.new_operation(1)), 0)
- );
- ch.push(closable_device<seekable>(seq.new_operation(2)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict a dual_use filter for input
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::restrict(
- closable_filter<dual_use>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- 0
- )
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Restrict a dual_use filter for output
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::restrict(
- closable_filter<dual_use>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- 0
- )
- );
- ch.push(closable_device<output>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void symmetric_filter_test()
-{
- // Test input
- {
- operation_sequence seq;
- chain<input> ch;
- ch.push(
- io::symmetric_filter<closable_symmetric_filter>
- (0, seq.new_operation(2))
- );
- ch.push(closable_device<input>(seq.new_operation(1)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Test output
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::symmetric_filter<closable_symmetric_filter>
- (0, seq.new_operation(1))
- );
- ch.push(closable_device<output>(seq.new_operation(2)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void tee_test()
-{
- // Note: The implementation of tee_device closes the first
- // sink before the second
-
- // Tee two sinks (Borland <= 5.8.2 needs a little help compiling this case,
- // but it executes the closing algorithm correctly)
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- closable_device<output>(seq.new_operation(1)),
- closable_device<
- #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
- borland_output
- #else
- output
- #endif
- >(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee two bidirectional devices
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(2)
- ),
- closable_device<bidirectional>(
- seq.new_operation(3),
- seq.new_operation(4)
- )
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee two seekable devices
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- closable_device<seekable>(seq.new_operation(1)),
- closable_device<seekable>(seq.new_operation(2))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(io::tee(closable_device<output>(seq.new_operation(1))));
- ch.push(closable_device<output>(seq.new_operation(2)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a bidirectional device
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(2)
- )
- )
- );
- ch.push(closable_device<output>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a seekable device
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(io::tee(closable_device<seekable>(seq.new_operation(1))));
- ch.push(closable_device<seekable>(seq.new_operation(2)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
-void tee_composite_test()
-{
- // This test is probably redundant, but it verifies that
- // ticket #1002 is fixed
-
- // Tee a composite sink with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- io::compose(
- closable_filter<output>(seq.new_operation(1)),
- closable_device<output>(seq.new_operation(2))
- ),
- closable_device<output>(seq.new_operation(3))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a composite bidirectional device with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(4)
- )
- ),
- closable_device<output>(seq.new_operation(5))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a composite composite seekable device with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- io::compose(
- closable_filter<seekable>(seq.new_operation(1)),
- closable_device<seekable>(seq.new_operation(2))
- ),
- closable_device<output>(seq.new_operation(3))
- )
- );
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
-
- // Tee a composite sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- io::compose(
- closable_filter<output>(seq.new_operation(1)),
- closable_device<output>(seq.new_operation(2))
- )
- )
- );
- ch.push(closable_device<output>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a composite bidirectional device with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- io::compose(
- closable_filter<bidirectional>(
- seq.new_operation(2),
- seq.new_operation(3)
- ),
- closable_device<bidirectional>(
- seq.new_operation(1),
- seq.new_operation(4)
- )
- )
- )
- );
- ch.push(closable_device<output>(seq.new_operation(5)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-
- // Tee a composite composite seekable device with a sink
- {
- operation_sequence seq;
- chain<output> ch;
- ch.push(
- io::tee(
- io::compose(
- closable_filter<seekable>(seq.new_operation(1)),
- closable_device<seekable>(seq.new_operation(2))
- )
- )
- );
- ch.push(closable_device<output>(seq.new_operation(3)));
- BOOST_CHECK_NO_THROW(ch.reset());
- BOOST_CHECK_OPERATION_SEQUENCE(seq);
- }
-}
-
 test_suite* init_unit_test_suite(int, char* [])
 {
     test_suite* test = BOOST_TEST_SUITE("execute test");
@@ -1413,13 +647,5 @@
     test->add(BOOST_TEST_CASE(&bidirectional_chain_test));
     test->add(BOOST_TEST_CASE(&seekable_chain_test));
     test->add(BOOST_TEST_CASE(&stream_test));
- test->add(BOOST_TEST_CASE(&combine_test));
- test->add(BOOST_TEST_CASE(&composite_device_test));
- test->add(BOOST_TEST_CASE(&composite_filter_test));
- test->add(BOOST_TEST_CASE(&invert_test));
- test->add(BOOST_TEST_CASE(&restrict_test));
- test->add(BOOST_TEST_CASE(&symmetric_filter_test));
- test->add(BOOST_TEST_CASE(&tee_test));
- test->add(BOOST_TEST_CASE(&tee_composite_test));
     return test;
 }

Modified: branches/proto/v3/libs/iostreams/test/code_converter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/code_converter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/code_converter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/component_access_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/component_access_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/component_access_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/compose_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/compose_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/compose_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -10,6 +11,8 @@
 #include <boost/iostreams/filtering_stream.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
+#include "detail/closable.hpp"
+#include "detail/operation_sequence.hpp"
 #include "detail/filters.hpp"
 #include "detail/temp_file.hpp"
 #include "detail/verification.hpp"
@@ -17,13 +20,14 @@
 // Must come last.
 #include <boost/iostreams/detail/config/disable_warnings.hpp> // BCC 5.x.
 
+using namespace std;
 using namespace boost::iostreams;
+using namespace boost::iostreams::test;
 using boost::unit_test::test_suite;
+namespace io = boost::iostreams;
 
 void read_composite()
 {
- using namespace boost::iostreams::test;
-
     test_file src1, src2;
     filtering_istream first, second;
 
@@ -56,9 +60,6 @@
 
 void write_composite()
 {
- using namespace std;
- using namespace boost::iostreams::test;
-
     temp_file dest1, dest2;
     filtering_ostream out1, out2;
 
@@ -105,11 +106,398 @@
     }
 }
 
+void close_composite_device()
+{
+ // Compose an input filter with a source
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::compose(
+ closable_filter<input>(seq.new_operation(2)),
+ closable_device<input>(seq.new_operation(1))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a bidirectional filter with a source
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(2),
+ seq.new_operation(3)
+ ),
+ closable_device<input>(seq.new_operation(1))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a seekable filter with a source
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(2)),
+ closable_device<input>(seq.new_operation(1))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a dual-use filter with a source
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ operation dummy;
+ ch.push(
+ io::compose(
+ closable_filter<dual_use>(
+ seq.new_operation(2),
+ dummy
+ ),
+ closable_device<input>(seq.new_operation(1))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose an output filter with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::compose(
+ closable_filter<output>(seq.new_operation(1)),
+ closable_device<output>(seq.new_operation(2))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a bidirectional filter with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(2)
+ ),
+ closable_device<output>(seq.new_operation(3))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a seekable filter with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(1)),
+ closable_device<output>(seq.new_operation(2))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a dual-use filter with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ operation dummy;
+ ch.push(
+ io::compose(
+ closable_filter<dual_use>(
+ dummy,
+ seq.new_operation(1)
+ ),
+ closable_device<output>(seq.new_operation(2))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a bidirectional filter with a bidirectional device
+ {
+ operation_sequence seq;
+ chain<bidirectional> ch;
+ ch.push(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(2),
+ seq.new_operation(3)
+ ),
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a seekable filter with a seekable device
+ {
+ operation_sequence seq;
+ chain<seekable> ch;
+ ch.push(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(1)),
+ closable_device<seekable>(seq.new_operation(2))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
+void close_composite_filter()
+{
+ // Compose two input filters
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::compose(
+ closable_filter<input>(seq.new_operation(3)),
+ closable_filter<input>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a bidirectional filter with an input filter
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(3),
+ seq.new_operation(4)
+ ),
+ closable_filter<input>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_MESSAGE(seq.is_success(), seq.message());
+ }
+
+ // Compose a seekable filter with an input filter
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(3)),
+ closable_filter<input>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a dual-use filter with an input filter
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ operation dummy;
+ ch.push(
+ io::compose(
+ closable_filter<dual_use>(
+ seq.new_operation(3),
+ dummy
+ ),
+ closable_filter<input>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose two output filters
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::compose(
+ closable_filter<output>(seq.new_operation(1)),
+ closable_filter<output>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a bidirectional filter with an output filter
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(2)
+ ),
+ closable_filter<output>(seq.new_operation(3))
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(4)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a seekable filter with an output filter
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(1)),
+ closable_filter<output>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose a dual-use filter with an output filter
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ operation dummy;
+ ch.push(
+ io::compose(
+ closable_filter<dual_use>(
+ dummy,
+ seq.new_operation(1)
+ ),
+ closable_filter<output>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose two bidirectional filters
+ {
+ operation_sequence seq;
+ chain<bidirectional> ch;
+ ch.push(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(3),
+ seq.new_operation(4)
+ ),
+ closable_filter<bidirectional>(
+ seq.new_operation(2),
+ seq.new_operation(5)
+ )
+ )
+ );
+ ch.push(
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(6)
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose two seekable filters
+ {
+ operation_sequence seq;
+ chain<seekable> ch;
+ ch.push(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(1)),
+ closable_filter<seekable>(seq.new_operation(2))
+ )
+ );
+ ch.push(closable_device<seekable>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose two dual-use filters for input
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ operation dummy;
+ ch.push(
+ io::compose(
+ closable_filter<dual_use>(
+ seq.new_operation(3),
+ dummy
+ ),
+ closable_filter<dual_use>(
+ seq.new_operation(2),
+ dummy
+ )
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Compose two dual-use filters for output
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ operation dummy;
+ ch.push(
+ io::compose(
+ closable_filter<dual_use>(
+ dummy,
+ seq.new_operation(1)
+ ),
+ closable_filter<dual_use>(
+ dummy,
+ seq.new_operation(2)
+ )
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
 test_suite* init_unit_test_suite(int, char* [])
 {
     test_suite* test = BOOST_TEST_SUITE("line_filter test");
     test->add(BOOST_TEST_CASE(&read_composite));
     test->add(BOOST_TEST_CASE(&write_composite));
+ test->add(BOOST_TEST_CASE(&close_composite_device));
+ test->add(BOOST_TEST_CASE(&close_composite_filter));
     return test;
 }
 

Modified: branches/proto/v3/libs/iostreams/test/copy_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/copy_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/copy_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -68,7 +69,9 @@
         first.open(vector_source(src));
         second.open(vector_sink(dest));
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(first, second) == src.size() && src == dest,
+ boost::iostreams::copy(first, second) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from stream to stream"
         );
     }
@@ -81,7 +84,9 @@
         vector_sink out(dest);
         in.open(vector_source(src));
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(in, out) == src.size() && src == dest,
+ boost::iostreams::copy(in, out) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from stream to indirect sink"
         );
     }
@@ -94,7 +99,9 @@
         vector_ostream out;
         out.open(vector_sink(dest));
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(in, out) == src.size() && src == dest,
+ boost::iostreams::copy(in, out) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from indirect source to stream"
         );
     }
@@ -106,7 +113,9 @@
         vector_source in(src);
         vector_sink out(dest);
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(in, out) == src.size() && src == dest,
+ boost::iostreams::copy(in, out) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from indirect source to indirect sink"
         );
     }
@@ -118,7 +127,9 @@
         array_source in(&src[0], &src[0] + src.size());
         array_sink out(&dest[0], &dest[0] + dest.size());
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(in, out) == src.size() && src == dest,
+ boost::iostreams::copy(in, out) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from direct source to direct sink"
         );
     }
@@ -130,7 +141,9 @@
         array_source in(&src[0], &src[0] + src.size());
         vector_ostream out(dest);
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(in, out) == src.size() && src == dest,
+ boost::iostreams::copy(in, out) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from direct source to indirect sink"
         );
     }
@@ -143,7 +156,9 @@
         array_sink out(&dest[0], &dest[0] + dest.size());
         in.open(vector_source(src));
         BOOST_CHECK_MESSAGE(
- boost::iostreams::copy(in, out) == src.size() && src == dest,
+ boost::iostreams::copy(in, out) ==
+ static_cast<streamsize>(src.size()) &&
+ src == dest,
             "failed copying from indirect source to direct sink"
         );
     }

Modified: branches/proto/v3/libs/iostreams/test/counter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/counter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/counter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/detail/closable.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/closable.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/closable.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,8 +11,9 @@
  *
  * File: libs/iostreams/test/detail/closable.hpp
  * Date: Sun Dec 09 16:12:23 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  */
 
 #ifndef BOOST_IOSTREAMS_TEST_CLOSABLE_HPP_INCLUDED

Modified: branches/proto/v3/libs/iostreams/test/detail/constants.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/constants.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/constants.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/detail/filters.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/filters.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/filters.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/detail/null_padded_codecvt.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/null_padded_codecvt.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/null_padded_codecvt.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/detail/operation_sequence.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/operation_sequence.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/operation_sequence.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,8 +11,9 @@
  *
  * File: libs/iostreams/test/detail/operation_sequence.hpp
  * Date: Mon Dec 10 18:58:19 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  */
 
 #ifndef BOOST_IOSTREAMS_TEST_OPERATION_SEQUENCE_HPP_INCLUDED

Modified: branches/proto/v3/libs/iostreams/test/detail/sequence.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/sequence.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/sequence.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/detail/temp_file.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/temp_file.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/temp_file.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -236,7 +236,8 @@
 // wchar_t is defined as UCS2. The warnings are superfluous as
 // the specialization is never instantitiated with such compilers.
 template<>
-int get_cont_octet_out_count_impl<4>(wchar_t word){
+int get_cont_octet_out_count_impl<4>(wchar_t word)
+{
     if (word < 0x80) {
         return 0;
     }

Modified: branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/utf8_codecvt_facet.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -52,6 +52,7 @@
 
 #include <locale>
 #include <cstddef> // size_t
+#include <cwchar> // mbstate_t
 #include <boost/integer_traits.hpp>
 #include <boost/iostreams/detail/config/wide_streams.hpp>
 #include <boost/iostreams/detail/codecvt_helper.hpp>

Modified: branches/proto/v3/libs/iostreams/test/detail/verification.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/detail/verification.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/detail/verification.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/direct_adapter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/direct_adapter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/direct_adapter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/example_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/example_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/example_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/execute_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/execute_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/execute_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,8 +9,9 @@
  *
  * File: libs/iostreams/test/execute_test.cpp
  * Date: Thu Dec 06 13:21:54 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  */
 
 #include <boost/iostreams/detail/execute.hpp>

Modified: branches/proto/v3/libs/iostreams/test/file_descriptor_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/file_descriptor_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/file_descriptor_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/file_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/file_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/file_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/filtering_stream_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/filtering_stream_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/filtering_stream_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/finite_state_filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/finite_state_filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/finite_state_filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/flush_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/flush_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/flush_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/gzip_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/gzip_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/gzip_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/invert_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/invert_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/invert_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004-5.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -9,14 +10,17 @@
 #include <boost/iostreams/invert.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
+#include "detail/closable.hpp"
 #include "detail/filters.hpp"
+#include "detail/operation_sequence.hpp"
 #include "detail/temp_file.hpp"
 
 using namespace boost::iostreams;
 using namespace boost::iostreams::test;
-using boost::unit_test::test_suite;
+using boost::unit_test::test_suite;
+namespace io = boost::iostreams;
 
-void inverse_test()
+void read_write_test()
 {
 
     test_file test;
@@ -34,10 +38,33 @@
                     file_source(upper.name(), in_mode) ) );
 }
 
+void close_test()
+{
+ // Invert an output filter
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(io::invert(closable_filter<output>(seq.new_operation(2))));
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Invert an input filter
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(io::invert(closable_filter<input>(seq.new_operation(1))));
+ ch.push(closable_device<output>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
 
 test_suite* init_unit_test_suite(int, char* [])
 {
     test_suite* test = BOOST_TEST_SUITE("reverse test");
- test->add(BOOST_TEST_CASE(&inverse_test));
+ test->add(BOOST_TEST_CASE(&read_write_test));
+ test->add(BOOST_TEST_CASE(&close_test));
     return test;
 }

Modified: branches/proto/v3/libs/iostreams/test/large_file_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/large_file_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/large_file_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,8 +8,9 @@
  *
  * File: libs/iostreams/test/large_file_test.cpp
  * Date: Tue Dec 25 21:34:47 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  */
 
 #include <cstdio> // SEEK_SET, etc.
@@ -27,6 +28,7 @@
 #include <boost/lexical_cast.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
+#include <iostream>
 
     // OS-specific headers for low-level i/o.
 
@@ -68,11 +70,11 @@
       0, 8, 0 }; // Seek by 8GB
 const int offset_list_length = sizeof(offset_list) / sizeof(int);
 #ifdef LARGE_FILE_TEMP
- const char* file_name = BOOST_STRINGIZE(LARGE_FILE_TEMP);
- const bool keep_file = false;
+# define BOOST_FILE_NAME BOOST_STRINGIZE(LARGE_FILE_TEMP)
+# define BOOST_KEEP_FILE false
 #else
- const char* file_name = BOOST_STRINGIZE(LARGE_FILE_KEEP);
- const bool keep_file = true;
+# define BOOST_FILE_NAME BOOST_STRINGIZE(LARGE_FILE_KEEP)
+# define BOOST_KEEP_FILE true
 #endif
 
 //------------------Definition of remove_large_file---------------------------//
@@ -81,9 +83,9 @@
 void remove_large_file()
 {
 #ifdef BOOST_IOSTREAMS_WINDOWS
- DeleteFile(TEXT(file_name));
+ DeleteFile(TEXT(BOOST_FILE_NAME));
 #else
- unlink(file_name);
+ unlink(BOOST_FILE_NAME);
 #endif
 }
 
@@ -101,7 +103,7 @@
 
     // Check existence
     WIN32_FIND_DATA info;
- HANDLE hnd = FindFirstFile(TEXT(file_name), &info);
+ HANDLE hnd = FindFirstFile(TEXT(BOOST_FILE_NAME), &info);
     if (hnd == INVALID_HANDLE_VALUE)
         return false;
 
@@ -135,7 +137,7 @@
 
     // Check existence
     struct BOOST_IOSTREAMS_FD_STAT info;
- if (BOOST_IOSTREAMS_FD_STAT(file_name, &info))
+ if (BOOST_IOSTREAMS_FD_STAT(BOOST_FILE_NAME, &info))
         return false;
 
     // Check size
@@ -185,7 +187,7 @@
     for (stream_offset z = 0; z <= 8; ++z) {
         try {
             mapped_file_params params;
- params.path = file_name;
+ params.path = BOOST_FILE_NAME;
             params.offset = z * gigabyte;
             params.length = 1;
             params.mode = BOOST_IOS::out;
@@ -214,7 +216,7 @@
 bool create_large_file()
 {
     // If file exists, has correct size, and is recent, we're done
- if (keep_file && large_file_exists())
+ if (BOOST_KEEP_FILE && large_file_exists())
         return true;
 
 #ifdef BOOST_IOSTREAMS_WINDOWS
@@ -222,7 +224,7 @@
     // Create file
     HANDLE hnd =
         CreateFile(
- TEXT(file_name),
+ TEXT(BOOST_FILE_NAME),
             GENERIC_WRITE,
             0,
             NULL,
@@ -252,7 +254,7 @@
         return false;
     }
 
-# if !BOOST_WORKAROUND(__BORLANDC__, == 0x582)
+# if !defined(__BORLANDC__) || __BORLANDC__ < 0x582 || __BORLANDC__ >= 0x592
 
     // Close handle; all further access is via mapped_file
     CloseHandle(hnd);
@@ -260,7 +262,7 @@
     // Initialize file data
     return map_large_file();
 
-# else // Borland 5.8.2
+# else // Borland >= 5.8.2 and Borland < 5.9.2
 
     // Initialize file data (very slow, even though only 9 writes are required)
     for (stream_offset z = 0; z <= 8; ++z) {
@@ -292,7 +294,7 @@
     CloseHandle(hnd);
         return true;
 
-# endif // Borland 5.8.2 workaround
+# endif // Borland workaround
 #else // #ifdef BOOST_IOSTREAMS_WINDOWS
 
     // Create file
@@ -304,7 +306,7 @@
         S_IRUSR | S_IWUSR |
         S_IRGRP | S_IWGRP |
         S_IROTH | S_IWOTH;
- int fd = BOOST_IOSTREAMS_FD_OPEN(file_name, oflag, pmode);
+ int fd = BOOST_IOSTREAMS_FD_OPEN(BOOST_FILE_NAME, oflag, pmode);
     if (fd == -1)
         return false;
 
@@ -361,9 +363,9 @@
 class large_file {
 public:
     large_file() { exists_ = create_large_file(); }
- ~large_file() { if (!keep_file) remove_large_file(); }
+ ~large_file() { if (!BOOST_KEEP_FILE) remove_large_file(); }
     bool exists() const { return exists_; }
- const char* path() const { return file_name; }
+ const char* path() const { return BOOST_FILE_NAME; }
 private:
     bool exists_;
 };
@@ -394,7 +396,9 @@
     // Prepare file and file descriptor
     large_file large;
     file_descriptor_source file;
- BOOST_REQUIRE_MESSAGE(large.exists(), "failed creating file");
+ BOOST_REQUIRE_MESSAGE(
+ large.exists(), "failed creating file \"" << BOOST_FILE_NAME << '"'
+ );
     BOOST_CHECK_NO_THROW(file.open(large.path(), BOOST_IOS::binary));
 
     // Test seeking using ios_base::beg

Modified: branches/proto/v3/libs/iostreams/test/line_filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/line_filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/line_filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/mapped_file_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/mapped_file_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/mapped_file_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/newline_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/newline_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/newline_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -216,7 +217,6 @@
     in.push(io::newline_checker(io::newline::posix));
     in.push(string_source(::posix));
     BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
- in.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
     BOOST_CHECK(checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -236,7 +236,6 @@
             false, "failed checking for dos line endings"
         );
     }
- in.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
     BOOST_CHECK(!checker->is_posix());
     BOOST_CHECK(checker->is_dos());
@@ -250,7 +249,6 @@
     in.push(io::newline_checker(io::newline::mac));
     in.push(string_source(::mac));
     BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
- in.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
     BOOST_CHECK(!checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -264,7 +262,6 @@
     in.push(io::newline_checker(io::newline::posix));
     in.push(string_source(::no_final_newline));
     BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
- in.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
     BOOST_CHECK(checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -278,7 +275,6 @@
     in.push(io::newline_checker());
     in.push(string_source(::mixed));
     BOOST_CHECK_NO_THROW(io::copy(in, io::null_sink()));
- in.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(in, 0, io::newline_checker);
     BOOST_CHECK(!checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -344,7 +340,6 @@
     out.push(io::newline_checker(io::newline::posix));
     out.push(io::null_sink());
     BOOST_CHECK_NO_THROW(io::copy(string_source(::posix), out))
- out.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
     BOOST_CHECK(checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -358,7 +353,6 @@
     out.push(io::newline_checker(io::newline::dos));
     out.push(io::null_sink());
     BOOST_CHECK_NO_THROW(io::copy(string_source(::dos), out))
- out.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
     BOOST_CHECK(!checker->is_posix());
     BOOST_CHECK(checker->is_dos());
@@ -372,7 +366,6 @@
     out.push(io::newline_checker(io::newline::mac));
     out.push(io::null_sink());
     BOOST_CHECK_NO_THROW(io::copy(string_source(::mac), out))
- out.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
     BOOST_CHECK(!checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -386,7 +379,6 @@
     out.push(io::newline_checker(io::newline::posix));
     out.push(io::null_sink());
     BOOST_CHECK_NO_THROW(io::copy(string_source(::no_final_newline), out))
- out.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
     BOOST_CHECK(checker->is_posix());
     BOOST_CHECK(!checker->is_dos());
@@ -400,7 +392,6 @@
     out.push(io::newline_checker());
     out.push(io::null_sink());
     BOOST_CHECK_NO_THROW(io::copy(string_source(::mixed), out))
- out.pop(); // pop source.
     checker = BOOST_IOSTREAMS_COMPONENT(out, 0, io::newline_checker);
     BOOST_CHECK(!checker->is_posix());
     BOOST_CHECK(!checker->is_dos());

Modified: branches/proto/v3/libs/iostreams/test/null_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/null_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/null_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/operation_sequence_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/operation_sequence_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/operation_sequence_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,14 +4,14 @@
  *
  * See http://www.boost.org/libs/iostreams for documentation.
  *
- * Verifies that the close() member functions of filters and devices
- * are called with the correct arguments in the correct order when
- * they are combined using chains or adapters.
+ * Tests the facilities defined in the header
+ * libs/iostreams/test/detail/operation_sequence.hpp
  *
  * File: libs/iostreams/test/operation_sequence_test.cpp
  * Date: Mon Dec 10 18:58:19 MST 2007
- * Copyright: 2007 CodeRage
+ * Copyright: 2007-2008 CodeRage, LLC
  * Author: Jonathan Turkanis
+ * Contact: turkanis at coderage dot com
  */
 
 #include <stdexcept>

Modified: branches/proto/v3/libs/iostreams/test/pipeline_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/pipeline_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/pipeline_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/putback_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/putback_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/putback_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_bidir_filter_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_bidir_filter_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_bidir_filter_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_bidir_streambuf_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_bidir_streambuf_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_bidir_streambuf_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_bidir_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_bidir_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_bidir_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_input_filter_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_input_filter_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_input_filter_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_input_istream_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_input_istream_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_input_istream_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_input_seq_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_input_seq_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_input_seq_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_input_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_input_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_input_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_seekable_seq_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_seekable_seq_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_seekable_seq_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/read_seekable_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/read_seekable_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/read_seekable_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/regex_filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/regex_filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/regex_filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -144,6 +145,26 @@
             "failed writing to format-string-based regex_filter in chunks"
         );
     }
+
+ {
+ // Note: the ifstream second is placed in a nested scope because
+ // closing and reopening a single ifstream failed for CW 9.4 on Windows.
+
+ // Test reading from a regex filter with no matches; this checks that
+ // Ticket #1139 is fixed
+ boost::regex match_xxx("xxx");
+ test_file test2;
+ filtering_istream
+ first(boost::iostreams::regex_filter(match_xxx, replace_lower()));
+ first.push(file_source(test.name(), in_mode));
+ {
+ ifstream second(test2.name().c_str(), in_mode);
+ BOOST_CHECK_MESSAGE(
+ compare_streams_in_chars(first, second),
+ "failed reading from a regex filter with no matches"
+ );
+ }
+ }
 }
 
 test_suite* init_unit_test_suite(int, char* [])

Modified: branches/proto/v3/libs/iostreams/test/restrict_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/restrict_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/restrict_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,33 +1,43 @@
-// (C) Copyright Jonathan Turkanis 2005.
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2005-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
 // See http://www.boost.org/libs/iostreams for documentation.
 
-// Todo: add tests for direct devices.
+// Allow this file to be used by slice_test.hpp. It is important not to
+// replace BOOST_RESTRICT with BOOST_IOSTREAMS_RESTRICT here, since that
+// would interfere with the oepration of the header
+// <boost/iostreams/restrict.hpp>
+#ifndef BOOST_RESTRICT
+# define BOOST_RESTRICT restrict
+# define BOOST_RESTRICT_HEADER <boost/iostreams/restrict.hpp>
+#endif
+#include BOOST_RESTRICT_HEADER
 
-#include <algorithm> // equal.
+#include <algorithm> // equal.
 #include <cctype>
-#include <iterator> // back_inserter.
+#include <iterator> // back_inserter.
 #include <vector>
 #include <boost/iostreams/copy.hpp>
 #include <boost/iostreams/device/file.hpp>
 #include <boost/iostreams/device/null.hpp>
 #include <boost/iostreams/filtering_stream.hpp>
-#include <boost/iostreams/restrict.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
+#include "detail/closable.hpp"
 #include "detail/constants.hpp"
 #include "detail/filters.hpp"
+#include "detail/operation_sequence.hpp"
 #include "detail/sequence.hpp"
 #include "detail/temp_file.hpp"
 #include "detail/verification.hpp"
 
 using namespace std;
-using namespace boost;
 using namespace boost::iostreams;
 using namespace boost::iostreams::test;
-using boost::unit_test::test_suite;
+using boost::unit_test::test_suite;
+namespace io = boost::iostreams;
 
 const char pad_char = '\n';
 const int small_padding = 50;
@@ -123,8 +133,8 @@
         test_file src2;
         stream_offset off = small_padding,
                                len = data_reps * data_length();
- filtering_istream first( restrict( file_source(src1.name(), in_mode),
- off, len ) );
+ filtering_istream first(
+ BOOST_RESTRICT(file_source(src1.name(), in_mode), off, len));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
             compare_streams_in_chunks(first, second),
@@ -137,8 +147,8 @@
         test_file src2;
         stream_offset off = large_padding,
                                len = data_reps * data_length();
- filtering_istream first( restrict( file_source(src1.name(), in_mode),
- off, len ) );
+ filtering_istream first(
+ BOOST_RESTRICT(file_source(src1.name(), in_mode), off, len));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
             compare_streams_in_chunks(first, second),
@@ -150,7 +160,8 @@
         restricted_test_file src1(small_padding, true);
         test_file src2;
         stream_offset off = small_padding;
- filtering_istream first(restrict(file_source(src1.name(), in_mode), off));
+ filtering_istream first(
+ BOOST_RESTRICT(file_source(src1.name(), in_mode), off));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
             compare_streams_in_chunks(first, second),
@@ -163,7 +174,8 @@
         restricted_test_file src1(large_padding, true);
         test_file src2;
         stream_offset off = large_padding;
- filtering_istream first(restrict(file_source(src1.name(), in_mode), off));
+ filtering_istream first(
+ BOOST_RESTRICT(file_source(src1.name(), in_mode), off));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
             compare_streams_in_chunks(first, second),
@@ -181,7 +193,7 @@
         array_source array_src(&src[0], &src[0] + src.size());
         stream_offset off = small_padding,
                                   len = data_reps * data_length();
- filtering_istream second(restrict(array_src, off, len));
+ filtering_istream second(BOOST_RESTRICT(array_src, off, len));
         BOOST_CHECK_MESSAGE(
             compare_container_and_stream(first, second),
             "failed reading from restriction<Direct>"
@@ -193,7 +205,7 @@
         restricted_test_sequence src(small_padding, true);
         array_source array_src(&src[0], &src[0] + src.size());
         stream_offset off = small_padding;
- filtering_istream second(restrict(array_src, off));
+ filtering_istream second(BOOST_RESTRICT(array_src, off));
         BOOST_CHECK_MESSAGE(
             compare_container_and_stream(first, second),
             "failed reading from half-open restriction<Direct>"
@@ -209,7 +221,7 @@
         stream_offset off = small_padding,
                                len = data_reps * data_length();
         filtering_istream first;
- first.push(restrict(toupper_filter(), off, len));
+ first.push(BOOST_RESTRICT(toupper_filter(), off, len));
         first.push(file_source(src1.name(), in_mode));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
@@ -224,7 +236,7 @@
         stream_offset off = large_padding,
                                len = data_reps * data_length();
         filtering_istream first;
- first.push(restrict(toupper_filter(), off, len));
+ first.push(BOOST_RESTRICT(toupper_filter(), off, len));
         first.push(file_source(src1.name(), in_mode));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
@@ -238,7 +250,7 @@
         uppercase_file src2;
         stream_offset off = small_padding;
         filtering_istream first;
- first.push(restrict(toupper_filter(), off));
+ first.push(BOOST_RESTRICT(toupper_filter(), off));
         first.push(file_source(src1.name(), in_mode));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
@@ -253,7 +265,7 @@
         uppercase_file src2;
         stream_offset off = large_padding;
         filtering_istream first;
- first.push(restrict(toupper_filter(), off));
+ first.push(BOOST_RESTRICT(toupper_filter(), off));
         first.push(file_source(src1.name(), in_mode));
         ifstream second(src2.name().c_str(), in_mode);
         BOOST_CHECK_MESSAGE(
@@ -271,8 +283,8 @@
         restricted_test_file dest2(small_padding);
         stream_offset off = small_padding,
                                    len = data_reps * data_length();
- filtering_ostream out( restrict( file(dest1.name(), BOOST_IOS::binary),
- off, len ) );
+ filtering_ostream out(
+ BOOST_RESTRICT(file(dest1.name(), BOOST_IOS::binary), off, len));
         write_data_in_chunks(out);
         out.reset();
         ifstream first(dest1.name().c_str(), in_mode);
@@ -288,8 +300,8 @@
         restricted_test_file dest2(large_padding);
         stream_offset off = large_padding,
                                    len = data_reps * data_length();
- filtering_ostream out( restrict( file(dest1.name(), BOOST_IOS::binary),
- off, len ) );
+ filtering_ostream out
+ (BOOST_RESTRICT(file(dest1.name(), BOOST_IOS::binary), off, len));
         write_data_in_chunks(out);
         out.reset();
         ifstream first(dest1.name().c_str(), in_mode);
@@ -304,7 +316,8 @@
         restricted_uppercase_file dest1(small_padding, true);
         restricted_test_file dest2(small_padding, true);
         stream_offset off = small_padding;
- filtering_ostream out(restrict(file(dest1.name(), BOOST_IOS::binary), off));
+ filtering_ostream out
+ (BOOST_RESTRICT(file(dest1.name(), BOOST_IOS::binary), off));
         write_data_in_chunks(out);
         out.reset();
         ifstream first(dest1.name().c_str(), in_mode);
@@ -320,7 +333,8 @@
         restricted_uppercase_file dest1(large_padding, true);
         restricted_test_file dest2(large_padding, true);
         stream_offset off = large_padding;
- filtering_ostream out(restrict(file(dest1.name(), BOOST_IOS::binary), off));
+ filtering_ostream out
+ (BOOST_RESTRICT(file(dest1.name(), BOOST_IOS::binary), off));
         write_data_in_chunks(out);
         out.reset();
         ifstream first(dest1.name().c_str(), in_mode);
@@ -343,7 +357,7 @@
         stream_offset off = small_padding,
                                   len = data_reps * data_length();
         array_sink array(&dest1[0], &dest1[0] + dest1.size());
- filtering_ostream out(restrict(array, off, len));
+ filtering_ostream out(BOOST_RESTRICT(array, off, len));
         write_data_in_chunks(out);
         out.reset();
         BOOST_CHECK_MESSAGE(
@@ -353,12 +367,12 @@
     }
 
     {
- vector<char> dest1( data_reps * data_length() + small_padding,
- '\n' );
+ vector<char> dest1(
+ data_reps * data_length() + small_padding, '\n');
         restricted_test_sequence dest2(small_padding, true);
         stream_offset off = small_padding;
         array_sink array(&dest1[0], &dest1[0] + dest1.size());
- filtering_ostream out(restrict(array, off));
+ filtering_ostream out(BOOST_RESTRICT(array, off));
         write_data_in_chunks(out);
         out.reset();
         BOOST_CHECK_MESSAGE(
@@ -376,7 +390,7 @@
         stream_offset off = small_padding,
                                    len = data_reps * data_length();
         filtering_ostream out;
- out.push(restrict(tolower_seekable_filter(), off, len));
+ out.push(BOOST_RESTRICT(tolower_seekable_filter(), off, len));
         out.push(file(dest1.name(), BOOST_IOS::binary));
         write_data_in_chunks(out);
         out.reset();
@@ -394,7 +408,7 @@
         stream_offset off = large_padding,
                                    len = data_reps * data_length();
         filtering_ostream out;
- out.push(restrict(tolower_seekable_filter(), off, len));
+ out.push(BOOST_RESTRICT(tolower_seekable_filter(), off, len));
         out.push(file(dest1.name(), BOOST_IOS::binary));
         write_data_in_chunks(out);
         out.reset();
@@ -411,7 +425,7 @@
         restricted_lowercase_file dest2(small_padding, true);
         stream_offset off = small_padding;
         filtering_ostream out;
- out.push(restrict(tolower_seekable_filter(), off));
+ out.push(BOOST_RESTRICT(tolower_seekable_filter(), off));
         out.push(file(dest1.name(), BOOST_IOS::binary));
         write_data_in_chunks(out);
         out.reset();
@@ -428,7 +442,7 @@
         restricted_lowercase_file dest2(large_padding, true);
         stream_offset off = large_padding;
         filtering_ostream out;
- out.push(restrict(tolower_seekable_filter(), off));
+ out.push(BOOST_RESTRICT(tolower_seekable_filter(), off));
         out.push(file(dest1.name(), BOOST_IOS::binary));
         write_data_in_chunks(out);
         out.reset();
@@ -447,8 +461,8 @@
         restricted_test_file src(large_padding);
         stream_offset off = large_padding,
                                    len = data_reps * data_length();
- filtering_stream<seekable> io( restrict( file(src.name(), BOOST_IOS::binary),
- off, len ) );
+ filtering_stream<seekable> io(
+ BOOST_RESTRICT(file(src.name(), BOOST_IOS::binary), off, len));
         BOOST_CHECK_MESSAGE(
             test_seekable_in_chunks(io),
             "failed seeking within restriction<Device>"
@@ -458,7 +472,8 @@
     {
         restricted_test_file src(large_padding, true);
         stream_offset off = large_padding;
- filtering_stream<seekable> io(restrict(file(src.name(), BOOST_IOS::binary), off));
+ filtering_stream<seekable> io(
+ BOOST_RESTRICT(file(src.name(), BOOST_IOS::binary), off));
         BOOST_CHECK_MESSAGE(
             test_seekable_in_chunks(io),
             "failed seeking within half-open restriction<Device>"
@@ -469,11 +484,12 @@
 void seek_direct_device()
 {
     {
- vector<char> src(data_reps * data_length() + 2 * small_padding, '\n');
+ vector<char> src(
+ data_reps * data_length() + 2 * small_padding, '\n');
         stream_offset off = small_padding,
                                    len = data_reps * data_length();
         array ar(&src[0], &src[0] + src.size());
- filtering_stream<seekable> io(restrict(ar, off, len));
+ filtering_stream<seekable> io(BOOST_RESTRICT(ar, off, len));
         BOOST_CHECK_MESSAGE(
             test_seekable_in_chars(io),
             "failed seeking within restriction<Direct> with small padding"
@@ -481,10 +497,11 @@
     }
 
     {
- vector<char> src(data_reps * data_length() + small_padding, '\n');
+ vector<char> src(
+ data_reps * data_length() + small_padding, '\n');
         stream_offset off = small_padding;
         array ar(&src[0], &src[0] + src.size());
- filtering_stream<seekable> io(restrict(ar, off));
+ filtering_stream<seekable> io(BOOST_RESTRICT(ar, off));
         BOOST_CHECK_MESSAGE(
             test_seekable_in_chars(io),
             "failed seeking within half-open restriction<Direct> "
@@ -498,9 +515,9 @@
     {
         restricted_test_file src(small_padding);
         stream_offset off = large_padding,
- len = data_reps * data_length();
+ len = data_reps * data_length();
         filtering_stream<seekable> io;
- io.push(restrict(identity_seekable_filter(), off, len));
+ io.push(BOOST_RESTRICT(identity_seekable_filter(), off, len));
         io.push(file(src.name(), BOOST_IOS::binary));
         BOOST_CHECK_MESSAGE(
             test_seekable_in_chars(io),
@@ -512,7 +529,7 @@
         restricted_test_file src(small_padding, true);
         stream_offset off = large_padding;
         filtering_stream<seekable> io;
- io.push(restrict(identity_seekable_filter(), off));
+ io.push(BOOST_RESTRICT(identity_seekable_filter(), off));
         io.push(file(src.name(), BOOST_IOS::binary));
         BOOST_CHECK_MESSAGE(
             test_seekable_in_chars(io),
@@ -521,9 +538,140 @@
     }
 }
 
+void close_device()
+{
+ // Restrict a source
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_device<input>(seq.new_operation(1)),
+ 0
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Restrict a seekable device
+ {
+ operation_sequence seq;
+ chain<seekable> ch;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_device<seekable>(seq.new_operation(1)),
+ 0
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Restrict a direct source
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_device<direct_input>(seq.new_operation(1)),
+ 0
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Restrict a direct seekable device
+ {
+ operation_sequence seq;
+ chain<seekable> ch;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_device<direct_seekable>(seq.new_operation(1)),
+ 0
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
+void close_filter()
+{
+ // Restrict an input filter
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_filter<input>(seq.new_operation(2)),
+ 0
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Restrict a seekable filter
+ {
+ operation_sequence seq;
+ chain<seekable> ch;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_filter<seekable>(seq.new_operation(1)),
+ 0
+ )
+ );
+ ch.push(closable_device<seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Restrict a dual_use filter for input
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ operation dummy;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_filter<dual_use>(
+ seq.new_operation(2),
+ dummy
+ ),
+ 0
+ )
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Restrict a dual_use filter for output
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ operation dummy;
+ ch.push(
+ io::BOOST_RESTRICT(
+ closable_filter<dual_use>(
+ dummy,
+ seq.new_operation(1)
+ ),
+ 0
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
 test_suite* init_unit_test_suite(int, char* [])
 {
- test_suite* test = BOOST_TEST_SUITE("restrict test");
+ test_suite* test =
+ BOOST_TEST_SUITE(BOOST_STRINGIZE(BOOST_RESTRICT) " test");
     test->add(BOOST_TEST_CASE(&read_device));
     test->add(BOOST_TEST_CASE(&read_direct_device));
     test->add(BOOST_TEST_CASE(&read_filter));
@@ -532,5 +680,7 @@
     test->add(BOOST_TEST_CASE(&write_filter));
     test->add(BOOST_TEST_CASE(&seek_device));
     test->add(BOOST_TEST_CASE(&seek_direct_device));
+ test->add(BOOST_TEST_CASE(&close_device));
+ test->add(BOOST_TEST_CASE(&close_filter));
     return test;
 }

Modified: branches/proto/v3/libs/iostreams/test/seek_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/seek_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/seek_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/seekable_file_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/seekable_file_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/seekable_file_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/seekable_filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/seekable_filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/seekable_filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/sequence_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/sequence_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/sequence_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2007
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/stdio_filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/stdio_filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/stdio_filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/symmetric_filter_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/symmetric_filter_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/symmetric_filter_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
@@ -10,7 +11,9 @@
 #include <boost/iostreams/filter/test.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
+#include "detail/closable.hpp"
 #include "./detail/constants.hpp"
+#include "detail/operation_sequence.hpp"
 #include "./detail/temp_file.hpp"
 #include "./detail/verification.hpp"
 
@@ -19,7 +22,8 @@
 
 using namespace boost::iostreams;
 using namespace boost::iostreams::test;
-using boost::unit_test::test_suite;
+using boost::unit_test::test_suite;
+namespace io = boost::iostreams;
 
 // Note: The filter is given an internal buffer -- unnecessary in this simple
 // case -- to stress test symmetric_filter.
@@ -77,7 +81,7 @@
 typedef symmetric_filter<toupper_symmetric_filter_impl>
         toupper_symmetric_filter;
 
-void read_symmetric_filter_test()
+void read_symmetric_filter()
 {
     test_file test;
     uppercase_file upper;
@@ -88,7 +92,7 @@
     );
 }
 
-void write_symmetric_filter_test()
+void write_symmetric_filter()
 {
     test_file test;
     uppercase_file upper;
@@ -99,11 +103,41 @@
     );
 }
 
+void close_symmetric_filter()
+{
+ // Test input
+ {
+ operation_sequence seq;
+ chain<input> ch;
+ ch.push(
+ io::symmetric_filter<closable_symmetric_filter>
+ (0, seq.new_operation(2))
+ );
+ ch.push(closable_device<input>(seq.new_operation(1)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Test output
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::symmetric_filter<closable_symmetric_filter>
+ (0, seq.new_operation(1))
+ );
+ ch.push(closable_device<output>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
 test_suite* init_unit_test_suite(int, char* [])
 {
     test_suite* test = BOOST_TEST_SUITE("symmetric_filter test");
- test->add(BOOST_TEST_CASE(&read_symmetric_filter_test));
- test->add(BOOST_TEST_CASE(&write_symmetric_filter_test));
+ test->add(BOOST_TEST_CASE(&read_symmetric_filter));
+ test->add(BOOST_TEST_CASE(&write_symmetric_filter));
+ test->add(BOOST_TEST_CASE(&close_symmetric_filter));
     return test;
 }
 

Modified: branches/proto/v3/libs/iostreams/test/tee_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/tee_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/tee_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,15 +1,19 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 
 // See http://www.boost.org/libs/iostreams for documentation.
 
 #include <fstream>
+#include <boost/iostreams/compose.hpp>
 #include <boost/iostreams/device/file.hpp>
 #include <boost/iostreams/filtering_stream.hpp>
 #include <boost/iostreams/tee.hpp>
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test.hpp>
+#include "detail/closable.hpp"
+#include "detail/operation_sequence.hpp"
 #include "detail/temp_file.hpp"
 #include "detail/verification.hpp"
 
@@ -18,8 +22,9 @@
 using namespace boost::iostreams;
 using namespace boost::iostreams::test;
 using boost::unit_test::test_suite;
+namespace io = boost::iostreams;
 
-void tee_test()
+void read_write_test()
 {
     {
         temp_file dest1;
@@ -78,9 +83,229 @@
     }
 }
 
+void close_test()
+{
+ // Note: The implementation of tee_device closes the first
+ // sink before the second
+
+ // Tee two sinks (Borland <= 5.8.2 needs a little help compiling this case,
+ // but it executes the closing algorithm correctly)
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ closable_device<output>(seq.new_operation(1)),
+ closable_device<
+ #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
+ borland_output
+ #else
+ output
+ #endif
+ >(seq.new_operation(2))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee two bidirectional devices
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(2)
+ ),
+ closable_device<bidirectional>(
+ seq.new_operation(3),
+ seq.new_operation(4)
+ )
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee two seekable devices
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ closable_device<seekable>(seq.new_operation(1)),
+ closable_device<seekable>(seq.new_operation(2))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(io::tee(closable_device<output>(seq.new_operation(1))));
+ ch.push(closable_device<output>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a bidirectional device
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(2)
+ )
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a seekable device
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(io::tee(closable_device<seekable>(seq.new_operation(1))));
+ ch.push(closable_device<seekable>(seq.new_operation(2)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
+void tee_composite_test()
+{
+ // This test is probably redundant, given the above test and the tests in
+ // compose_test.cpp, but it verifies that ticket #1002 is fixed
+
+ // Tee a composite sink with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ io::compose(
+ closable_filter<output>(seq.new_operation(1)),
+ closable_device<output>(seq.new_operation(2))
+ ),
+ closable_device<output>(seq.new_operation(3))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a composite bidirectional device with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(2),
+ seq.new_operation(3)
+ ),
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ ),
+ closable_device<output>(seq.new_operation(5))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a composite composite seekable device with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(1)),
+ closable_device<seekable>(seq.new_operation(2))
+ ),
+ closable_device<output>(seq.new_operation(3))
+ )
+ );
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+
+ // Tee a composite sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ io::compose(
+ closable_filter<output>(seq.new_operation(1)),
+ closable_device<output>(seq.new_operation(2))
+ )
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a composite bidirectional device with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ io::compose(
+ closable_filter<bidirectional>(
+ seq.new_operation(2),
+ seq.new_operation(3)
+ ),
+ closable_device<bidirectional>(
+ seq.new_operation(1),
+ seq.new_operation(4)
+ )
+ )
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(5)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+
+ // Tee a composite composite seekable device with a sink
+ {
+ operation_sequence seq;
+ chain<output> ch;
+ ch.push(
+ io::tee(
+ io::compose(
+ closable_filter<seekable>(seq.new_operation(1)),
+ closable_device<seekable>(seq.new_operation(2))
+ )
+ )
+ );
+ ch.push(closable_device<output>(seq.new_operation(3)));
+ BOOST_CHECK_NO_THROW(ch.reset());
+ BOOST_CHECK_OPERATION_SEQUENCE(seq);
+ }
+}
+
 test_suite* init_unit_test_suite(int, char* [])
 {
     test_suite* test = BOOST_TEST_SUITE("tee test");
- test->add(BOOST_TEST_CASE(&tee_test));
+ test->add(BOOST_TEST_CASE(&read_write_test));
+ test->add(BOOST_TEST_CASE(&close_test));
     return test;
 }

Modified: branches/proto/v3/libs/iostreams/test/wide_stream_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/wide_stream_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/wide_stream_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_bidir_filter_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_bidir_filter_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_bidir_filter_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_bidir_streambuf_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_bidir_streambuf_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_bidir_streambuf_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_bidir_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_bidir_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_bidir_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_output_filter_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_output_filter_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_output_filter_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_output_iterator_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_output_iterator_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_output_iterator_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_output_ostream_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_output_ostream_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_output_ostream_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_output_seq_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_output_seq_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_output_seq_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_output_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_output_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_output_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_seekable_seq_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_seekable_seq_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_seekable_seq_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/write_seekable_test.hpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/write_seekable_test.hpp (original)
+++ branches/proto/v3/libs/iostreams/test/write_seekable_test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iostreams/test/zlib_test.cpp
==============================================================================
--- branches/proto/v3/libs/iostreams/test/zlib_test.cpp (original)
+++ branches/proto/v3/libs/iostreams/test/zlib_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,5 @@
-// (C) Copyright Jonathan Turkanis 2004
+// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
+// (C) Copyright 2004-2007 Jonathan Turkanis
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)
 

Modified: branches/proto/v3/libs/iterator/doc/index.html
==============================================================================
--- branches/proto/v3/libs/iterator/doc/index.html (original)
+++ branches/proto/v3/libs/iterator/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -40,7 +40,7 @@
 <col class="field-body" />
 <tbody valign="top">
 <tr class="field"><th class="field-name">Abstract:</th><td class="field-body">The Boost Iterator Library contains two parts. The first
-is a system of <a class="reference external" href="../../../more/generic_programming.html#concept">concepts</a> which extend the C++ standard
+is a system of <a class="reference external" href="http://www.boost.org/more/generic_programming.html#concept">concepts</a> which extend the C++ standard
 iterator requirements. The second is a framework of
 components for building iterators based on these
 extended concepts and includes several useful iterator
@@ -179,7 +179,7 @@
 captures the core operations of your iterator. In the new library
 design, you'll move those same core operations into the body of the
 iterator class itself. If you were writing a family of iterators,
-you probably wrote a <a class="reference external" href="../../../more/generic_programming.html#type_generator">type generator</a> to build the
+you probably wrote a <a class="reference external" href="http://www.boost.org/more/generic_programming.html#type_generator">type generator</a> to build the
 <tt class="docutils literal"><span class="pre">iterator_adaptor</span></tt> specialization you needed; in the new library
 design you don't need a type generator (though may want to keep it
 around as a compatibility aid for older code) because, due to the

Modified: branches/proto/v3/libs/iterator/doc/index.rst
==============================================================================
--- branches/proto/v3/libs/iterator/doc/index.rst (original)
+++ branches/proto/v3/libs/iterator/doc/index.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -43,7 +43,7 @@
            The components of the Boost Iterator Library replace the
            older Boost Iterator Adaptor Library.
 
-.. _concepts: ../../../more/generic_programming.html#concept
+.. _concepts: http://www.boost.org/more/generic_programming.html#concept
 
 .. contents:: **Table of Contents**
 
@@ -271,7 +271,7 @@
 or even override the iterator functionality provided by the
 library.
 
-.. _`type generator`: ../../../more/generic_programming.html#type_generator
+.. _`type generator`: http://www.boost.org/more/generic_programming.html#type_generator
 
 If you're looking for the old ``projection_iterator`` component,
 its functionality has been merged into ``transform_iterator``: as

Modified: branches/proto/v3/libs/iterator/doc/iterator_facade.html
==============================================================================
--- branches/proto/v3/libs/iterator/doc/iterator_facade.html (original)
+++ branches/proto/v3/libs/iterator/doc/iterator_facade.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -866,7 +866,7 @@
 <p>In this section we'll walk through the implementation of a few
 iterators using <tt class="docutils literal"><span class="pre">iterator_facade</span></tt>, based around the simple
 example of a linked list of polymorphic objects. This example was
-inspired by a <a class="reference external" href="http://thread.gmane.org/gmane.comp.lib.boost.user/5100">posting</a> by Keith Macdonald on the <a class="reference external" href="../../../more/mailing_lists.htm#users">Boost-Users</a>
+inspired by a <a class="reference external" href="http://thread.gmane.org/gmane.comp.lib.boost.user/5100">posting</a> by Keith Macdonald on the <a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#users">Boost-Users</a>
 mailing list.</p>
 <div class="section" id="the-problem">
 <h2><a class="toc-backref" href="#id32">The Problem</a></h2>

Modified: branches/proto/v3/libs/iterator/doc/iterator_facade_tutorial.rst
==============================================================================
--- branches/proto/v3/libs/iterator/doc/iterator_facade_tutorial.rst (original)
+++ branches/proto/v3/libs/iterator/doc/iterator_facade_tutorial.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,7 +8,7 @@
 inspired by a `posting`__ by Keith Macdonald on the `Boost-Users`_
 mailing list.
 
-.. _`Boost-Users`: ../../../more/mailing_lists.htm#users
+.. _`Boost-Users`: http://www.boost.org/more/mailing_lists.htm#users
 
 __ http://thread.gmane.org/gmane.comp.lib.boost.user/5100
 

Modified: branches/proto/v3/libs/iterator/doc/quickbook/facade_tutorial.qbk
==============================================================================
--- branches/proto/v3/libs/iterator/doc/quickbook/facade_tutorial.qbk (original)
+++ branches/proto/v3/libs/iterator/doc/quickbook/facade_tutorial.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,7 +7,7 @@
 inspired by a
 [@http://thread.gmane.org/gmane.comp.lib.boost.user/5100 `posting`]
 by Keith Macdonald on the
-[@../../../more/mailing_lists.htm#users `Boost-Users`]
+[@http://www.boost.org/more/mailing_lists.htm#users `Boost-Users`]
 mailing list.
 
 

Modified: branches/proto/v3/libs/iterator/doc/quickbook/iterator.qbk
==============================================================================
--- branches/proto/v3/libs/iterator/doc/quickbook/iterator.qbk (original)
+++ branches/proto/v3/libs/iterator/doc/quickbook/iterator.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,7 +32,7 @@
 
 [section:intro Introduction]
 
-[def _concepts_ [@../../more/generic_programming.html#concept concepts]]
+[def _concepts_ [@http://www.boost.org/more/generic_programming.html#concept concepts]]
 
 The Boost Iterator Library contains two parts. The first
 is a system of _concepts_ which extend the C++ standard
@@ -203,7 +203,7 @@
 
 [section:upgrading Upgrading from the old Boost Iterator Adaptor Library]
 
-[def _type_generator_ [@../../more/generic_programming.html#type_generator type generator]]
+[def _type_generator_ [@http://www.boost.org/more/generic_programming.html#type_generator type generator]]
 
 If you have been using the old Boost Iterator Adaptor library to
 implement iterators, you probably wrote a `Policies` class which

Modified: branches/proto/v3/libs/lambda/doc/lambda.xml
==============================================================================
--- branches/proto/v3/libs/lambda/doc/lambda.xml (original)
+++ branches/proto/v3/libs/lambda/doc/lambda.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3191,7 +3191,7 @@
 
 
 
-<appendix>
+<section>
 <title>Rationale for some of the design decisions</title>
 
 <section id="lambda.why_weak_arity">
@@ -3256,7 +3256,7 @@
 
 </section>
 
-</appendix>
+</section>
 
 
 

Modified: branches/proto/v3/libs/libraries.htm
==============================================================================
--- branches/proto/v3/libs/libraries.htm (original)
+++ branches/proto/v3/libs/libraries.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,29 +8,32 @@
 <meta name="ProgId" content="FrontPage.Editor.Document">
 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
 <title>Boost Libraries</title>
+<link rel="stylesheet" href="../doc/html/boostbook.css" type="text/css" />
 </head>
 
 <body bgcolor="#FFFFFF" text="#000000">
 
-<table border="1" cellpadding="2" bgcolor="#007F7F">
+ <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
     <tr>
- <td bgcolor="#FFFFFF">
- <img src="../boost.png"
- alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td><a href="../index.htm"><font color="#FFFFFF" size="4"
- face="Arial">Home</font></a></td>
- <td><a href="libraries.htm"><font color="#FFFFFF"
- size="4" face="Arial">Libraries</font></a></td>
- <td><a href="../people/people.htm"><font color="#FFFFFF"
- size="4" face="Arial">People</font></a></td>
- <td><a href="../more/faq.htm"><font color="#FFFFFF"
- size="4" face="Arial">FAQ</font></a></td>
- <td><a href="../more/index.htm"><font color="#FFFFFF"
- size="4" face="Arial">More</font></a></td>
+ <td width="277">
+ <a href="../index.html">
+ <img src="../boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"></a></td>
+ <td width="337" align="middle">
+ <font size="7">Libraries</font>
+ </td>
     </tr>
-</table>
+ </table>
 
-<h1>Boost Libraries and Documentation</h1>
+ <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" bgcolor="#D7EEFF" height="26">
+ <tr>
+ <td height="16">Getting Started&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Release History&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Tools &nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Web Site&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Community&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; More</td>
+ </tr>
+ </table>
 
 <dl>
   <dt>Libraries Listed Alphabetically</dt>
@@ -60,7 +63,7 @@
   <dt>Libraries Retired from Boost</dt>
 </dl>
 
-<p>See Compiler Status
+<p>See Compiler Status
  page to find out what library works with which compiler.<br>
 See Getting Started page to find out
 how to download, build, and install the libraries.</p>
@@ -97,6 +100,8 @@
     <li>call_traits -
         Defines types for passing parameters, from John Maddock,
         Howard Hinnant, et al.</li>
+ <li>circular_buffer - STL compliant
+ container also known as ring or cyclic buffer, from Jan Gaspar.</li>
     <li>compatibility - Help for
       non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens
       Maurer.</li>
@@ -183,12 +188,12 @@
     <li>multi_index - Containers with
     multiple STL-compatible access interfaces, from Joaqu&iacute;n M L&oacute;pez
     Mu&ntilde;oz.</li>
- <li>numeric/conversion - Optimized Policy-based Numeric Conversions,
+ <li>numeric/conversion - Optimized Policy-based Numeric Conversions,
         from Fernando Cacciola.</li>
     <li>operators - Templates
         ease arithmetic classes and iterators, from Dave Abrahams
         and Jeremy Siek.</li>
- <li>optional - Discriminated-union
+ <li>optional - Discriminated-union
     wrapper for optional values, from Fernando Cacciola.</li>
 
     <li><span class="library"><a href=
@@ -248,9 +253,6 @@
     <li>system - Operating system support,
     including the diagnostics support that will be part of the C++0x standard
     library, from Beman Dawes.</li>
- <li>system - Operating system support,
- including the diagnostics support that will be part of the C++0x standard
- library, from Beman Dawes.</li>
     <li>test - Support for simple program testing,
     full unit testing, and for program
       execution monitoring, from Gennadiy Rozental.</li>
@@ -273,6 +275,7 @@
         Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.</li>
     <li>uBLAS - Basic linear algebra
     for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.</li>
+ <li>unordered - unordered associative containers, from Daniel James.</li>
     <li>utility - Class <b>noncopyable</b>
         plus <b>checked_delete()</b>, <b>checked_array_delete()</b>, <b>next(),</b>&nbsp;
       <b>prior()</b>
@@ -340,6 +343,7 @@
     <li>property map
         - Concepts defining interfaces which map key objects to
         value objects, from Jeremy Siek.</li>
+ <li>unordered - unordered associative containers, from Daniel James.</li>
     <li>variant - Safe, generic, stack-based
     discriminated union container, from Eric Friedman and Itay Maman.</li>
 </ul>
@@ -489,7 +493,7 @@
         calculation, and collection of statistical accumulators, from Eric Niebler.</li>
     <li>math - Several contributions in the
     domain of mathematics, from various authors.</li>
- <li>numeric/conversion - Optimized Policy-based Numeric Conversions,
+ <li>numeric/conversion - Optimized Policy-based Numeric Conversions,
         from Fernando Cacciola.</li>
     <li>integer - Headers to ease
         dealing with integral types.</li>
@@ -638,7 +642,7 @@
         Hinnant, et al.</li>
     <li>conversion - Polymorphic and lexical casts, from Dave Abrahams and
         Kevlin Henney.</li>
- <li>numeric/conversion - Optimized Policy-based Numeric Conversions,
+ <li>numeric/conversion - Optimized Policy-based Numeric Conversions,
         from Fernando Cacciola.</li>
     <li>crc - Cyclic Redundancy Code, from Daryle
       Walker.</li>
@@ -646,7 +650,7 @@
     <li>filesystem - Portable paths,
     iteration over directories, and other useful filesystem operations, from
     Beman Dawes.</li>
- <li>optional - Discriminated-union
+ <li>optional - Discriminated-union
     wrapper for optional values, from Fernando Cacciola.</li>
     <li>program_options - Access to configuration
         data given on command line, in config files and other sources, from Vladimir Prus.</li>
@@ -700,12 +704,12 @@
 
 <p>Revised
 <!--webbot bot="Timestamp" s-type="EDITED"
-s-format="%d %b %Y" startspan -->01 Nov 2007<!--webbot bot="Timestamp" endspan i-checksum="15262" --></p>
+s-format="%d %b %Y" startspan -->23 Feb 2008<!--webbot bot="Timestamp" endspan i-checksum="14408" --></p>
 
-<p>? Copyright Beman Dawes 2000-2004</p>
+<p>&copy; Copyright Beman Dawes 2000-2004</p>
 <p>Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt
-or copy at www.boost.org/LICENSE_1_0.txt)
+(See file LICENSE_1_0.txt
+or www.boost.org/LICENSE_1_0.txt)
 </p>
 
 </body>

Modified: branches/proto/v3/libs/logic/test/tribool_io_test.cpp
==============================================================================
--- branches/proto/v3/libs/logic/test/tribool_io_test.cpp (original)
+++ branches/proto/v3/libs/logic/test/tribool_io_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,6 +8,7 @@
 #include <sstream>
 #include <string>
 #include <iostream>
+#include <ios> // for std::boolalpha
 
 #ifndef BOOST_NO_STD_LOCALE
 # include <locale>

Modified: branches/proto/v3/libs/maintainers.txt
==============================================================================
--- branches/proto/v3/libs/maintainers.txt (original)
+++ branches/proto/v3/libs/maintainers.txt 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,6 +8,7 @@
 # maintainers. When making changes to this file, please be careful
 # to closely follow the format of the library.
 
+accumulators Eric Niebler <eric -at- boost-consulting.com>
 algorithm/minmax Herve Bronnimann <hbr -at- poly.edu>
 algorithm/string Pavol Droba <droba -at- topmail.sk>
 any Alexander Nasonov <alexander.nasonov -at- gmail.com>
@@ -75,6 +76,7 @@
 tuple Jaakko Jarvi <jarvi -at- cs.tamu.edu>
 type_traits John Maddock <john -at- johnmaddock.co.uk>
 typeof Arkadiy Vertleyb <vertleyb -at- hotmail.com>, Peder Holt <peder.holt -at- gmail.com>
+unordered Daniel James <daniel_james -at- fmail.co.uk>
 utility
 utility/enable_if Jaakko Jarvi <jarvi -at- cs.tamu.edu>, Jeremiah Willcock <jewillco -at- osl.iu.edu>
 variant Eric Friedman <ericbrandon -at- gmail.com>

Modified: branches/proto/v3/libs/math/doc/complex/complex-tr1.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/complex-tr1.qbk (original)
+++ branches/proto/v3/libs/math/doc/complex/complex-tr1.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,6 +20,10 @@
 [def __te '''2&#x03B5;''']
 [template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical Report on C++ Library Extensions]]
 
+This manual is also available in
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/complex-tr1.pdf
+printer friendly PDF format].
+
 [section:inverse_complex Complex Number Inverse Trigonometric Functions]
 
 The following complex number algorithms are the inverses of trigonometric functions currently

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,23 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Complex
- Number Inverse Trigonometric Functions</title>
+<title>Complex Number Inverse Trigonometric Functions</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../index.html" title="Complex Number TR1 Algorithms">
 <link rel="up" href="../index.html" title="Complex Number TR1 Algorithms">
 <link rel="prev" href="../index.html" title="Complex Number TR1 Algorithms">
-<link rel="next" href="inverse_complex/implementation.html" title="
- Implementation and Accuracy">
+<link rel="next" href="inverse_complex/implementation.html" title="Implementation and Accuracy">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,9 +24,9 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="complex_number_tr1_algorithms.inverse_complex"></a><a href="inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions"> Complex
- Number Inverse Trigonometric Functions</a></h2></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex"></a><a href="inverse_complex.html" title="Complex Number Inverse Trigonometric Functions"> Complex
+ Number Inverse Trigonometric Functions</a>
+</h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="inverse_complex/implementation.html">
       Implementation and Accuracy</a></span></dt>
@@ -55,10 +53,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acos.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acos.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acos.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- acos</title>
+<title>acos</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="asin.html" title="
- asin">
-<link rel="next" href="atan.html" title="
- atan">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="asin.html" title="asin">
+<link rel="next" href="atan.html" title="atan">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,38 +24,37 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.acos"></a><a href="acos.html" title="
- acos">
- acos</a></h3></div></div></div>
-<a name="complex_number_tr1_algorithms.inverse_complex.acos.header_"></a><h4>
-<a name="id385563"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.acos"></a><a href="acos.html" title="acos">
+ acos</a>
+</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.acos.header_"></a><h5>
+<a name="id440285"></a>
         <a href="acos.html#complex_number_tr1_algorithms.inverse_complex.acos.header_">Header:</a>
- </h4>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">acos</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">acos</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
-<a name="complex_number_tr1_algorithms.inverse_complex.acos.synopsis_"></a><h4>
-<a name="id386169"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.acos.synopsis_"></a><h5>
+<a name="id440378"></a>
         <a href="acos.html#complex_number_tr1_algorithms.inverse_complex.acos.synopsis_">Synopsis:</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">acos</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><b>Effects: </b></span> returns the inverse cosine of
+ <span class="bold"><strong>Effects: </strong></span> returns the inverse cosine of
         the complex number z.
       </p>
 <p>
- <span class="bold"><b>Formula: </b></span> <span class="inlinemediaobject"><img src="../../../../images/acos.png" alt="acos"></span>
+ <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../../images/acos.png" alt="acos"></span>
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acosh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acosh.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/acosh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- acosh</title>
+<title>acosh</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="asinh.html" title="
- asinh">
-<link rel="next" href="atanh.html" title="
- atanh">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="asinh.html" title="asinh">
+<link rel="next" href="atanh.html" title="atanh">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,38 +24,37 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.acosh"></a><a href="acosh.html" title="
- acosh">
- acosh</a></h3></div></div></div>
-<a name="complex_number_tr1_algorithms.inverse_complex.acosh.header_"></a><h4>
-<a name="id456332"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.acosh"></a><a href="acosh.html" title="acosh">
+ acosh</a>
+</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.acosh.header_"></a><h5>
+<a name="id490159"></a>
         <a href="acosh.html#complex_number_tr1_algorithms.inverse_complex.acosh.header_">Header:</a>
- </h4>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
-<a name="complex_number_tr1_algorithms.inverse_complex.acosh.synopsis_"></a><h4>
-<a name="id456428"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.acosh.synopsis_"></a><h5>
+<a name="id490252"></a>
         <a href="acosh.html#complex_number_tr1_algorithms.inverse_complex.acosh.synopsis_">Synopsis:</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><b>Effects: </b></span> returns the inverse hyperbolic
+ <span class="bold"><strong>Effects: </strong></span> returns the inverse hyperbolic
         cosine of the complex number z.
       </p>
 <p>
- <span class="bold"><b>Formula: </b></span> <span class="inlinemediaobject"><img src="../../../../images/acosh.png" alt="acosh"></span>
+ <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../../images/acosh.png" alt="acosh"></span>
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asin.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asin.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asin.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- asin</title>
+<title>asin</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="implementation.html" title="
- Implementation and Accuracy">
-<link rel="next" href="acos.html" title="
- acos">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="implementation.html" title="Implementation and Accuracy">
+<link rel="next" href="acos.html" title="acos">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,38 +24,37 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.asin"></a><a href="asin.html" title="
- asin">
- asin</a></h3></div></div></div>
-<a name="complex_number_tr1_algorithms.inverse_complex.asin.header_"></a><h4>
-<a name="id385821"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.asin"></a><a href="asin.html" title="asin">
+ asin</a>
+</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.asin.header_"></a><h5>
+<a name="id436308"></a>
         <a href="asin.html#complex_number_tr1_algorithms.inverse_complex.asin.header_">Header:</a>
- </h4>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">asin</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">asin</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
-<a name="complex_number_tr1_algorithms.inverse_complex.asin.synopsis_"></a><h4>
-<a name="id385353"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.asin.synopsis_"></a><h5>
+<a name="id436401"></a>
         <a href="asin.html#complex_number_tr1_algorithms.inverse_complex.asin.synopsis_">Synopsis:</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">asin</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><b>Effects: </b></span> returns the inverse sine of the
+ <span class="bold"><strong>Effects: </strong></span> returns the inverse sine of the
         complex number z.
       </p>
 <p>
- <span class="bold"><b>Formula: </b></span> <span class="inlinemediaobject"><img src="../../../../images/asin.png" alt="asin"></span>
+ <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../../images/asin.png" alt="asin"></span>
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asinh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asinh.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/asinh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- asinh</title>
+<title>asinh</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="atan.html" title="
- atan">
-<link rel="next" href="acosh.html" title="
- acosh">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="atan.html" title="atan">
+<link rel="next" href="acosh.html" title="acosh">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,38 +24,37 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.asinh"></a><a href="asinh.html" title="
- asinh">
- asinh</a></h3></div></div></div>
-<a name="complex_number_tr1_algorithms.inverse_complex.asinh.header_"></a><h4>
-<a name="id456027"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.asinh"></a><a href="asinh.html" title="asinh">
+ asinh</a>
+</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.asinh.header_"></a><h5>
+<a name="id436272"></a>
         <a href="asinh.html#complex_number_tr1_algorithms.inverse_complex.asinh.header_">Header:</a>
- </h4>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">asinh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">asinh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
-<a name="complex_number_tr1_algorithms.inverse_complex.asinh.synopsis_"></a><h4>
-<a name="id456122"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.asinh.synopsis_"></a><h5>
+<a name="id489955"></a>
         <a href="asinh.html#complex_number_tr1_algorithms.inverse_complex.asinh.synopsis_">Synopsis:</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><b>Effects: </b></span> returns the inverse hyperbolic
+ <span class="bold"><strong>Effects: </strong></span> returns the inverse hyperbolic
         sine of the complex number z.
       </p>
 <p>
- <span class="bold"><b>Formula: </b></span> <span class="inlinemediaobject"><img src="../../../../images/asinh.png" alt="asinh"></span>
+ <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../../images/asinh.png" alt="asinh"></span>
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atan.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atan.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atan.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- atan</title>
+<title>atan</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="acos.html" title="
- acos">
-<link rel="next" href="asinh.html" title="
- asinh">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="acos.html" title="acos">
+<link rel="next" href="asinh.html" title="asinh">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,38 +24,37 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.atan"></a><a href="atan.html" title="
- atan">
- atan</a></h3></div></div></div>
-<a name="complex_number_tr1_algorithms.inverse_complex.atan.header_"></a><h4>
-<a name="id386378"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.atan"></a><a href="atan.html" title="atan">
+ atan</a>
+</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.atan.header_"></a><h5>
+<a name="id435974"></a>
         <a href="atan.html#complex_number_tr1_algorithms.inverse_complex.atan.header_">Header:</a>
- </h4>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">atan</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">atan</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
-<a name="complex_number_tr1_algorithms.inverse_complex.atan.synopsis_"></a><h4>
-<a name="id386474"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.atan.synopsis_"></a><h5>
+<a name="id436067"></a>
         <a href="atan.html#complex_number_tr1_algorithms.inverse_complex.atan.synopsis_">Synopsis:</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">atan</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><b>Effects: </b></span> returns the inverse tangent of
+ <span class="bold"><strong>Effects: </strong></span> returns the inverse tangent of
         the complex number z.
       </p>
 <p>
- <span class="bold"><b>Formula: </b></span> <span class="inlinemediaobject"><img src="../../../../images/atan.png" alt="atan"></span>
+ <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../../images/atan.png" alt="atan"></span>
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atanh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atanh.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/atanh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,15 +1,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- atanh</title>
+<title>atanh</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="acosh.html" title="
- acosh">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="acosh.html" title="acosh">
 <link rel="next" href="history.html" title="History">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -17,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,38 +24,37 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.atanh"></a><a href="atanh.html" title="
- atanh">
- atanh</a></h3></div></div></div>
-<a name="complex_number_tr1_algorithms.inverse_complex.atanh.header_"></a><h4>
-<a name="id456638"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.atanh"></a><a href="atanh.html" title="atanh">
+ atanh</a>
+</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.atanh.header_"></a><h5>
+<a name="id490458"></a>
         <a href="atanh.html#complex_number_tr1_algorithms.inverse_complex.atanh.header_">Header:</a>
- </h4>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">atanh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">complex</span><span class="special">/</span><span class="identifier">atanh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
-<a name="complex_number_tr1_algorithms.inverse_complex.atanh.synopsis_"></a><h4>
-<a name="id456734"></a>
+<a name="complex_number_tr1_algorithms.inverse_complex.atanh.synopsis_"></a><h5>
+<a name="id490552"></a>
         <a href="atanh.html#complex_number_tr1_algorithms.inverse_complex.atanh.synopsis_">Synopsis:</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
- <span class="bold"><b>Effects: </b></span> returns the inverse hyperbolic
+ <span class="bold"><strong>Effects: </strong></span> returns the inverse hyperbolic
         tangent of the complex number z.
       </p>
 <p>
- <span class="bold"><b>Formula: </b></span> <span class="inlinemediaobject"><img src="../../../../images/atanh.png" alt="atanh"></span>
+ <span class="bold"><strong>Formula: </strong></span> <span class="inlinemediaobject"><img src="../../../../images/atanh.png" alt="atanh"></span>
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/history.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/history.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,20 +3,18 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>History</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="atanh.html" title="
- atanh">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="atanh.html" title="atanh">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +23,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.history"></a>History</h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.history"></a>History
+</h3></div></div></div>
 <div class="itemizedlist"><ul type="disc">
 <li>
           2005/12/17: Added support for platforms with no meaningful numeric_limits&lt;&gt;::infinity().
@@ -37,10 +36,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/implementation.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/implementation.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex/implementation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- Implementation and Accuracy</title>
+<title>Implementation and Accuracy</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Complex Number TR1 Algorithms">
-<link rel="up" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="prev" href="../inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
-<link rel="next" href="asin.html" title="
- asin">
+<link rel="up" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="prev" href="../inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
+<link rel="next" href="asin.html" title="asin">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,9 +24,9 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="complex_number_tr1_algorithms.inverse_complex.implementation"></a><a href="implementation.html" title="
- Implementation and Accuracy">
- Implementation and Accuracy</a></h3></div></div></div>
+<a name="complex_number_tr1_algorithms.inverse_complex.implementation"></a><a href="implementation.html" title="Implementation and Accuracy">
+ Implementation and Accuracy</a>
+</h3></div></div></div>
 <p>
         Although there are deceptively simple formulae available for all of these
         functions, a naive implementation that used these formulae would fail catastrophically
@@ -51,10 +47,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2005 John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2005 John Maddock<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/complex/html/index.html
==============================================================================
--- branches/proto/v3/libs/math/doc/complex/html/index.html (original)
+++ branches/proto/v3/libs/math/doc/complex/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,18 +3,17 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Complex Number TR1 Algorithms</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="index.html" title="Complex Number TR1 Algorithms">
-<link rel="next" href="complex_number_tr1_algorithms/inverse_complex.html" title=" Complex
- Number Inverse Trigonometric Functions">
+<link rel="next" href="complex_number_tr1_algorithms/inverse_complex.html" title="Complex Number Inverse Trigonometric Functions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2005 John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id387681"></a><p>
+<a name="id437587"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -61,10 +60,14 @@
 </dl></dd>
 </dl>
 </div>
+<p>
+ This manual is also available in <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/complex-tr1.pdf" target="_top">printer
+ friendly PDF format</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"><p><small>Last revised: December 29, 2006 at 11:08:32 +0000</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="complex_number_tr1_algorithms/inverse_complex.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,10 +1,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Greatest Common Divisor and Least
- Common Multiple</title>
+<title>Greatest Common Divisor and Least Common Multiple</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../index.html" title="GCD and LCM">
 <link rel="up" href="../index.html" title="GCD and LCM">
 <link rel="prev" href="../index.html" title="GCD and LCM">
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,9 +24,9 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="gcd_and_lcm.gcd_lcm"></a><a href="gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple"> Greatest Common Divisor and Least
- Common Multiple</a></h2></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm"></a><a href="gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple"> Greatest Common Divisor and Least
+ Common Multiple</a>
+</h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Introduction</span></dt>
 <dt><span class="section">Synopsis</span></dt>
@@ -48,10 +47,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/compile_time.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/compile_time.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/compile_time.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,24 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Compile time GCD and
- LCM determination</title>
+<title>Compile time GCD and LCM determination</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="run_time.html" title=" Run-time GCD &amp; LCM
- Determination">
-<link rel="next" href="header.html" title=" Header &lt;boost/math/common_factor.hpp&gt;">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="run_time.html" title="Run-time GCD &amp; LCM Determination">
+<link rel="next" href="header.html" title="Header &lt;boost/math/common_factor.hpp&gt;">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,14 +24,13 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.compile_time"></a><a href="compile_time.html" title=" Compile time GCD and
- LCM determination"> Compile time GCD and
- LCM determination</a></h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.compile_time"></a><a href="compile_time.html" title="Compile time GCD and LCM determination"> Compile time GCD and
+ LCM determination</a>
+</h3></div></div></div>
 <p>
- <span class="bold"><b>Header: </b></span> <boost/math/common_factor_ct.hpp>
+ <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_ct.hpp>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value2</span> <span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value1</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">Value2</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">static_gcd</span>
 <span class="special">{</span>
    <span class="keyword">static</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">const</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">implementation_defined</span><span class="special">;</span>
@@ -54,12 +50,11 @@
         of the template arguments. A compile-time error will occur if the least common
         multiple is beyond the range of an unsigned long.
       </p>
-<a name="gcd_and_lcm.gcd_lcm.compile_time.example"></a><h3>
-<a name="id456908"></a>
+<a name="gcd_and_lcm.gcd_lcm.compile_time.example"></a><h4>
+<a name="id490769"></a>
         <a href="compile_time.html#gcd_and_lcm.gcd_lcm.compile_time.example">Example</a>
- </h3>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">common_factor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h4>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">common_factor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
 
@@ -88,10 +83,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/credits.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/credits.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/credits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,10 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Credits</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
 <link rel="prev" href="history.html" title="History">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -14,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +23,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.credits"></a>Credits</h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.credits"></a>Credits
+</h3></div></div></div>
 <p>
         The author of the Boost compilation of GCD and LCM computations is Daryle
         Walker. The code was prompted by existing code hiding in the implementations
@@ -34,10 +34,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/demo.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/demo.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/demo.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,13 +1,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Demonstration Program</title>
+<title>Demonstration Program</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="header.html" title=" Header &lt;boost/math/common_factor.hpp&gt;">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="header.html" title="Header &lt;boost/math/common_factor.hpp&gt;">
 <link rel="next" href="rationale.html" title="Rationale">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.demo"></a> Demonstration Program</h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.demo"></a> Demonstration Program
+</h3></div></div></div>
 <p>
         The program common_factor_test.cpp
         is a demonstration of the results from instantiating various examples of
@@ -36,10 +36,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/gcd_function_object.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/gcd_function_object.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/gcd_function_object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,24 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>GCD Function
- Object</title>
+<title>GCD Function Object</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
 <link rel="prev" href="synopsis.html" title="Synopsis">
-<link rel="next" href="lcm_function_object.html" title="LCM Function
- Object">
+<link rel="next" href="lcm_function_object.html" title="LCM Function Object">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,14 +24,13 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.gcd_function_object"></a><a href="gcd_function_object.html" title="GCD Function
- Object">GCD Function
- Object</a></h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.gcd_function_object"></a><a href="gcd_function_object.html" title="GCD Function Object">GCD Function
+ Object</a>
+</h3></div></div></div>
 <p>
- <span class="bold"><b>Header: </b></span> <boost/math/common_factor_rt.hpp>
+ <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_rt.hpp>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd_evaluator</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
@@ -64,10 +60,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/header.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/header.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/header.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,23 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Header &lt;boost/math/common_factor.hpp&gt;</title>
+<title>Header &lt;boost/math/common_factor.hpp&gt;</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="compile_time.html" title=" Compile time GCD and
- LCM determination">
-<link rel="next" href="demo.html" title=" Demonstration Program">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="compile_time.html" title="Compile time GCD and LCM determination">
+<link rel="next" href="demo.html" title="Demonstration Program">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.header"></a> Header <boost/math/common_factor.hpp></h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.header"></a> Header <boost/math/common_factor.hpp>
+</h3></div></div></div>
 <p>
         This header simply includes the headers <boost/math/common_factor_ct.hpp>
         and <boost/math/common_factor_rt.hpp>.
@@ -39,10 +38,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/history.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/history.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,10 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>History</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
 <link rel="prev" href="rationale.html" title="Rationale">
 <link rel="next" href="credits.html" title="Credits">
 </head>
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.history"></a>History</h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.history"></a>History
+</h3></div></div></div>
 <div class="itemizedlist"><ul type="disc">
 <li>
           17 Dec 2005: Converted documentation to Quickbook Format.
@@ -40,10 +40,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/introduction.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/introduction.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/introduction.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,12 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Introduction</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
 <link rel="next" href="synopsis.html" title="Synopsis">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.introduction"></a>Introduction</h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.introduction"></a>Introduction
+</h3></div></div></div>
 <p>
         The class and function templates in &lt;boost/math/common_factor.hpp&gt;
         provide run-time and compile-time evaluation of the greatest common divisor
@@ -36,10 +35,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/lcm_function_object.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/lcm_function_object.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/lcm_function_object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>LCM Function
- Object</title>
+<title>LCM Function Object</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="gcd_function_object.html" title="GCD Function
- Object">
-<link rel="next" href="run_time.html" title=" Run-time GCD &amp; LCM
- Determination">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="gcd_function_object.html" title="GCD Function Object">
+<link rel="next" href="run_time.html" title="Run-time GCD &amp; LCM Determination">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,14 +24,13 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.lcm_function_object"></a><a href="lcm_function_object.html" title="LCM Function
- Object">LCM Function
- Object</a></h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.lcm_function_object"></a><a href="lcm_function_object.html" title="LCM Function Object">LCM Function
+ Object</a>
+</h3></div></div></div>
 <p>
- <span class="bold"><b>Header: </b></span> <boost/math/common_factor_rt.hpp>
+ <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_rt.hpp>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">lcm_evaluator</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
@@ -67,10 +62,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/rationale.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/rationale.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/rationale.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,11 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Rationale</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="demo.html" title=" Demonstration Program">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="demo.html" title="Demonstration Program">
 <link rel="next" href="history.html" title="History">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.rationale"></a>Rationale</h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.rationale"></a>Rationale
+</h3></div></div></div>
 <p>
         The greatest common divisor and least common multiple functions are greatly
         used in some numeric contexts, including some of the other Boost libraries.
@@ -35,10 +35,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/run_time.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/run_time.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/run_time.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,25 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Run-time GCD &amp; LCM
- Determination</title>
+<title>Run-time GCD &amp; LCM Determination</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
-<link rel="prev" href="lcm_function_object.html" title="LCM Function
- Object">
-<link rel="next" href="compile_time.html" title=" Compile time GCD and
- LCM determination">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
+<link rel="prev" href="lcm_function_object.html" title="LCM Function Object">
+<link rel="next" href="compile_time.html" title="Compile time GCD and LCM determination">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,14 +24,13 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.run_time"></a><a href="run_time.html" title=" Run-time GCD &amp; LCM
- Determination"> Run-time GCD &amp; LCM
- Determination</a></h3></div></div></div>
+<a name="gcd_and_lcm.gcd_lcm.run_time"></a><a href="run_time.html" title="Run-time GCD &amp; LCM Determination"> Run-time GCD &amp; LCM
+ Determination</a>
+</h3></div></div></div>
 <p>
- <span class="bold"><b>Header: </b></span> <boost/math/common_factor_rt.hpp>
+ <span class="bold"><strong>Header: </strong></span> <boost/math/common_factor_rt.hpp>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
 <span class="identifier">IntegerType</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gcd</span><span class="special">(</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">IntegerType</span> <span class="keyword">const</span> <span class="special">&amp;</span><span class="identifier">b</span> <span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">IntegerType</span> <span class="special">&gt;</span>
@@ -53,10 +48,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/synopsis.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/synopsis.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/gcd_and_lcm/gcd_lcm/synopsis.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,21 +3,19 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Synopsis</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="GCD and LCM">
-<link rel="up" href="../gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
+<link rel="up" href="../gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
 <link rel="prev" href="introduction.html" title="Introduction">
-<link rel="next" href="gcd_function_object.html" title="GCD Function
- Object">
+<link rel="next" href="gcd_function_object.html" title="GCD Function Object">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,9 +24,9 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="gcd_and_lcm.gcd_lcm.synopsis"></a>Synopsis</h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span>
+<a name="gcd_and_lcm.gcd_lcm.synopsis"></a>Synopsis
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
 <span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">math</span>
 <span class="special">{</span>
@@ -54,10 +52,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2002 Daryle Walker<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2002 Daryle Walker<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/gcd/html/index.html
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/html/index.html (original)
+++ branches/proto/v3/libs/math/doc/gcd/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,18 +3,17 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>GCD and LCM</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="index.html" title="GCD and LCM">
-<link rel="next" href="gcd_and_lcm/gcd_lcm.html" title=" Greatest Common Divisor and Least
- Common Multiple">
+<link rel="next" href="gcd_and_lcm/gcd_lcm.html" title="Greatest Common Divisor and Least Common Multiple">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2001 -2002 Daryle Walker</p></div>
 <div><div class="legalnotice">
-<a name="id455915"></a><p>
+<a name="id435874"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -61,10 +60,14 @@
 </dl></dd>
 </dl>
 </div>
+<p>
+ This manual is also available in <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math-gcd.pdf" target="_top">printer
+ friendly PDF format</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"><p><small>Last revised: December 29, 2006 at 11:08:32 +0000</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="gcd_and_lcm/gcd_lcm.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>

Modified: branches/proto/v3/libs/math/doc/gcd/math-gcd.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/gcd/math-gcd.qbk (original)
+++ branches/proto/v3/libs/math/doc/gcd/math-gcd.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,6 +11,10 @@
     [last-revision $Date: 2006-12-29 11:08:32 +0000 (Fri, 29 Dec 2006) $]
 ]
 
+This manual is also available in
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math-gcd.pdf
+printer friendly PDF format].
+
 
 [section:gcd_lcm Greatest Common Divisor and Least Common Multiple]
 

Modified: branches/proto/v3/libs/math/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/math/doc/html/index.html (original)
+++ branches/proto/v3/libs/math/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Boost.Math</title>
 <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="index.html" title="Boost.Math">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -11,8 +11,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +25,7 @@
 <div><p class="copyright">Copyright © 2007 Paul A. Bristow, Hubert Holin, John Maddock, Daryle
       Walker and Xiaogang Zhang</p></div>
 <div><div class="legalnotice">
-<a name="id385767"></a><p>
+<a name="id437673"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -34,7 +34,7 @@
 <hr>
 </div>
 <p>
- The following mathematical libraries are present in Boost:
+ The following libraries are present in Boost.Math:
   </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -57,96 +57,63 @@
 <tr>
 <td>
           <p>
- <a href="../complex/html/index.html" target="_top">Complex Number Inverse Trigonometric
- Functions</a>
+ Complex Number Inverse Trigonometric Functions
           </p>
- </td>
-<td>
           <p>
- These complex number algorithms are the inverses of trigonometric functions
- currently present in the C++ standard. Equivalents to these functions
- are part of the C99 standard, and are part of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
- Report on C++ Library Extensions</a>.
+ HTML Docs
           </p>
- </td>
-</tr>
-<tr>
-<td>
           <p>
- <a href="../gcd/html/index.html" target="_top">Greatest Common Divisor and Least
- Common Multiple</a>
+ <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/complex-tr1.pdf" target="_top">PDF
+ Docs</a>
           </p>
           </td>
 <td>
           <p>
- The class and function templates in &lt;boost/math/common_factor.hpp&gt;
- provide run-time and compile-time evaluation of the greatest common divisor
- (GCD) or least common multiple (LCM) of two integers. These facilities
- are useful for many numeric-oriented generic programming problems.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Integer
- </p>
- </td>
-<td>
- <p>
- Headers to ease dealing with integral types.
+ These complex number algorithms are the inverses of trigonometric functions
+ currently present in the C++ standard. Equivalents to these functions
+ are part of the C99 standard, and are part of the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="_top">Technical
+ Report on C++ Library Extensions</a>.
           </p>
           </td>
 </tr>
 <tr>
 <td>
           <p>
- Interval
+ Greatest Common Divisor and Least Common Multiple
           </p>
- </td>
-<td>
           <p>
- As implied by its name, this library is intended to help manipulating
- mathematical intervals. It consists of a single header &lt;boost/numeric/interval.hpp&gt;
- and principally a type which can be used as interval&lt;T&gt;.
+ HTML Docs
           </p>
- </td>
-</tr>
-<tr>
-<td>
           <p>
- Multi Array
+ <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math-gcd.pdf" target="_top">PDF
+ Docs</a>
           </p>
           </td>
 <td>
           <p>
- Boost.MultiArray provides a generic N-dimensional array concept definition
- and common implementations of that interface.
+ The class and function templates in &lt;boost/math/common_factor.hpp&gt;
+ provide run-time and compile-time evaluation of the greatest common divisor
+ (GCD) or least common multiple (LCM) of two integers. These facilities
+ are useful for many numeric-oriented generic programming problems.
           </p>
           </td>
 </tr>
 <tr>
 <td>
           <p>
- Numeric.Conversion
+ Octonions
           </p>
- </td>
-<td>
           <p>
- The Boost Numeric Conversion library is a collection of tools to describe
- and perform conversions between values of different numeric types.
+ HTML Docs
           </p>
- </td>
-</tr>
-<tr>
-<td>
           <p>
- Octonions
+ <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/octonion.pdf" target="_top">PDF
+ Docs</a>
           </p>
           </td>
 <td>
           <p>
- Octonions, like quaternions,
+ Octonions, like quaternions,
             are a relative of complex numbers.
           </p>
           <p>
@@ -154,22 +121,22 @@
           </p>
           <p>
             In practical terms, an octonion is simply an octuple of real numbers
- (&#945;,&#946;,&#947;,&#948;,&#949;,&#950;,&#951;,&#952;), which we can write in the form <span class="emphasis"><em><tt class="literal">o = &#945; + &#946;i + &#947;j + &#948;k + &#949;e' + &#950;i' + &#951;j' + &#952;k'</tt></em></span>,
- where <span class="emphasis"><em><tt class="literal">i</tt></em></span>, <span class="emphasis"><em><tt class="literal">j</tt></em></span>
- and <span class="emphasis"><em><tt class="literal">k</tt></em></span> are the same objects as
- for quaternions, and <span class="emphasis"><em><tt class="literal">e'</tt></em></span>, <span class="emphasis"><em><tt class="literal">i'</tt></em></span>,
- <span class="emphasis"><em><tt class="literal">j'</tt></em></span> and <span class="emphasis"><em><tt class="literal">k'</tt></em></span>
+ (&#945;,&#946;,&#947;,&#948;,&#949;,&#950;,&#951;,&#952;), which we can write in the form <span class="emphasis"><em><code class="literal">o = &#945; + &#946;i + &#947;j + &#948;k + &#949;e' + &#950;i' + &#951;j' + &#952;k'</code></em></span>,
+ where <span class="emphasis"><em><code class="literal">i</code></em></span>, <span class="emphasis"><em><code class="literal">j</code></em></span>
+ and <span class="emphasis"><em><code class="literal">k</code></em></span> are the same objects as
+ for quaternions, and <span class="emphasis"><em><code class="literal">e'</code></em></span>, <span class="emphasis"><em><code class="literal">i'</code></em></span>,
+ <span class="emphasis"><em><code class="literal">j'</code></em></span> and <span class="emphasis"><em><code class="literal">k'</code></em></span>
             are distinct objects which play essentially the same kind of role as
- <span class="emphasis"><em><tt class="literal">i</tt></em></span> (or <span class="emphasis"><em><tt class="literal">j</tt></em></span>
- or <span class="emphasis"><em><tt class="literal">k</tt></em></span>).
+ <span class="emphasis"><em><code class="literal">i</code></em></span> (or <span class="emphasis"><em><code class="literal">j</code></em></span>
+ or <span class="emphasis"><em><code class="literal">k</code></em></span>).
           </p>
           <p>
             Addition and a multiplication is defined on the set of octonions, which
             generalize their quaternionic counterparts. The main novelty this time
- is that <span class="bold"><b>the multiplication is not only not commutative,
- is now not even associative</b></span> (i.e. there are quaternions <span class="emphasis"><em><tt class="literal">x</tt></em></span>,
- <span class="emphasis"><em><tt class="literal">y</tt></em></span> and <span class="emphasis"><em><tt class="literal">z</tt></em></span>
- such that <span class="emphasis"><em><tt class="literal">x(yz) &#8800; (xy)z</tt></em></span>). A way
+ is that <span class="bold"><strong>the multiplication is not only not commutative,
+ is now not even associative</strong></span> (i.e. there are quaternions <span class="emphasis"><em><code class="literal">x</code></em></span>,
+ <span class="emphasis"><em><code class="literal">y</code></em></span> and <span class="emphasis"><em><code class="literal">z</code></em></span>
+ such that <span class="emphasis"><em><code class="literal">x(yz) &#8800; (xy)z</code></em></span>). A way
             of remembering things is by using the following multiplication table:
           </p>
           <p>
@@ -192,22 +159,14 @@
 <tr>
 <td>
           <p>
- Operators
+ Special Functions
           </p>
- </td>
-<td>
           <p>
- The header &lt;boost/operators.hpp&gt; supplies several sets of class
- templates (in namespace boost). These templates define operators at namespace
- scope in terms of a minimal number of fundamental operators provided
- by the class.
+ HTML Docs
           </p>
- </td>
-</tr>
-<tr>
-<td>
           <p>
- Special Functions
+ <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math.pdf" target="_top">PDF
+ Docs</a>
           </p>
           </td>
 <td>
@@ -236,7 +195,14 @@
 <tr>
 <td>
           <p>
- Statistical Distributions
+ Statistical Distributions
+ </p>
+ <p>
+ HTML Docs
+ </p>
+ <p>
+ <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math.pdf" target="_top">PDF
+ Docs</a>
           </p>
           </td>
 <td>
@@ -258,7 +224,14 @@
 <tr>
 <td>
           <p>
- Quaternions
+ Quaternions
+ </p>
+ <p>
+ HTML Docs
+ </p>
+ <p>
+ <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/quaternion.pdf" target="_top">PDF
+ Docs</a>
           </p>
           </td>
 <td>
@@ -268,41 +241,41 @@
           <p>
             Quaternions are in fact part of a small hierarchy of structures built
             upon the real numbers, which comprise only the set of real numbers (traditionally
- named <span class="emphasis"><em><span class="bold"><b>R</b></span></em></span>), the set
- of complex numbers (traditionally named <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span>),
- the set of quaternions (traditionally named <span class="emphasis"><em><span class="bold"><b>H</b></span></em></span>)
- and the set of octonions (traditionally named <span class="emphasis"><em><span class="bold"><b>O</b></span></em></span>),
+ named <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span>), the set
+ of complex numbers (traditionally named <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>),
+ the set of quaternions (traditionally named <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span>)
+ and the set of octonions (traditionally named <span class="emphasis"><em><span class="bold"><strong>O</strong></span></em></span>),
             which possess interesting mathematical properties (chief among which
             is the fact that they are <span class="emphasis"><em>division algebras</em></span>, <span class="emphasis"><em>i.e.</em></span>
- where the following property is true: if <span class="emphasis"><em><tt class="literal">y</tt></em></span>
- is an element of that algebra and is <span class="bold"><b>not equal
- to zero</b></span>, then <span class="emphasis"><em><tt class="literal">yx = yx'</tt></em></span>,
- where <span class="emphasis"><em><tt class="literal">x</tt></em></span> and <span class="emphasis"><em><tt class="literal">x'</tt></em></span>
- denote elements of that algebra, implies that <span class="emphasis"><em><tt class="literal">x =
- x'</tt></em></span>). Each member of the hierarchy is a super-set
+ where the following property is true: if <span class="emphasis"><em><code class="literal">y</code></em></span>
+ is an element of that algebra and is <span class="bold"><strong>not equal
+ to zero</strong></span>, then <span class="emphasis"><em><code class="literal">yx = yx'</code></em></span>,
+ where <span class="emphasis"><em><code class="literal">x</code></em></span> and <span class="emphasis"><em><code class="literal">x'</code></em></span>
+ denote elements of that algebra, implies that <span class="emphasis"><em><code class="literal">x =
+ x'</code></em></span>). Each member of the hierarchy is a super-set
             of the former.
           </p>
           <p>
             One of the most important aspects of quaternions is that they provide
- an efficient way to parameterize rotations in <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span>
- (the usual three-dimensional space) and <span class="emphasis"><em><span class="bold"><b>R<sup>4</sup></b></span></em></span>.
+ an efficient way to parameterize rotations in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>
+ (the usual three-dimensional space) and <span class="emphasis"><em><span class="bold"><strong>R<sup>4</sup></strong></span></em></span>.
           </p>
           <p>
             In practical terms, a quaternion is simply a quadruple of real numbers
- (&#945;,&#946;,&#947;,&#948;), which we can write in the form <span class="emphasis"><em><tt class="literal">q = &#945; + &#946;i + &#947;j + &#948;k</tt></em></span>,
- where <span class="emphasis"><em><tt class="literal">i</tt></em></span> is the same object as
- for complex numbers, and <span class="emphasis"><em><tt class="literal">j</tt></em></span> and
- <span class="emphasis"><em><tt class="literal">k</tt></em></span> are distinct objects which
- play essentially the same kind of role as <span class="emphasis"><em><tt class="literal">i</tt></em></span>.
+ (&#945;,&#946;,&#947;,&#948;), which we can write in the form <span class="emphasis"><em><code class="literal">q = &#945; + &#946;i + &#947;j + &#948;k</code></em></span>,
+ where <span class="emphasis"><em><code class="literal">i</code></em></span> is the same object as
+ for complex numbers, and <span class="emphasis"><em><code class="literal">j</code></em></span> and
+ <span class="emphasis"><em><code class="literal">k</code></em></span> are distinct objects which
+ play essentially the same kind of role as <span class="emphasis"><em><code class="literal">i</code></em></span>.
           </p>
           <p>
             An addition and a multiplication is defined on the set of quaternions,
             which generalize their real and complex counterparts. The main novelty
- here is that <span class="bold"><b>the multiplication is not commutative</b></span>
- (i.e. there are quaternions <span class="emphasis"><em><tt class="literal">x</tt></em></span>
- and <span class="emphasis"><em><tt class="literal">y</tt></em></span> such that <span class="emphasis"><em><tt class="literal">xy
- &#8800; yx</tt></em></span>). A good mnemotechnical way of remembering things
- is by using the formula <span class="emphasis"><em><tt class="literal">i*i = j*j = k*k = -1</tt></em></span>.
+ here is that <span class="bold"><strong>the multiplication is not commutative</strong></span>
+ (i.e. there are quaternions <span class="emphasis"><em><code class="literal">x</code></em></span>
+ and <span class="emphasis"><em><code class="literal">y</code></em></span> such that <span class="emphasis"><em><code class="literal">xy
+ &#8800; yx</code></em></span>). A good mnemotechnical way of remembering things
+ is by using the formula <span class="emphasis"><em><code class="literal">i*i = j*j = k*k = -1</code></em></span>.
           </p>
           <p>
             Quaternions (and their kin) are described in far more details in this
@@ -315,6 +288,96 @@
           </p>
           </td>
 </tr>
+</tbody>
+</table></div>
+<p>
+ The following Boost libraries are also mathematically oriented:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Library
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Integer
+ </p>
+ </td>
+<td>
+ <p>
+ Headers to ease dealing with integral types.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Interval
+ </p>
+ </td>
+<td>
+ <p>
+ As implied by its name, this library is intended to help manipulating
+ mathematical intervals. It consists of a single header &lt;boost/numeric/interval.hpp&gt;
+ and principally a type which can be used as interval&lt;T&gt;.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Multi Array
+ </p>
+ </td>
+<td>
+ <p>
+ Boost.MultiArray provides a generic N-dimensional array concept definition
+ and common implementations of that interface.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Numeric.Conversion
+ </p>
+ </td>
+<td>
+ <p>
+ The Boost Numeric Conversion library is a collection of tools to describe
+ and perform conversions between values of different numeric types.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Operators
+ </p>
+ </td>
+<td>
+ <p>
+ The header &lt;boost/operators.hpp&gt; supplies several sets of class
+ templates (in namespace boost). These templates define operators at namespace
+ scope in terms of a minimal number of fundamental operators provided
+ by the class.
+ </p>
+ </td>
+</tr>
 <tr>
 <td>
           <p>
@@ -363,8 +426,8 @@
 </table></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 16, 2007 at 17:32:28 +0800</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="left"><p><small>Last revised: February 10, 2008 at 09:55:03 +0000</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"></div>

Modified: branches/proto/v3/libs/math/doc/math.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/math.qbk (original)
+++ branches/proto/v3/libs/math/doc/math.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,19 +27,29 @@
 [def __oct_not_equal ['[^x(yz) '''&#x2260;''' (xy)z]]]
 [template tr1[] [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf Technical Report on C++ Library Extensions]]
 
-The following mathematical libraries are present in Boost:
+The following libraries are present in Boost.Math:
 
 [table
 [[Library][Description]]
 
- [[[@../complex/html/index.html Complex Number Inverse Trigonometric Functions]]
+ [[Complex Number Inverse Trigonometric Functions
+
+ [@../complex/html/index.html HTML Docs]
+
+ [@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/complex-tr1.pdf
+ PDF Docs]]
    [
 These complex number algorithms are the inverses of trigonometric functions currently
 present in the C++ standard. Equivalents to these functions are part of the C99 standard, and
 are part of the [tr1].
    ]]
    
- [[[@../gcd/html/index.html Greatest Common Divisor and Least Common Multiple]]
+ [[Greatest Common Divisor and Least Common Multiple
+
+ [@../gcd/html/index.html HTML Docs]
+
+ [@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math-gcd.pdf
+ PDF Docs]]
    [
 The class and function templates in <boost/math/common_factor.hpp>
 provide run-time and compile-time evaluation of the greatest common divisor
@@ -48,26 +58,14 @@
 programming problems.
    ]]
 
- [[[@../../../integer/index.html Integer]]
- [Headers to ease dealing with integral types.]]
+[[Octonions
 
- [[[@../../../numeric/interval/doc/interval.htm Interval]]
- [As implied by its name, this library is intended to help manipulating
- mathematical intervals. It consists of a single header
- <boost/numeric/interval.hpp> and principally a type which can be
- used as interval<T>. ]]
-
- [[[@../../../multi_array/doc/index.html Multi Array]]
- [Boost.MultiArray provides a generic N-dimensional array concept
- definition and common implementations of that interface.]]
+[@../octonion/html/index.html HTML Docs]
 
- [[[@../../../numeric/conversion/doc/index.html Numeric.Conversion]]
- [The Boost Numeric Conversion library is a collection of tools to
- describe and perform conversions between values of different numeric types.]]
-
-[[[@../octonion/html/index.html Octonions]]
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/octonion.pdf
+PDF Docs]]
    [
-Octonions, like [@../quaternions/html/index.html quaternions], are a relative of complex numbers.
+Octonions, like [@../quaternion/html/index.html quaternions], are a relative of complex numbers.
 
 Octonions see some use in theoretical physics.
 
@@ -95,13 +93,13 @@
 since quite a long time ago).
    ]]
    
- [[[@../../../utility/operators.htm Operators]]
- [The header <boost/operators.hpp> supplies several sets of class
- templates (in namespace boost). These templates define operators at
- namespace scope in terms of a minimal number of fundamental
- operators provided by the class.]]
+[[Special Functions
+
+[@../sf_and_dist/html/index.html HTML Docs]
+
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math.pdf
+PDF Docs]]
 
-[[[@../sf_and_dist/html/index.html Special Functions]]
    [ Provides a number of high quality special functions, initially
    these were concentrated on functions used in statistical applications
    along with those in the Technical Report on C++ Library Extensions.
@@ -120,7 +118,13 @@
    use with types with known-about significand (or mantissa)
    sizes: typically float, double or long double. ]]
 
-[[[@../sf_and_dist/html/index.html Statistical Distributions]]
+[[Statistical Distributions
+
+[@../sf_and_dist/html/index.html HTML Docs]
+
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math.pdf
+PDF Docs]]
+
    [Provides a reasonably comprehensive set of statistical distributions,
    upon which higher level statistical tests can be built.
 
@@ -131,7 +135,13 @@
    A comprehensive tutorial is provided, along with a series of worked
    examples illustrating how the library is used to conduct statistical tests. ]]
 
-[[[@../quaternion/html/index.html Quaternions]]
+[[Quaternions
+
+[@../quaternion/html/index.html HTML Docs]
+
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/quaternion.pdf
+PDF Docs]]
+
    [
 Quaternions are a relative of complex numbers.
 
@@ -169,6 +179,36 @@
 a square root, do not.
     ]]
     
+]
+
+The following Boost libraries are also mathematically oriented:
+
+[table
+[[Library][Description]]
+
+ [[[@../../../integer/index.html Integer]]
+ [Headers to ease dealing with integral types.]]
+
+ [[[@../../../numeric/interval/doc/interval.htm Interval]]
+ [As implied by its name, this library is intended to help manipulating
+ mathematical intervals. It consists of a single header
+ <boost/numeric/interval.hpp> and principally a type which can be
+ used as interval<T>. ]]
+
+ [[[@../../../multi_array/doc/index.html Multi Array]]
+ [Boost.MultiArray provides a generic N-dimensional array concept
+ definition and common implementations of that interface.]]
+
+ [[[@../../../numeric/conversion/index.html Numeric.Conversion]]
+ [The Boost Numeric Conversion library is a collection of tools to
+ describe and perform conversions between values of different numeric types.]]
+
+ [[[@../../../utility/operators.htm Operators]]
+ [The header <boost/operators.hpp> supplies several sets of class
+ templates (in namespace boost). These templates define operators at
+ namespace scope in terms of a minimal number of fundamental
+ operators provided by the class.]]
+
    [[[@../../../random/index.html Random]]
    [Random numbers are useful in a variety of applications. The Boost
    Random Number Library (Boost.Random for short) provides a vast variety

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,10 +54,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/acknowledgements.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,10 +36,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/header_file.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/header_file.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/header_file.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,10 +32,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/history.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/history.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -91,10 +91,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/non_mem.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/non_mem.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/non_mem.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,29 +28,26 @@
       Operators</a>
 </h3></div></div></div>
 <a name="boost_octonions.octonions.non_mem.unary_plus_and_minus_operators"></a><h5>
-<a name="id523331"></a>
+<a name="id523273"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.unary_plus_and_minus_operators">Unary
         Plus and Minus Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This unary operator simply returns o.
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This unary operator returns the opposite of o.
       </p>
 <a name="boost_octonions.octonions.non_mem.binary_addition_operators"></a><h5>
-<a name="id523603"></a>
+<a name="id523542"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.binary_addition_operators">Binary
         Addition Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
@@ -63,12 +60,11 @@
         <span class="identifier">rhs</span></code>.
       </p>
 <a name="boost_octonions.octonions.non_mem.binary_subtraction_operators"></a><h5>
-<a name="id524823"></a>
+<a name="id524761"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.binary_subtraction_operators">Binary
         Subtraction Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
@@ -81,12 +77,11 @@
         <span class="identifier">rhs</span></code>.
       </p>
 <a name="boost_octonions.octonions.non_mem.binary_multiplication_operators"></a><h5>
-<a name="id526043"></a>
+<a name="id525980"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.binary_multiplication_operators">Binary
         Multiplication Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
@@ -99,12 +94,11 @@
         <span class="identifier">rhs</span></code>.
       </p>
 <a name="boost_octonions.octonions.non_mem.binary_division_operators"></a><h5>
-<a name="id527264"></a>
+<a name="id527200"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.binary_division_operators">Binary
         Division Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special
">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r
hs</span><span class="special">);</span>
@@ -118,12 +112,11 @@
         to divide by zero...
       </p>
 <a name="boost_octonions.octonions.non_mem.binary_equality_operators"></a><h5>
-<a name="id528483"></a>
+<a name="id528418"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.binary_equality_operators">Binary
         Equality Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
@@ -137,12 +130,11 @@
         with any floating-type entity, this is essentially meaningless.
       </p>
 <a name="boost_octonions.octonions.non_mem.binary_inequality_operators"></a><h5>
-<a name="id529621"></a>
+<a name="id529555"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.binary_inequality_operators">Binary
         Inequality Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
@@ -156,12 +148,11 @@
         false. As with any floating-type entity, this is essentially meaningless.
       </p>
 <a name="boost_octonions.octonions.non_mem.stream_extractor"></a><h5>
-<a name="id530761"></a>
+<a name="id530693"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.stream_extractor">Stream
         Extractor</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&gt;&gt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span c
lass="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
@@ -179,12 +170,11 @@
         Returns <code class="computeroutput"><span class="identifier">is</span></code>.
       </p>
 <a name="boost_octonions.octonions.non_mem.stream_inserter"></a><h5>
-<a name="id531128"></a>
+<a name="id531059"></a>
         <a href="non_mem.html#boost_octonions.octonions.non_mem.stream_inserter">Stream
         Inserter</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span c
lass="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
@@ -192,8 +182,7 @@
         the stream <code class="computeroutput"><span class="identifier">os</span></code> as if it were
         implemented as follows:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">)</span>
 <span class="special">{</span>
@@ -218,10 +207,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/oct_create.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/oct_create.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/oct_create.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_octonions.octonions.oct_create"></a><a href="oct_create.html" title="Octonion Creation Functions"> Octonion Creation
       Functions</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identi
fier">phi2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi6</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp
;</span> <span class="identifier">phi2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi6</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">multipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="ide
ntifier">theta2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta4</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cylindrical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">angle</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifi
er">h2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h3</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h4</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h5</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">h6</span><span class="special">);</span>
 </pre>
@@ -69,10 +68,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_functions.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_functions.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_functions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,14 +28,13 @@
       Member Functions</a>
 </h3></div></div></div>
 <a name="boost_octonions.octonions.octonion_member_functions.constructors"></a><h4>
-<a name="id515596"></a>
+<a name="id515555"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.constructors">Constructors</a>
       </h4>
 <p>
         Template version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span>
 <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="identifier">T</span><span cla
ss="special">());</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <s
pan class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="i
dentifier">T</span><span class="special">());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</sp
an><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z3</span> <span class="special">=</span>
<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier"
>boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
@@ -44,8 +43,7 @@
 <p>
         Float specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <spa
n class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">)
;</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span c
lass="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0f</
span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float<
/span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z3</span> <span class="special">=</
span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identifie
r">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -54,8 +52,7 @@
 <p>
         Double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <sp
an class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">)
;</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span
class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0</
span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">doub
le</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z3</span> <span class="specia
l">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q1</span> <span class="special">=</span> <span class="special">::</span><span class="identif
ier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -64,8 +61,7 @@
 <p>
         Long double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span cla
ss="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special"
>,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyw
ord">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_e</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_f</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_g</span> <span class="special">=</span> <span class="number">0.0L
</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_h</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span>
<span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z2</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;(),</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;
</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z3</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q1</span> <span class="s
pecial">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">octonion</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -89,17 +85,16 @@
         function in a "detail" subnamespace.
       </p>
 <a name="boost_octonions.octonions.octonion_member_functions.other_member_functions"></a><h4>
-<a name="id519954"></a>
+<a name="id519907"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.other_member_functions">Other
         member functions</a>
       </h4>
 <a name="boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts"></a><h5>
-<a name="id519979"></a>
+<a name="id519933"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.real_and_unreal_parts">Real
         and Unreal Parts</a>
       </h5>
-<pre class="programlisting">
-<span class="identifier">T</span> <span class="identifier">real</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">real</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">unreal</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
@@ -110,12 +105,11 @@
         These are returned by the first two functions.
       </p>
 <a name="boost_octonions.octonions.octonion_member_functions.individual_real_components"></a><h5>
-<a name="id520087"></a>
+<a name="id520040"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.individual_real_components">Individual
         Real Components</a>
       </h5>
-<pre class="programlisting">
-<span class="identifier">T</span> <span class="identifier">R_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">R_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">T</span> <span class="identifier">R_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">T</span> <span class="identifier">R_component_3</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">T</span> <span class="identifier">R_component_4</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
@@ -129,12 +123,11 @@
         functions. Hence real and R_component_1 return the same value.
       </p>
 <a name="boost_octonions.octonions.octonion_member_functions.individual_complex_components"></a><h5>
-<a name="id520353"></a>
+<a name="id520303"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.individual_complex_components">Individual
         Complex Components</a>
       </h5>
-<pre class="programlisting">
-<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_3</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_4</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
@@ -150,12 +143,11 @@
         the basis <span class="emphasis"><em><code class="literal">(1, j, e', j')</code></em></span>.
       </p>
 <a name="boost_octonions.octonions.octonion_member_functions.individual_quaternion_components"></a><h5>
-<a name="id520667"></a>
+<a name="id520616"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.individual_quaternion_components">Individual
         Quaternion Components</a>
       </h5>
-<pre class="programlisting">
-<span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">H_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">H_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">H_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
@@ -166,17 +158,16 @@
         to build the octonion using the constructor.
       </p>
 <a name="boost_octonions.octonions.octonion_member_functions.octonion_member_operators"></a><h4>
-<a name="id520861"></a>
+<a name="id520808"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.octonion_member_operators">Octonion
         Member Operators</a>
       </h4>
 <a name="boost_octonions.octonions.octonion_member_functions.assignment_operators"></a><h5>
-<a name="id520886"></a>
+<a name="id520834"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.assignment_operators">Assignment
         Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
@@ -190,12 +181,11 @@
         base type's assignment operators must not throw.
       </p>
 <a name="boost_octonions.octonions.octonion_member_functions.other_member_operators"></a><h5>
-<a name="id521417"></a>
+<a name="id521363"></a>
         <a href="octonion_member_functions.html#boost_octonions.octonions.octonion_member_functions.other_member_operators">Other
         Member Operators</a>
       </h5>
-<pre class="programlisting">
-<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
@@ -208,8 +198,7 @@
         do not, so as to insure exception safety. For the unspecialized form, the
         base type's assignment operators must not throw.
       </p>
-<pre class="programlisting">
-<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
@@ -222,8 +211,7 @@
         do not, so as to insure exception safety. For the unspecialized form, the
         base type's assignment operators must not throw.
       </p>
-<pre class="programlisting">
-<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
@@ -240,8 +228,7 @@
         on the octonions (though there are of course cases where this does not matter,
         it usually does).
       </p>
-<pre class="programlisting">
-<span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
@@ -259,10 +246,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_typedefs.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_typedefs.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_member_typedefs.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,26 +33,22 @@
 <p>
         Template version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         Float specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         Double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         Long double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         These provide easy acces to the type the template is built upon.
@@ -60,10 +56,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_specializations.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_specializations.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_specializations.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_octonions.octonions.octonion_specializations"></a><a href="octonion_specializations.html" title="Octonion Specializations">Octonion
       Specializations</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span><span class="special">&lt;&gt;</span>
 <span class="keyword">class</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span>
@@ -96,8 +95,7 @@
 </pre>
 <a name="boost_octonions.octonion_double"></a><p>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
 <span class="keyword">class</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
@@ -163,8 +161,7 @@
 </pre>
 <a name="boost_octonions.octonion_long_double"></a><p>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
 <span class="keyword">class</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
@@ -233,10 +230,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_value_operations.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_value_operations.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonion_value_operations.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,12 +28,11 @@
       Value Operations</a>
 </h3></div></div></div>
 <a name="boost_octonions.octonions.octonion_value_operations.real_and_unreal"></a><h5>
-<a name="id532268"></a>
+<a name="id532197"></a>
         <a href="octonion_value_operations.html#boost_octonions.octonions.octonion_value_operations.real_and_unreal">Real
         and Unreal</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">real</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">real</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">unreal</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
@@ -42,51 +41,46 @@
         respectively.
       </p>
 <a name="boost_octonions.octonions.octonion_value_operations.conj"></a><h5>
-<a name="id532550"></a>
+<a name="id532477"></a>
         <a href="octonion_value_operations.html#boost_octonions.octonions.octonion_value_operations.conj">conj</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This returns the conjugate of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonion_value_operations.sup"></a><h5>
-<a name="id532690"></a>
+<a name="id532616"></a>
         <a href="octonion_value_operations.html#boost_octonions.octonions.octonion_value_operations.sup">sup</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">sup</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">sup</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This return the sup norm (the greatest among <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())...</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_8</span><span class="special">()))</span></code> of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonion_value_operations.l1"></a><h5>
-<a name="id532879"></a>
+<a name="id532804"></a>
         <a href="octonion_value_operations.html#boost_octonions.octonions.octonion_value_operations.l1">l1</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">l1</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">l1</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This return the l1 norm (<code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())+...+</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">o</span><span class="special">.</span><span class="identifier">R_component_8</span><span class="special">())</span></code>) of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonion_value_operations.abs"></a><h5>
-<a name="id533069"></a>
+<a name="id532992"></a>
         <a href="octonion_value_operations.html#boost_octonions.octonions.octonion_value_operations.abs">abs</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">abs</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">abs</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This return the magnitude (Euclidian norm) of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonion_value_operations.norm"></a><h5>
-<a name="id533191"></a>
+<a name="id533113"></a>
         <a href="octonion_value_operations.html#boost_octonions.octonions.octonion_value_operations.norm">norm</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">norm</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">norm</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         This return the (Cayley) norm of the octonion. The term "norm"
@@ -98,10 +92,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonions_transcendentals.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonions_transcendentals.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/octonions_transcendentals.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,88 +53,80 @@
         headers.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.exp"></a><h5>
-<a name="id534510"></a>
+<a name="id534430"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.exp">exp</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the exponential of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.cos"></a><h5>
-<a name="id534648"></a>
+<a name="id534567"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.cos">cos</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cos</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the cosine of the octonion
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.sin"></a><h5>
-<a name="id534786"></a>
+<a name="id534705"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.sin">sin</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the sine of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.tan"></a><h5>
-<a name="id534925"></a>
+<a name="id534842"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.tan">tan</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the tangent of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.cosh"></a><h5>
-<a name="id535063"></a>
+<a name="id534979"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.cosh">cosh</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the hyperbolic cosine of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.sinh"></a><h5>
-<a name="id535203"></a>
+<a name="id535117"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.sinh">sinh</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the hyperbolic sine of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.tanh"></a><h5>
-<a name="id535342"></a>
+<a name="id535256"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.tanh">tanh</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">);</span>
 </pre>
 <p>
         Computes the hyperbolic tangent of the octonion.
       </p>
 <a name="boost_octonions.octonions.octonions_transcendentals.pow"></a><h5>
-<a name="id535483"></a>
+<a name="id535396"></a>
         <a href="octonions_transcendentals.html#boost_octonions.octonions.octonions_transcendentals.pow">pow</a>
       </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">octonion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">o</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
 </pre>
 <p>
@@ -143,10 +135,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/overview.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_octonions.octonions.overview"></a>Overview
 </h3></div></div></div>
 <p>
- Octonions, like quaternions,
+ Octonions, like quaternions,
         are a relative of complex numbers.
       </p>
 <p>
@@ -69,10 +69,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/synopsis.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/synopsis.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/synopsis.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_octonions.octonions.synopsis"></a>Synopsis
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">class</span> octonion<span class="special">;</span>
 <span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> octonion<float><span class="special">;</span>
@@ -125,10 +124,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/template_class_octonion.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/template_class_octonion.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/template_class_octonion.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_octonions.octonions.template_class_octonion"></a><a href="template_class_octonion.html" title="Template Class octonion">Template
       Class octonion</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">octonion</span>
@@ -99,10 +98,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/test_program.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/test_program.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/test_program.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -44,10 +44,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/to_do.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/to_do.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/boost_octonions/octonions/to_do.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -39,10 +39,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/octonion/html/index.html
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/html/index.html (original)
+++ branches/proto/v3/libs/math/doc/octonion/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2001 -2003 Hubert Holin</p></div>
 <div><div class="legalnotice">
-<a name="id441872"></a><p>
+<a name="id435842"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -67,10 +67,14 @@
 </dl></dd>
 </dl>
 </div>
+<p>
+ This manual is also available in <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/octonion.pdf" target="_top">printer
+ friendly PDF format</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"><p><small>Last revised: December 29, 2006 at 11:08:32 +0000</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="boost_octonions/octonions.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>

Modified: branches/proto/v3/libs/math/doc/octonion/math-octonion.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/octonion/math-octonion.qbk (original)
+++ branches/proto/v3/libs/math/doc/octonion/math-octonion.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,11 +34,15 @@
 [def __expm1 [link boost_quaternions.math_special_functions.expm1 expm1]]
 [def __hypot [link boost_quaternions.math_special_functions.hypot hypot]]
 
+This manual is also available in
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/octonion.pdf
+printer friendly PDF format].
+
 [section Octonions]
 
 [section Overview]
 
-Octonions, like [@../../quaternions/html/index.html quaternions], are a relative of complex numbers.
+Octonions, like [@../../quaternion/html/index.html quaternions], are a relative of complex numbers.
 
 Octonions see some use in theoretical physics.
 

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Quaternions</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../index.html" title="Boost.Quaternions">
 <link rel="up" href="../index.html" title="Boost.Quaternions">
 <link rel="prev" href="../index.html" title="Boost.Quaternions">
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_quaternions.quaternions"></a>Quaternions</h2></div></div></div>
+<a name="boost_quaternions.quaternions"></a>Quaternions
+</h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Overview</span></dt>
 <dt><span class="section">Header File</span></dt>
@@ -52,10 +53,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/acknowledgements.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,11 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Acknowledgements</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="exp.html" title=" The Quaternionic
- Exponential">
+<link rel="prev" href="exp.html" title="The Quaternionic Exponential">
 <link rel="next" href="history.html" title="History">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.acknowledgements"></a>Acknowledgements</h3></div></div></div>
+<a name="boost_quaternions.quaternions.acknowledgements"></a>Acknowledgements
+</h3></div></div></div>
 <p>
         The mathematical text has been typeset with <a href="http://www.nisus-soft.com/" target="_top">Nisus
         Writer</a>. Jens Maurer has helped with portability and standard adherence,
@@ -36,10 +36,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/create.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/create.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/create.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,23 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion Creation
- Functions</title>
+<title>Quaternion Creation Functions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="value_op.html" title=" Quaternion Value
- Operations">
-<link rel="next" href="trans.html" title=" Quaternion Transcendentals">
+<link rel="prev" href="value_op.html" title="Quaternion Value Operations">
+<link rel="next" href="trans.html" title="Quaternion Transcendentals">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,11 +24,10 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.create"></a><a href="create.html" title=" Quaternion Creation
- Functions"> Quaternion Creation
- Functions</a></h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="iden
tifier">phi2</span><span class="special">);</span>
+<a name="boost_quaternions.quaternions.create"></a><a href="create.html" title="Quaternion Creation Functions"> Quaternion Creation
+ Functions</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">spherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">phi1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&a
mp;</span> <span class="identifier">phi2</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">semipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="id
entifier">theta2</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">multipolar</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">theta1</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rho2</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="i
dentifier">theta2</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cylindrospherical</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">t</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">radius</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">longitude</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span
 class="identifier">latitude</span><span class="special">);</span>
@@ -41,74 +38,75 @@
         numbers, as there is no strict equivalent to polar coordinates for quaternions.
       </p>
 <a name="boost_quaternions.quaternions.creation_spherical"></a><p>
- <tt class="computeroutput"><span class="identifier">spherical</span></tt> is a simple transposition
- of <tt class="computeroutput"><span class="identifier">polar</span></tt>, it takes as inputs
+ <code class="computeroutput"><span class="identifier">spherical</span></code> is a simple transposition
+ of <code class="computeroutput"><span class="identifier">polar</span></code>, it takes as inputs
         a (positive) magnitude and a point on the hypersphere, given by three angles.
- The first of these, <tt class="computeroutput"><span class="identifier">theta</span></tt>
- has a natural range of <tt class="computeroutput"><span class="special">-</span><span class="identifier">pi</span></tt>
- to <tt class="computeroutput"><span class="special">+</span><span class="identifier">pi</span></tt>,
- and the other two have natural ranges of <tt class="computeroutput"><span class="special">-</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></tt>
- to <tt class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></tt> (as is the
- case with the usual spherical coordinates in <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span>).
+ The first of these, <code class="computeroutput"><span class="identifier">theta</span></code>
+ has a natural range of <code class="computeroutput"><span class="special">-</span><span class="identifier">pi</span></code>
+ to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span></code>,
+ and the other two have natural ranges of <code class="computeroutput"><span class="special">-</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code>
+ to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code> (as is the
+ case with the usual spherical coordinates in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>).
         Due to the many symmetries and periodicities, nothing untoward happens if
         the magnitude is negative or the angles are outside their natural ranges.
         The expected degeneracies (a magnitude of zero ignores the angles settings...)
         do happen however.
       </p>
 <a name="boost_quaternions.quaternions.creation_cylindrical"></a><p>
- <tt class="computeroutput"><span class="identifier">cylindrical</span></tt> is likewise a
- simple transposition of the usual cylindrical coordinates in <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span>, which in turn is another derivative of
+ <code class="computeroutput"><span class="identifier">cylindrical</span></code> is likewise a
+ simple transposition of the usual cylindrical coordinates in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>, which in turn is another derivative of
         planar polar coordinates. The first two inputs are the polar coordinates
- of the first <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span> component
+ of the first <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> component
         of the quaternion. The third and fourth inputs are placed into the third
- and fourth <span class="emphasis"><em><span class="bold"><b>R</b></span></em></span> components
+ and fourth <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span> components
         of the quaternion, respectively.
       </p>
 <a name="boost_quaternions.quaternions.creation_multipolar"></a><p>
- <tt class="computeroutput"><span class="identifier">multipolar</span></tt> is yet another
- simple generalization of polar coordinates. This time, both <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span> components of the quaternion are given
+ <code class="computeroutput"><span class="identifier">multipolar</span></code> is yet another
+ simple generalization of polar coordinates. This time, both <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> components of the quaternion are given
         in polar coordinates.
       </p>
 <a name="boost_quaternions.quaternions.creation_cylindrospherical"></a><p>
- <tt class="computeroutput"><span class="identifier">cylindrospherical</span></tt> is specific
- to quaternions. It is often interesting to consider <span class="emphasis"><em><span class="bold"><b>H</b></span></em></span>
- as the cartesian product of <span class="emphasis"><em><span class="bold"><b>R</b></span></em></span>
- by <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span> (the quaternionic
+ <code class="computeroutput"><span class="identifier">cylindrospherical</span></code> is specific
+ to quaternions. It is often interesting to consider <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span>
+ as the cartesian product of <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span>
+ by <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span> (the quaternionic
         multiplication as then a special form, as given here). This function therefore
- builds a quaternion from this representation, with the <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span> component given in usual <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span> spherical coordinates.
+ builds a quaternion from this representation, with the <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span> component given in usual <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span> spherical coordinates.
       </p>
 <a name="boost_quaternions.quaternions.creation_semipolar"></a><p>
- <tt class="computeroutput"><span class="identifier">semipolar</span></tt> is another generator
+ <code class="computeroutput"><span class="identifier">semipolar</span></code> is another generator
         which is specific to quaternions. It takes as a first input the magnitude
- of the quaternion, as a second input an angle in the range <tt class="computeroutput"><span class="number">0</span></tt> to <tt class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></tt>
- such that magnitudes of the first two <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span>
+ of the quaternion, as a second input an angle in the range <code class="computeroutput"><span class="number">0</span></code> to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code>
+ such that magnitudes of the first two <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>
         components of the quaternion are the product of the first input and the sine
         and cosine of this angle, respectively, and finally as third and fourth inputs
- angles in the range <tt class="computeroutput"><span class="special">-</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></tt> to <tt class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></tt> which represent the arguments of the first
- and second <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span> components
+ angles in the range <code class="computeroutput"><span class="special">-</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code> to <code class="computeroutput"><span class="special">+</span><span class="identifier">pi</span><span class="special">/</span><span class="number">2</span></code> which represent the arguments of the first
+ and second <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> components
         of the quaternion, respectively. As usual, nothing untoward happens if what
         should be magnitudes are negative numbers or angles are out of their natural
         ranges, as symmetries and periodicities kick in.
       </p>
 <p>
         In this version of our implementation of quaternions, there is no analogue
- of the complex value operation <tt class="computeroutput"><span class="identifier">arg</span></tt>
+ of the complex value operation <code class="computeroutput"><span class="identifier">arg</span></code>
         as the situation is somewhat more complicated. Unit quaternions are linked
- both to rotations in <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span>
- and in <span class="emphasis"><em><span class="bold"><b>R<sup>4</sup></b></span></em></span>, and the correspondences
+ both to rotations in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>
+ and in <span class="emphasis"><em><span class="bold"><strong>R<sup>4</sup></strong></span></em></span>, and the correspondences
         are not too complicated, but there is currently a lack of standard (de facto
         or de jure) matrix library with which the conversions could work. This should
         be remedied in a further revision. In the mean time, an example of how this
- could be done is presented here for R3, and here for R4 (<a href="../../../../../quaternion/HSO3SO4.cpp" target="_top">example
+ could be done is presented here for R3, and here for R4 (<a href="../../../../../quaternion/HSO3SO4.cpp" target="_top">example
         test file</a>).
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/exp.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/exp.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/exp.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,10 +1,9 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> The Quaternionic
- Exponential</title>
+<title>The Quaternionic Exponential</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="test_program.html" title="Test Program">
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,9 +24,9 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.exp"></a><a href="exp.html" title=" The Quaternionic
- Exponential"> The Quaternionic
- Exponential</a></h3></div></div></div>
+<a name="boost_quaternions.quaternions.exp"></a><a href="exp.html" title="The Quaternionic Exponential"> The Quaternionic
+ Exponential</a>
+</h3></div></div></div>
 <p>
         Please refer to the following PDF's:
       </p>
@@ -40,10 +39,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/header_file.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/header_file.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/header_file.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Header File</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="overview.html" title="Overview">
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,17 +24,19 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.header_file"></a>Header File</h3></div></div></div>
+<a name="boost_quaternions.quaternions.header_file"></a>Header File
+</h3></div></div></div>
 <p>
         The interface and implementation are both supplied by the header file quaternion.hpp.
       </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/history.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/history.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>History</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="acknowledgements.html" title="Acknowledgements">
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.history"></a>History</h3></div></div></div>
+<a name="boost_quaternions.quaternions.history"></a>History
+</h3></div></div></div>
 <div class="itemizedlist"><ul type="disc">
 <li>
           1.5.8 - 17/12/2005: Converted documentation to Quickbook Format.
@@ -92,10 +93,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_fun.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_fun.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_fun.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,24 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion Member
- Functions</title>
+<title>Quaternion Member Functions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="mem_typedef.html" title=" Quaternion
- Member Typedefs">
-<link rel="next" href="non_mem.html" title=" Quaternion Non-Member
- Operators">
+<link rel="prev" href="mem_typedef.html" title="Quaternion Member Typedefs">
+<link rel="next" href="non_mem.html" title="Quaternion Non-Member Operators">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,18 +24,17 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.mem_fun"></a><a href="mem_fun.html" title=" Quaternion Member
- Functions"> Quaternion Member
- Functions</a></h3></div></div></div>
-<a name="boost_quaternions.quaternions.mem_fun.constructors"></a><h3>
-<a name="id473048"></a>
+<a name="boost_quaternions.quaternions.mem_fun"></a><a href="mem_fun.html" title="Quaternion Member Functions"> Quaternion Member
+ Functions</a>
+</h3></div></div></div>
+<a name="boost_quaternions.quaternions.mem_fun.constructors"></a><h4>
+<a name="id506842"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.constructors">Constructors</a>
- </h3>
+ </h4>
 <p>
         Template version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span
> <span class="identifier">T</span><span class="special">());</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <
span class="special">=</span> <span class="identifier">T</span><span class="special">());</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</s
pan><span class="special">&gt;());</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -46,8 +42,7 @@
 <p>
         Float specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <sp
an class="number">0.0f</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span
class="special">=</span> <span class="number">0.0f</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&
gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -55,8 +50,7 @@
 <p>
         Double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <s
pan class="number">0.0</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span
 class="special">=</span> <span class="number">0.0</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">dou
ble</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -64,8 +58,7 @@
 <p>
         Long double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span cl
ass="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="key
word">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span
><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
 <span class="keyword">explicit</span> <span class="identifier">quaternion</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_recopier</span><span class="special">);</span>
@@ -86,18 +79,17 @@
         by the compiler. Converting copy constructors make use of a templated helper
         function in a "detail" subnamespace.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.other_member_functions"></a><h3>
-<a name="id475076"></a>
+<a name="boost_quaternions.quaternions.mem_fun.other_member_functions"></a><h4>
+<a name="id508866"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.other_member_functions">Other
         member functions</a>
- </h3>
-<a name="boost_quaternions.quaternions.mem_fun.real_and_unreal_parts"></a><h4>
-<a name="id475102"></a>
+ </h4>
+<a name="boost_quaternions.quaternions.mem_fun.real_and_unreal_parts"></a><h5>
+<a name="id508890"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.real_and_unreal_parts">Real
         and Unreal Parts</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">T</span> <span class="identifier">real</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">real</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">unreal</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
@@ -107,13 +99,12 @@
         quaternion, and usually nothing simpler (as opposed to the complex number
         case). These are returned by the first two functions.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.individual_real_components"></a><h4>
-<a name="id475210"></a>
+<a name="boost_quaternions.quaternions.mem_fun.individual_real_components"></a><h5>
+<a name="id508997"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.individual_real_components">Individual
         Real Components</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">T</span> <span class="identifier">R_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">R_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">T</span> <span class="identifier">R_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">T</span> <span class="identifier">R_component_3</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">T</span> <span class="identifier">R_component_4</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
@@ -122,34 +113,32 @@
         A quaternion having four real components, these are returned by these four
         functions. Hence real and R_component_1 return the same value.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.individual_complex__components"></a><h4>
-<a name="id475363"></a>
+<a name="boost_quaternions.quaternions.mem_fun.individual_complex__components"></a><h5>
+<a name="id509145"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.individual_complex__components">Individual
         Complex Components</a>
- </h4>
-<pre class="programlisting">
-<span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+ </h5>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_1</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">C_component_2</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
         A quaternion likewise has two complex components, and as we have seen above,
- for any quaternion <span class="emphasis"><em><tt class="literal">q = &#945; + &#946;i + &#947;j + &#948;k</tt></em></span> we also have
- <span class="emphasis"><em><tt class="literal">q = (&#945; + &#946;i) + (&#947; + &#948;i)j </tt></em></span>. These functions return them.
- The real part of <tt class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">C_component_1</span><span class="special">()</span></tt>
- is the same as <tt class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></tt>.
+ for any quaternion <span class="emphasis"><em><code class="literal">q = &#945; + &#946;i + &#947;j + &#948;k</code></em></span> we also have
+ <span class="emphasis"><em><code class="literal">q = (&#945; + &#946;i) + (&#947; + &#948;i)j </code></em></span>. These functions return them.
+ The real part of <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">C_component_1</span><span class="special">()</span></code>
+ is the same as <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></code>.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.quaternion_member_operators"></a><h3>
-<a name="id475585"></a>
+<a name="boost_quaternions.quaternions.mem_fun.quaternion_member_operators"></a><h4>
+<a name="id509368"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.quaternion_member_operators">Quaternion
         Member Operators</a>
- </h3>
-<a name="boost_quaternions.quaternions.mem_fun.assignment_operators"></a><h4>
-<a name="id475611"></a>
+ </h4>
+<a name="boost_quaternions.quaternions.mem_fun.assignment_operators"></a><h5>
+<a name="id509393"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.assignment_operators">Assignment
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">a_affecter</span><span class="special">);</span>
@@ -161,76 +150,72 @@
         value, and all other components to zero). For the unspecialized form, the
         base type's assignment operators must not throw.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.addition_operators"></a><h4>
-<a name="id476007"></a>
+<a name="boost_quaternions.quaternions.mem_fun.addition_operators"></a><h5>
+<a name="id509782"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.addition_operators">Addition
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These perform the mathematical operation <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)+</span><span class="identifier">rhs</span></tt>
- and store the result in <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt>.
+ These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)+</span><span class="identifier">rhs</span></code>
+ and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
         The unspecialized form has exception guards, which the specialized forms
         do not, so as to insure exception safety. For the unspecialized form, the
         base type's assignment operators must not throw.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.subtraction_operators"></a><h4>
-<a name="id476362"></a>
+<a name="boost_quaternions.quaternions.mem_fun.subtraction_operators"></a><h5>
+<a name="id510137"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.subtraction_operators">Subtraction
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">-=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These perform the mathematical operation <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)-</span><span class="identifier">rhs</span></tt>
- and store the result in <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt>.
+ These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)-</span><span class="identifier">rhs</span></code>
+ and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
         The unspecialized form has exception guards, which the specialized forms
         do not, so as to insure exception safety. For the unspecialized form, the
         base type's assignment operators must not throw.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.multiplication_operators"></a><h4>
-<a name="id476717"></a>
+<a name="boost_quaternions.quaternions.mem_fun.multiplication_operators"></a><h5>
+<a name="id510492"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.multiplication_operators">Multiplication
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">*=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These perform the mathematical operation <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">rhs</span></tt>
- <span class="bold"><b>in this order</b></span> (order is important as multiplication
- is not commutative for quaternions) and store the result in <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt>. The
+ These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">rhs</span></code>
+ <span class="bold"><strong>in this order</strong></span> (order is important as multiplication
+ is not commutative for quaternions) and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The
         unspecialized form has exception guards, which the specialized forms do not,
         so as to insure exception safety. For the unspecialized form, the base type's
         assignment operators must not throw.
       </p>
-<a name="boost_quaternions.quaternions.mem_fun.division_operators"></a><h4>
-<a name="id477080"></a>
+<a name="boost_quaternions.quaternions.mem_fun.division_operators"></a><h5>
+<a name="id510853"></a>
         <a href="mem_fun.html#boost_quaternions.quaternions.mem_fun.division_operators">Division
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
+ </h5>
+<pre class="programlisting"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">)</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">X</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">/=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">X</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These perform the mathematical operation <tt class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">inverse_of</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></tt>
- <span class="bold"><b>in this order</b></span> (order is important as multiplication
- is not commutative for quaternions) and store the result in <tt class="computeroutput"><span class="special">*</span><span class="keyword">this</span></tt>. The
+ These perform the mathematical operation <code class="computeroutput"><span class="special">(*</span><span class="keyword">this</span><span class="special">)*</span><span class="identifier">inverse_of</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">)</span></code>
+ <span class="bold"><strong>in this order</strong></span> (order is important as multiplication
+ is not commutative for quaternions) and store the result in <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The
         unspecialized form has exception guards, which the specialized forms do not,
         so as to insure exception safety. For the unspecialized form, the base type's
         assignment operators must not throw.
@@ -238,10 +223,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_typedef.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_typedef.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/mem_typedef.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,23 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion
- Member Typedefs</title>
+<title>Quaternion Member Typedefs</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="spec.html" title=" Quaternion Specializations">
-<link rel="next" href="mem_fun.html" title=" Quaternion Member
- Functions">
+<link rel="prev" href="spec.html" title="Quaternion Specializations">
+<link rel="next" href="mem_fun.html" title="Quaternion Member Functions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,35 +24,31 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.mem_typedef"></a><a href="mem_typedef.html" title=" Quaternion
- Member Typedefs"> Quaternion
- Member Typedefs</a></h3></div></div></div>
+<a name="boost_quaternions.quaternions.mem_typedef"></a><a href="mem_typedef.html" title="Quaternion Member Typedefs"> Quaternion
+ Member Typedefs</a>
+</h3></div></div></div>
 <p>
- <span class="bold"><b>value_type</b></span>
+ <span class="bold"><strong>value_type</strong></span>
       </p>
 <p>
         Template version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         Float specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">float</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         Double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         Long double specialization version:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="identifier">value_type</span><span class="special">;</span>
 </pre>
 <p>
         These provide easy acces to the type the template is built upon.
@@ -62,10 +56,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/non_mem.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/non_mem.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/non_mem.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,24 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion Non-Member
- Operators</title>
+<title>Quaternion Non-Member Operators</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="mem_fun.html" title=" Quaternion Member
- Functions">
-<link rel="next" href="value_op.html" title=" Quaternion Value
- Operations">
+<link rel="prev" href="mem_fun.html" title="Quaternion Member Functions">
+<link rel="next" href="value_op.html" title="Quaternion Value Operations">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,154 +24,145 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.non_mem"></a><a href="non_mem.html" title=" Quaternion Non-Member
- Operators"> Quaternion Non-Member
- Operators</a></h3></div></div></div>
-<a name="boost_quaternions.quaternions.non_mem.unary_plus"></a><h4>
-<a name="id477477"></a>
+<a name="boost_quaternions.quaternions.non_mem"></a><a href="non_mem.html" title="Quaternion Non-Member Operators"> Quaternion Non-Member
+ Operators</a>
+</h3></div></div></div>
+<a name="boost_quaternions.quaternions.non_mem.unary_plus"></a><h5>
+<a name="id511250"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.unary_plus">Unary Plus</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         This unary operator simply returns q.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.unary_minus"></a><h4>
-<a name="id477625"></a>
+<a name="boost_quaternions.quaternions.non_mem.unary_minus"></a><h5>
+<a name="id511395"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.unary_minus">Unary Minus</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         This unary operator returns the opposite of q.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.binary_addition_operators"></a><h4>
-<a name="id477773"></a>
+<a name="boost_quaternions.quaternions.non_mem.binary_addition_operators"></a><h5>
+<a name="id511541"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.binary_addition_operators">Binary
         Addition Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These operators return <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">+=</span>
- <span class="identifier">rhs</span></tt>.
+ These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">+=</span>
+ <span class="identifier">rhs</span></code>.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.binary_subtraction_operators"></a><h4>
-<a name="id478635"></a>
+<a name="boost_quaternions.quaternions.non_mem.binary_subtraction_operators"></a><h5>
+<a name="id512401"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.binary_subtraction_operators">Binary
         Subtraction Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These operators return <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">-=</span>
- <span class="identifier">rhs</span></tt>.
+ These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">-=</span>
+ <span class="identifier">rhs</span></code>.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.binary_multiplication_operators"></a><h4>
-<a name="id479497"></a>
+<a name="boost_quaternions.quaternions.non_mem.binary_multiplication_operators"></a><h5>
+<a name="id513263"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.binary_multiplication_operators">Binary
         Multiplication Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These operators return <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">*=</span>
- <span class="identifier">rhs</span></tt>.
+ These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">*=</span>
+ <span class="identifier">rhs</span></code>.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.binary_division_operators"></a><h4>
-<a name="id480359"></a>
+<a name="boost_quaternions.quaternions.non_mem.binary_division_operators"></a><h5>
+<a name="id514123"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.binary_division_operators">Binary
         Division Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="spe
cial">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifie
r">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">operator</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These operators return <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">/=</span>
- <span class="identifier">rhs</span></tt>. It is of course still an error
+ These operators return <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">/=</span>
+ <span class="identifier">rhs</span></code>. It is of course still an error
         to divide by zero...
       </p>
-<a name="boost_quaternions.quaternions.non_mem.equality_operators"></a><h4>
-<a name="id481220"></a>
+<a name="boost_quaternions.quaternions.non_mem.equality_operators"></a><h5>
+<a name="id514983"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.equality_operators">Equality
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These return true if and only if the four components of <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span></tt> are
- equal to their counterparts in <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">rhs</span><span class="special">)</span></tt>. As
+ These return true if and only if the four components of <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span></code> are
+ equal to their counterparts in <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">rhs</span><span class="special">)</span></code>. As
         with any floating-type entity, this is essentially meaningless.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.inequality_operators"></a><h4>
-<a name="id482030"></a>
+<a name="boost_quaternions.quaternions.non_mem.inequality_operators"></a><h5>
+<a name="id515794"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.inequality_operators">Inequality
         Operators</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span> <span class="special">!=</span> <span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">lhs</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">rhs</span><span class="special">);</span>
 </pre>
 <p>
- These return true if and only if <tt class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span>
- <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">rhs</span><span class="special">)</span></tt> is
+ These return true if and only if <code class="computeroutput"><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">lhs</span><span class="special">)</span> <span class="special">==</span>
+ <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">rhs</span><span class="special">)</span></code> is
         false. As with any floating-type entity, this is essentially meaningless.
       </p>
-<a name="boost_quaternions.quaternions.non_mem.stream_extractor"></a><h4>
-<a name="id482841"></a>
+<a name="boost_quaternions.quaternions.non_mem.stream_extractor"></a><h5>
+<a name="id516604"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.stream_extractor">Stream
         Extractor</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&gt;&gt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_istream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">is</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">q</span><s
pan class="special">);</span>
 </pre>
 <p>
         Extracts a quaternion q of one of the following forms (with a, b, c and d
- of type <tt class="computeroutput"><span class="identifier">T</span></tt>):
+ of type <code class="computeroutput"><span class="identifier">T</span></code>):
       </p>
 <p>
- <tt class="literal">a (a), (a,b), (a,b,c), (a,b,c,d) (a,(c)), (a,(c,d)), ((a)), ((a),c),
- ((a),(c)), ((a),(c,d)), ((a,b)), ((a,b),c), ((a,b),(c)), ((a,b),(c,d))</tt>
+ <code class="literal">a (a), (a,b), (a,b,c), (a,b,c,d) (a,(c)), (a,(c,d)), ((a)), ((a),c),
+ ((a),(c)), ((a),(c,d)), ((a,b)), ((a,b),c), ((a,b),(c)), ((a,b),(c,d))</code>
       </p>
 <p>
- The input values must be convertible to <tt class="computeroutput"><span class="identifier">T</span></tt>.
- If bad input is encountered, calls <tt class="computeroutput"><span class="identifier">is</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">ios</span><span class="special">::</span><span class="identifier">failbit</span><span class="special">)</span></tt>
+ The input values must be convertible to <code class="computeroutput"><span class="identifier">T</span></code>.
+ If bad input is encountered, calls <code class="computeroutput"><span class="identifier">is</span><span class="special">.</span><span class="identifier">setstate</span><span class="special">(</span><span class="identifier">ios</span><span class="special">::</span><span class="identifier">failbit</span><span class="special">)</span></code>
         (which may throw ios::failure (27.4.5.3)).
       </p>
 <p>
- <span class="bold"><b>Returns:</b></span> <tt class="computeroutput"><span class="identifier">is</span></tt>.
+ <span class="bold"><strong>Returns:</strong></span> <code class="computeroutput"><span class="identifier">is</span></code>.
       </p>
 <p>
         The rationale for the list of accepted formats is that either we have a list
@@ -184,21 +172,19 @@
         not (a,0,b,0), i.e. it is parsed as a list of two real numbers and not two
         complex numbers which happen to have imaginary parts equal to zero).
       </p>
-<a name="boost_quaternions.quaternions.non_mem.stream_inserter"></a><h4>
-<a name="id483218"></a>
+<a name="boost_quaternions.quaternions.non_mem.stream_inserter"></a><h5>
+<a name="id516980"></a>
         <a href="non_mem.html#boost_quaternions.quaternions.non_mem.stream_inserter">Stream
         Inserter</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span>
<span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
- Inserts the quaternion q onto the stream <tt class="computeroutput"><span class="identifier">os</span></tt>
+ Inserts the quaternion q onto the stream <code class="computeroutput"><span class="identifier">os</span></code>
         as if it were implemented as follows:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
 <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;&amp;</span> <span class="keyword">operator</span> <span class="special">&lt;&lt;</span> <span class="special">(</span>
                <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traits</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span>
                <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">)</span>
@@ -220,10 +206,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/overview.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Overview</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="../quaternions.html" title="Quaternions">
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,46 +24,47 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.overview"></a>Overview</h3></div></div></div>
+<a name="boost_quaternions.quaternions.overview"></a>Overview
+</h3></div></div></div>
 <p>
         Quaternions are a relative of complex numbers.
       </p>
 <p>
         Quaternions are in fact part of a small hierarchy of structures built upon
         the real numbers, which comprise only the set of real numbers (traditionally
- named <span class="emphasis"><em><span class="bold"><b>R</b></span></em></span>), the set of
- complex numbers (traditionally named <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span>),
- the set of quaternions (traditionally named <span class="emphasis"><em><span class="bold"><b>H</b></span></em></span>)
- and the set of octonions (traditionally named <span class="emphasis"><em><span class="bold"><b>O</b></span></em></span>),
+ named <span class="emphasis"><em><span class="bold"><strong>R</strong></span></em></span>), the set of
+ complex numbers (traditionally named <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span>),
+ the set of quaternions (traditionally named <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span>)
+ and the set of octonions (traditionally named <span class="emphasis"><em><span class="bold"><strong>O</strong></span></em></span>),
         which possess interesting mathematical properties (chief among which is the
         fact that they are <span class="emphasis"><em>division algebras</em></span>, <span class="emphasis"><em>i.e.</em></span>
- where the following property is true: if <span class="emphasis"><em><tt class="literal">y</tt></em></span>
- is an element of that algebra and is <span class="bold"><b>not equal to zero</b></span>,
- then <span class="emphasis"><em><tt class="literal">yx = yx'</tt></em></span>, where <span class="emphasis"><em><tt class="literal">x</tt></em></span>
- and <span class="emphasis"><em><tt class="literal">x'</tt></em></span> denote elements of that algebra,
- implies that <span class="emphasis"><em><tt class="literal">x = x'</tt></em></span>). Each member
+ where the following property is true: if <span class="emphasis"><em><code class="literal">y</code></em></span>
+ is an element of that algebra and is <span class="bold"><strong>not equal to zero</strong></span>,
+ then <span class="emphasis"><em><code class="literal">yx = yx'</code></em></span>, where <span class="emphasis"><em><code class="literal">x</code></em></span>
+ and <span class="emphasis"><em><code class="literal">x'</code></em></span> denote elements of that algebra,
+ implies that <span class="emphasis"><em><code class="literal">x = x'</code></em></span>). Each member
         of the hierarchy is a super-set of the former.
       </p>
 <p>
         One of the most important aspects of quaternions is that they provide an
- efficient way to parameterize rotations in <span class="emphasis"><em><span class="bold"><b>R<sup>3</sup></b></span></em></span>
- (the usual three-dimensional space) and <span class="emphasis"><em><span class="bold"><b>R<sup>4</sup></b></span></em></span>.
+ efficient way to parameterize rotations in <span class="emphasis"><em><span class="bold"><strong>R<sup>3</sup></strong></span></em></span>
+ (the usual three-dimensional space) and <span class="emphasis"><em><span class="bold"><strong>R<sup>4</sup></strong></span></em></span>.
       </p>
 <p>
         In practical terms, a quaternion is simply a quadruple of real numbers (&#945;,&#946;,&#947;,&#948;),
- which we can write in the form <span class="emphasis"><em><tt class="literal">q = &#945; + &#946;i + &#947;j + &#948;k</tt></em></span>,
- where <span class="emphasis"><em><tt class="literal">i</tt></em></span> is the same object as for
- complex numbers, and <span class="emphasis"><em><tt class="literal">j</tt></em></span> and <span class="emphasis"><em><tt class="literal">k</tt></em></span>
- are distinct objects which play essentially the same kind of role as <span class="emphasis"><em><tt class="literal">i</tt></em></span>.
+ which we can write in the form <span class="emphasis"><em><code class="literal">q = &#945; + &#946;i + &#947;j + &#948;k</code></em></span>,
+ where <span class="emphasis"><em><code class="literal">i</code></em></span> is the same object as for
+ complex numbers, and <span class="emphasis"><em><code class="literal">j</code></em></span> and <span class="emphasis"><em><code class="literal">k</code></em></span>
+ are distinct objects which play essentially the same kind of role as <span class="emphasis"><em><code class="literal">i</code></em></span>.
       </p>
 <p>
         An addition and a multiplication is defined on the set of quaternions, which
         generalize their real and complex counterparts. The main novelty here is
- that <span class="bold"><b>the multiplication is not commutative</b></span>
- (i.e. there are quaternions <span class="emphasis"><em><tt class="literal">x</tt></em></span> and
- <span class="emphasis"><em><tt class="literal">y</tt></em></span> such that <span class="emphasis"><em><tt class="literal">xy
- &#8800; yx</tt></em></span>). A good mnemotechnical way of remembering things
- is by using the formula <span class="emphasis"><em><tt class="literal">i*i = j*j = k*k = -1</tt></em></span>.
+ that <span class="bold"><strong>the multiplication is not commutative</strong></span>
+ (i.e. there are quaternions <span class="emphasis"><em><code class="literal">x</code></em></span> and
+ <span class="emphasis"><em><code class="literal">y</code></em></span> such that <span class="emphasis"><em><code class="literal">xy
+ &#8800; yx</code></em></span>). A good mnemotechnical way of remembering things
+ is by using the formula <span class="emphasis"><em><code class="literal">i*i = j*j = k*k = -1</code></em></span>.
       </p>
 <p>
         Quaternions (and their kin) are described in far more details in this other
@@ -78,10 +79,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/quat.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/quat.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/quat.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,21 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Template Class quaternion</title>
+<title>Template Class quaternion</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="synopsis.html" title="Synopsis">
-<link rel="next" href="spec.html" title=" Quaternion Specializations">
+<link rel="next" href="spec.html" title="Quaternion Specializations">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,17 +24,16 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.quat"></a> Template Class quaternion</h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<a name="boost_quaternions.quaternions.quat"></a> Template Class quaternion
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">quaternion</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
 
- <span class="keyword">typedef</span> <span class="identifier">T</span> <a href="mem_typedef.html" title=" Quaternion
- Member Typedefs">value_type</a><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">T</span> value_type<span class="special">;</span>
 
    <span class="keyword">explicit</span> quaternion<span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">(),</span> <span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier"
>requested_d</span> <span class="special">=</span> <span class="identifier">T</span><span class="special">());</span>
    <span class="keyword">explicit</span> quaternion<span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="
special">&lt;</span><span class="identifier">T</span><span class="special">&gt;());</span>
@@ -83,10 +82,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/spec.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/spec.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/spec.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,22 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion Specializations</title>
+<title>Quaternion Specializations</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="quat.html" title=" Template Class quaternion">
-<link rel="next" href="mem_typedef.html" title=" Quaternion
- Member Typedefs">
+<link rel="prev" href="quat.html" title="Template Class quaternion">
+<link rel="next" href="mem_typedef.html" title="Quaternion Member Typedefs">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,16 +24,15 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.spec"></a> Quaternion Specializations</h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<a name="boost_quaternions.quaternions.spec"></a> Quaternion Specializations
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span><span class="special">&lt;&gt;</span>
 <span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">typedef</span> <span class="keyword">float</span> <a href="mem_typedef.html" title=" Quaternion
- Member Typedefs">value_type</a><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">float</span> value_type<span class="special">;</span>
         
    <span class="keyword">explicit</span> quaternion<span class="special">(</span><span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">,</span> <span class="keyword">float</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requ
ested_d</span> <span class="special">=</span> <span class="number">0.0f</span><span class="special">);</span>
    <span class="keyword">explicit</span> quaternion<span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class
="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;());</span>
@@ -79,13 +77,11 @@
 </pre>
 <a name="boost_quaternions.quaternion_double"></a><p>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
 <span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">typedef</span> <span class="keyword">double</span> <a href="mem_typedef.html" title=" Quaternion
- Member Typedefs">value_type</a><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">double</span> value_type<span class="special">;</span>
         
    <span class="keyword">explicit</span> quaternion<span class="special">(</span><span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">req
uested_d</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">);</span>
    <span class="keyword">explicit</span> quaternion<span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span cla
ss="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;());</span>
@@ -130,13 +126,11 @@
 </pre>
 <a name="boost_quaternions.quaternion_long_double"></a><p>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;&gt;</span>
 <span class="keyword">class</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> <a href="mem_typedef.html" title=" Quaternion
- Member Typedefs">value_type</a><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">long</span> <span class="keyword">double</span> value_type<span class="special">;</span>
         
    <span class="keyword">explicit</span> quaternion<span class="special">(</span><span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_a</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_b</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</span> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_c</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">,</span> <span class="keyword">long</s
pan> <span class="keyword">double</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">requested_d</span> <span class="special">=</span> <span class="number">0.0L</span><span class="special">);</span>
    <span class="keyword">explicit</span> quaternion<span class="special">(::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z0</span><span class="special">,</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">z1</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">std</span><span class
="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">&gt;());</span>
@@ -185,10 +179,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/synopsis.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/synopsis.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/synopsis.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,19 +3,19 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Synopsis</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="header_file.html" title="Header File">
-<link rel="next" href="quat.html" title=" Template Class quaternion">
+<link rel="next" href="quat.html" title="Template Class quaternion">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,12 +24,12 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.synopsis"></a>Synopsis</h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<a name="boost_quaternions.quaternions.synopsis"></a>Synopsis
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">class</span> quaternion<span class="special">;</span>
-<span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> quaternion<float><span class="special">;</span>
+<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">class</span> quaternion<span class="special">;</span>
+<span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> quaternion<float><span class="special">;</span>
 <span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> quaternion<double><span class="special">;</span>
 <span class="keyword">template</span><span class="special">&lt;&gt;</span> <span class="keyword">class</span> quaternion<long double><span class="special">;</span>
 
@@ -111,10 +111,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/test_program.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/test_program.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/test_program.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,20 +3,19 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Test Program</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="trans.html" title=" Quaternion Transcendentals">
-<link rel="next" href="exp.html" title=" The Quaternionic
- Exponential">
+<link rel="prev" href="trans.html" title="Quaternion Transcendentals">
+<link rel="next" href="exp.html" title="The Quaternionic Exponential">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,7 +24,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.test_program"></a>Test Program</h3></div></div></div>
+<a name="boost_quaternions.quaternions.test_program"></a>Test Program
+</h3></div></div></div>
 <p>
         The quaternion_test.cpp
         test program tests quaternions specializations for float, double and long
@@ -36,7 +36,7 @@
         If you define the symbol boost_quaternions_TEST_VERBOSE, you will get additional
         output (verbose output);
         this will only be helpfull if you enable message output at the same time,
- of course (by uncommenting the relevant line in the test or by adding <tt class="literal">--log_level=messages</tt>
+ of course (by uncommenting the relevant line in the test or by adding <code class="literal">--log_level=messages</code>
         to your command line,...). In that case, and if you are running interactively,
         you may in addition define the symbol BOOST_INTERACTIVE_TEST_INPUT_ITERATOR
         to interactively test the input operator with input of your choice from the
@@ -45,10 +45,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/to_do.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/to_do.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/to_do.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>To Do</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
 <link rel="prev" href="history.html" title="History">
@@ -13,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -23,7 +23,8 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.to_do"></a>To Do</h3></div></div></div>
+<a name="boost_quaternions.quaternions.to_do"></a>To Do
+</h3></div></div></div>
 <div class="itemizedlist"><ul type="disc">
 <li>
           Improve testing.
@@ -42,10 +43,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/trans.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/trans.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/trans.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,13 +1,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion Transcendentals</title>
+<title>Quaternion Transcendentals</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="create.html" title=" Quaternion Creation
- Functions">
+<link rel="prev" href="create.html" title="Quaternion Creation Functions">
 <link rel="next" href="test_program.html" title="Test Program">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -25,16 +24,17 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.trans"></a> Quaternion Transcendentals</h3></div></div></div>
+<a name="boost_quaternions.quaternions.trans"></a> Quaternion Transcendentals
+</h3></div></div></div>
 <p>
- There is no <tt class="computeroutput"><span class="identifier">log</span></tt> or <tt class="computeroutput"><span class="identifier">sqrt</span></tt> provided for quaternions in this implementation,
- and <tt class="computeroutput"><span class="identifier">pow</span></tt> is likewise restricted
+ There is no <code class="computeroutput"><span class="identifier">log</span></code> or <code class="computeroutput"><span class="identifier">sqrt</span></code> provided for quaternions in this implementation,
+ and <code class="computeroutput"><span class="identifier">pow</span></code> is likewise restricted
         to integral powers of the exponent. There are several reasons to this: on
         the one hand, the equivalent of analytic continuation for quaternions ("branch
         cuts") remains to be investigated thoroughly (by me, at any rate...),
         and we wish to avoid the nonsense introduced in the standard by exponentiations
         of complexes by complexes (which is well defined, but not in the standard...).
- Talking of nonsense, saying that <tt class="computeroutput"><span class="identifier">pow</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></tt> is "implementation
+ Talking of nonsense, saying that <code class="computeroutput"><span class="identifier">pow</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code> is "implementation
         defined" is just plain brain-dead...
       </p>
 <p>
@@ -47,90 +47,82 @@
         on the other hand, the definition and existence of the exponential on the
         quaternions, is of course a fact known for a very long time). Basically,
         any converging power series with real coefficients which allows for a closed
- formula in <span class="emphasis"><em><span class="bold"><b>C</b></span></em></span> can be
- transposed to <span class="emphasis"><em><span class="bold"><b>H</b></span></em></span>. More
+ formula in <span class="emphasis"><em><span class="bold"><strong>C</strong></span></em></span> can be
+ transposed to <span class="emphasis"><em><span class="bold"><strong>H</strong></span></em></span>. More
         transcendentals of this type could be added in a further revision upon request.
         It should be noted that it is these functions which force the dependency
         upon the boost/math/special_functions/sinc.hpp
         and the boost/math/special_functions/sinhc.hpp
         headers.
       </p>
-<a name="boost_quaternions.quaternions.trans.exp"></a><h4>
-<a name="id486990"></a>
+<a name="boost_quaternions.quaternions.trans.exp"></a><h5>
+<a name="id520737"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.exp">exp</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the exponential of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.trans.cos"></a><h4>
-<a name="id385062"></a>
+<a name="boost_quaternions.quaternions.trans.cos"></a><h5>
+<a name="id435698"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.cos">cos</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cos</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cos</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the cosine of the quaternion
       </p>
-<a name="boost_quaternions.quaternions.trans.sin"></a><h4>
-<a name="id487128"></a>
+<a name="boost_quaternions.quaternions.trans.sin"></a><h5>
+<a name="id520873"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.sin">sin</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the sine of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.trans.tan"></a><h4>
-<a name="id487266"></a>
+<a name="boost_quaternions.quaternions.trans.tan"></a><h5>
+<a name="id521009"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.tan">tan</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the tangent of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.trans.cosh"></a><h4>
-<a name="id487405"></a>
+<a name="boost_quaternions.quaternions.trans.cosh"></a><h5>
+<a name="id521147"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.cosh">cosh</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">cosh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the hyperbolic cosine of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.trans.sinh"></a><h4>
-<a name="id487544"></a>
+<a name="boost_quaternions.quaternions.trans.sinh"></a><h5>
+<a name="id521285"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.sinh">sinh</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the hyperbolic sine of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.trans.tanh"></a><h4>
-<a name="id487683"></a>
+<a name="boost_quaternions.quaternions.trans.tanh"></a><h5>
+<a name="id521422"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.tanh">tanh</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">tanh</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         Computes the hyperbolic tangent of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.trans.pow"></a><h4>
-<a name="id487821"></a>
+<a name="boost_quaternions.quaternions.trans.pow"></a><h5>
+<a name="id521559"></a>
         <a href="trans.html#boost_quaternions.quaternions.trans.pow">pow</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">pow</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n</span><span class="special">);</span>
 </pre>
 <p>
         Computes the n-th power of the quaternion q.
@@ -138,10 +130,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/value_op.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/value_op.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/boost_quaternions/quaternions/value_op.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,24 +1,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quaternion Value
- Operations</title>
+<title>Quaternion Value Operations</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="../../index.html" title="Boost.Quaternions">
 <link rel="up" href="../quaternions.html" title="Quaternions">
-<link rel="prev" href="non_mem.html" title=" Quaternion Non-Member
- Operators">
-<link rel="next" href="create.html" title=" Quaternion Creation
- Functions">
+<link rel="prev" href="non_mem.html" title="Quaternion Non-Member Operators">
+<link rel="next" href="create.html" title="Quaternion Creation Functions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,69 +24,64 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_quaternions.quaternions.value_op"></a><a href="value_op.html" title=" Quaternion Value
- Operations"> Quaternion Value
- Operations</a></h3></div></div></div>
-<a name="boost_quaternions.quaternions.value_op.real_and_unreal"></a><h4>
-<a name="id484174"></a>
+<a name="boost_quaternions.quaternions.value_op"></a><a href="value_op.html" title="Quaternion Value Operations"> Quaternion Value
+ Operations</a>
+</h3></div></div></div>
+<a name="boost_quaternions.quaternions.value_op.real_and_unreal"></a><h5>
+<a name="id517934"></a>
         <a href="value_op.html#boost_quaternions.quaternions.value_op.real_and_unreal">real
         and unreal</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">real</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">real</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">unreal</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
- These return <tt class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></tt>
- and <tt class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">unreal</span><span class="special">()</span></tt>
+ These return <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">real</span><span class="special">()</span></code>
+ and <code class="computeroutput"><span class="identifier">q</span><span class="special">.</span><span class="identifier">unreal</span><span class="special">()</span></code>
         respectively.
       </p>
-<a name="boost_quaternions.quaternions.value_op.conj"></a><h4>
-<a name="id484454"></a>
+<a name="boost_quaternions.quaternions.value_op.conj"></a><h5>
+<a name="id518215"></a>
         <a href="value_op.html#boost_quaternions.quaternions.value_op.conj">conj</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">conj</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         This returns the conjugate of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.value_op.sup"></a><h4>
-<a name="id484594"></a>
+<a name="boost_quaternions.quaternions.value_op.sup"></a><h5>
+<a name="id518352"></a>
         <a href="value_op.html#boost_quaternions.quaternions.value_op.sup">sup</a>
- </h4>
+ </h5>
 <p>
         template&lt;typename T&gt; T sup(quaternion&lt;T&gt; const &amp; q);
       </p>
 <p>
- This return the sup norm (the greatest among <tt class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())...</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()))</span></tt> of the quaternion.
+ This return the sup norm (the greatest among <code class="computeroutput"><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())...</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()))</span></code> of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.value_op.l1"></a><h4>
-<a name="id484690"></a>
+<a name="boost_quaternions.quaternions.value_op.l1"></a><h5>
+<a name="id518450"></a>
         <a href="value_op.html#boost_quaternions.quaternions.value_op.l1">l1</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">l1</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">l1</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
- This return the l1 norm <tt class="computeroutput"><span class="special">(</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())+...+</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()))</span></tt> of the quaternion.
+ This return the l1 norm <code class="computeroutput"><span class="special">(</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_1</span><span class="special">())+...+</span><span class="identifier">abs</span><span class="special">(</span><span class="identifier">q</span><span class="special">.</span><span class="identifier">R_component_4</span><span class="special">()))</span></code> of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.value_op.abs"></a><h4>
-<a name="id484884"></a>
+<a name="boost_quaternions.quaternions.value_op.abs"></a><h5>
+<a name="id518642"></a>
         <a href="value_op.html#boost_quaternions.quaternions.value_op.abs">abs</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">abs</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">abs</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         This return the magnitude (Euclidian norm) of the quaternion.
       </p>
-<a name="boost_quaternions.quaternions.value_op.norm"></a><h4>
-<a name="id485007"></a>
+<a name="boost_quaternions.quaternions.value_op.norm"></a><h5>
+<a name="id518763"></a>
         <a href="value_op.html#boost_quaternions.quaternions.value_op.norm">norm</a>
- </h4>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">norm</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="identifier">norm</span><span class="special">(</span><span class="identifier">quaternion</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span><span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">q</span><span class="special">);</span>
 </pre>
 <p>
         This return the (Cayley) norm of the quaternion. The term "norm"
@@ -101,10 +93,11 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2001 -2003 Hubert Holin<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2003 Hubert Holin<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/math/doc/quaternion/html/index.html
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/html/index.html (original)
+++ branches/proto/v3/libs/math/doc/quaternion/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Boost.Quaternions</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
 <link rel="start" href="index.html" title="Boost.Quaternions">
 <link rel="next" href="boost_quaternions/quaternions.html" title="Quaternions">
 </head>
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2001 -2003 Hubert Holin</p></div>
 <div><div class="legalnotice">
-<a name="id387686"></a><p>
+<a name="id435842"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -66,10 +66,14 @@
 </dl></dd>
 </dl>
 </div>
+<p>
+ This manual is also available in <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/quaternion.pdf" target="_top">printer
+ friendly PDF format</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"><p><small>Last revised: December 29, 2006 at 11:08:32 +0000</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="boost_quaternions/quaternions.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>

Modified: branches/proto/v3/libs/math/doc/quaternion/math-quaternion.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/quaternion/math-quaternion.qbk (original)
+++ branches/proto/v3/libs/math/doc/quaternion/math-quaternion.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,6 +33,10 @@
 [def __expm1 [link boost_quaternions.math_special_functions.expm1 expm1]]
 [def __hypot [link boost_quaternions.math_special_functions.hypot hypot]]
 
+This manual is also available in
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/quaternion.pdf
+printer friendly PDF format].
+
 
 [section Quaternions]
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/credits.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/credits.qbk (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/credits.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -22,14 +22,14 @@
 
 Professor Nico Temme for advice on the inverse incomplete beta function.
 
-[@http:www.shoup.net Victor Shoup for NTL],
+[@http://www.shoup.net Victor Shoup for NTL],
 without which it would have much difficult to
 produce high accuracy constants, and especially
 the tables of accurate values for testing.
 
 We are grateful to Joel Guzman for helping us stress-test
 his
-[@http:www.boost.org/tools/quickbook/index.htm Boost.Quickbook]
+[@http://www.boost.org/tools/quickbook/index.htm Boost.Quickbook]
 program used to generate the html and pdf versions
 of this document, adding several new features en route.
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/ellint_legendre.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/ellint_legendre.qbk (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/ellint_legendre.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -188,7 +188,7 @@
 [heading Testing]
 
 The tests use a mixture of spot test values calculated using the online
-calculator at [http://@functions.wolfram.com
+calculator at [@http://functions.wolfram.com
 functions.wolfram.com], and random test data generated using
 NTL::RR at 1000-bit precision and this implementation.
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/index.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/index.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,10 +10,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -40,7 +40,7 @@
 <div><p class="copyright">Copyright © 2006 -2007 John Maddock, Paul A. Bristow, Hubert Holin
       and Xiaogang Zhang</p></div>
 <div><div class="legalnotice">
-<a name="id489930"></a><p>
+<a name="id435869"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -384,9 +384,13 @@
 <p>
     ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22
   </p>
+<p>
+ This manual is also available in <a href="http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math.pdf" target="_top">printer
+ friendly PDF format</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: November 13, 2007 at 17:03:47 GMT</small></p></td>
+<td align="left"><p><small>Last revised: February 29, 2008 at 09:41:25 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,7 +33,7 @@
         and reflect more the general implementation philosophy used.
       </p>
 <a name="math_toolkit.backgrounders.implementation.implemention_philosophy"></a><h5>
-<a name="id783651"></a>
+<a name="id782753"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.implemention_philosophy">Implemention
         philosophy</a>
       </h5>
@@ -85,7 +85,7 @@
         These could still provide sufficient accuracy for some speed-critical applications.
       </p>
 <a name="math_toolkit.backgrounders.implementation.accuracy_and_representation_of_test_values"></a><h5>
-<a name="id783762"></a>
+<a name="id782864"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.accuracy_and_representation_of_test_values">Accuracy
         and Representation of Test Values</a>
       </h5>
@@ -130,7 +130,7 @@
         binary value).
       </p>
 <a name="math_toolkit.backgrounders.implementation.tolerance_of_tests"></a><h5>
-<a name="id783987"></a>
+<a name="id783096"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.tolerance_of_tests">Tolerance
         of Tests</a>
       </h5>
@@ -156,7 +156,7 @@
         first that the suffix L is present, and then that the tolerance is big enough.
       </p>
 <a name="math_toolkit.backgrounders.implementation.handling_unsuitable_arguments"></a><h5>
-<a name="id784046"></a>
+<a name="id783156"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.handling_unsuitable_arguments">Handling
         Unsuitable Arguments</a>
       </h5>
@@ -242,7 +242,7 @@
         </p></td></tr>
 </table></div>
 <a name="math_toolkit.backgrounders.implementation.handling_of_functions_that_are_not_mathematically_defined"></a><h5>
-<a name="id784272"></a>
+<a name="id783380"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.handling_of_functions_that_are_not_mathematically_defined">Handling
         of Functions that are Not Mathematically defined</a>
       </h5>
@@ -276,7 +276,7 @@
         </p></td></tr>
 </table></div>
 <a name="math_toolkit.backgrounders.implementation.median_of_distributions"></a><h5>
-<a name="id784414"></a>
+<a name="id783521"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.median_of_distributions">Median
         of distributions</a>
       </h5>
@@ -309,7 +309,7 @@
         Basic Statistics.</a> give more detail, in particular for discrete distributions.
       </p>
 <a name="math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity"></a><h5>
-<a name="id784557"></a>
+<a name="id783666"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.handling_of_floating_point_infinity">Handling
         of Floating-Point Infinity</a>
       </h5>
@@ -347,15 +347,14 @@
         handling policies</a>.
       </p>
 <a name="math_toolkit.backgrounders.implementation.scale__shape_and_location"></a><h5>
-<a name="id784705"></a>
+<a name="id783814"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.scale__shape_and_location">Scale,
         Shape and Location</a>
       </h5>
 <p>
         We considered adding location and scale to the list of functions, for example:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">triangular_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">)</span>
 <span class="special">{</span>
   <span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="identifier">dist</span><span class="special">.</span><span class="identifier">lower</span><span class="special">();</span>
@@ -375,7 +374,7 @@
         functions, they can be added if required.
       </p>
 <a name="math_toolkit.backgrounders.implementation.notes_on_implementation_of_specific_functions__amp__distributions"></a><h5>
-<a name="id785171"></a>
+<a name="id784279"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.notes_on_implementation_of_specific_functions__amp__distributions">Notes
         on Implementation of Specific Functions &amp; Distributions</a>
       </h5>
@@ -387,7 +386,7 @@
           0 and upper = 1 would be more suitable.
         </li></ul></div>
 <a name="math_toolkit.backgrounders.implementation.rational_approximations_used"></a><h5>
-<a name="id785212"></a>
+<a name="id784320"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">Rational
         Approximations Used</a>
       </h5>
@@ -430,7 +429,7 @@
         to the "true" minimax solution.
       </p>
 <a name="math_toolkit.backgrounders.implementation.representation_of_mathematical_constants"></a><h5>
-<a name="id785308"></a>
+<a name="id784442"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.representation_of_mathematical_constants">Representation
         of Mathematical Constants</a>
       </h5>
@@ -461,8 +460,7 @@
 <p>
         For example, pi is defined:
       </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">pi</span><span class="special">,</span>
+<pre class="programlisting"><span class="identifier">BOOST_DEFINE_MATH_CONSTANT</span><span class="special">(</span><span class="identifier">pi</span><span class="special">,</span>
   <span class="number">3.141592653589793238462643383279502884197169399375105820974944</span><span class="special">,</span>
   <span class="number">5923078164062862089986280348253421170679821480865132823066470938446095505</span><span class="special">,</span>
   <span class="number">0</span><span class="special">)</span>
@@ -470,8 +468,7 @@
 <p>
         And used thus:
       </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">;</span>
 
 <span class="keyword">double</span> <span class="identifier">diameter</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">radius</span> <span class="special">=</span> <span class="identifier">diameter</span> <span class="special">*</span> <span class="identifier">pi</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;();</span>
@@ -484,18 +481,16 @@
 <p>
         So you cannot write
       </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">&lt;&gt;();</span> <span class="comment">// could not deduce template argument for 'T'
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">&lt;&gt;();</span> <span class="comment">// could not deduce template argument for 'T'
 </span></pre>
 <p>
         Neither can you write:
       </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">;</span> <span class="comment">// Context does not allow for disambiguation of overloaded function
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">;</span> <span class="comment">// Context does not allow for disambiguation of overloaded function
 </span><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">constants</span><span class="special">::</span><span class="identifier">pi</span><span class="special">();</span> <span class="comment">// Context does not allow for disambiguation of overloaded function
 </span></pre>
 <a name="math_toolkit.backgrounders.implementation.thread_safety"></a><h5>
-<a name="id785854"></a>
+<a name="id784983"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.thread_safety">Thread
         safety</a>
       </h5>
@@ -520,7 +515,7 @@
         the right thing here at some point.
       </p>
 <a name="math_toolkit.backgrounders.implementation.sources_of_test_data"></a><h5>
-<a name="id785919"></a>
+<a name="id785048"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.sources_of_test_data">Sources
         of Test Data</a>
       </h5>
@@ -564,7 +559,7 @@
         the underlying special function is known to be difficult to implement.
       </p>
 <a name="math_toolkit.backgrounders.implementation.creating_and_managing_the_equations"></a><h5>
-<a name="id786029"></a>
+<a name="id785159"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.creating_and_managing_the_equations">Creating
         and Managing the Equations</a>
       </h5>
@@ -716,7 +711,7 @@
         HTML: this needs further investigation.
       </p>
 <a name="math_toolkit.backgrounders.implementation.producing_graphs"></a><h5>
-<a name="id786388"></a>
+<a name="id785517"></a>
         <a href="implementation.html#math_toolkit.backgrounders.implementation.producing_graphs">Producing
         Graphs</a>
       </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="math_toolkit.backgrounders.lanczos"></a> The Lanczos Approximation
 </h3></div></div></div>
 <a name="math_toolkit.backgrounders.lanczos.motivation"></a><h5>
-<a name="id786766"></a>
+<a name="id785896"></a>
         <a href="lanczos.html#math_toolkit.backgrounders.lanczos.motivation">Motivation</a>
       </h5>
 <p>
@@ -69,15 +69,13 @@
         As the simplest example, consider the ratio of two gamma functions: one could
         compute the result via lgamma:
       </p>
-<pre class="programlisting">
-<span class="identifier">exp</span><span class="special">(</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">b</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">exp</span><span class="special">(</span><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">b</span><span class="special">));</span>
 </pre>
 <p>
         However, even if lgamma is uniformly accurate to 0.5ulp, the worst case relative
         error in the above can easily be shown to be:
       </p>
-<pre class="programlisting">
-<span class="identifier">Erel</span> <span class="special">&gt;</span> <span class="identifier">a</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">a</span><span class="special">)/</span><span class="number">2</span> <span class="special">+</span> <span class="identifier">b</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">b</span><span class="special">)/</span><span class="number">2</span>
+<pre class="programlisting"><span class="identifier">Erel</span> <span class="special">&gt;</span> <span class="identifier">a</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">a</span><span class="special">)/</span><span class="number">2</span> <span class="special">+</span> <span class="identifier">b</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">b</span><span class="special">)/</span><span class="number">2</span>
 </pre>
 <p>
         For small <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span> that's not a
@@ -100,7 +98,7 @@
         functions divided by large powers into single (simpler) expressions.
       </p>
 <a name="math_toolkit.backgrounders.lanczos.the_approximation"></a><h5>
-<a name="id787146"></a>
+<a name="id786273"></a>
         <a href="lanczos.html#math_toolkit.backgrounders.lanczos.the_approximation">The
         Approximation</a>
       </h5>
@@ -162,7 +160,7 @@
         </p></td></tr>
 </table></div>
 <a name="math_toolkit.backgrounders.lanczos.computing_the_coefficients"></a><h5>
-<a name="id787409"></a>
+<a name="id786536"></a>
         <a href="lanczos.html#math_toolkit.backgrounders.lanczos.computing_the_coefficients">Computing
         the Coefficients</a>
       </h5>
@@ -206,7 +204,7 @@
         multiplied by <span class="emphasis"><em>F</em></span> as the last step.
       </p>
 <a name="math_toolkit.backgrounders.lanczos.choosing_the_right_parameters"></a><h5>
-<a name="id787615"></a>
+<a name="id786742"></a>
         <a href="lanczos.html#math_toolkit.backgrounders.lanczos.choosing_the_right_parameters">Choosing
         the Right Parameters</a>
       </h5>
@@ -230,7 +228,7 @@
         computing to float precision with double precision arithmetic.
       </p>
 <div class="table">
-<a name="id787698"></a><p class="title"><b>Table 45. Optimal choices for N and g when computing with
+<a name="id786825"></a><p class="title"><b>Table 45. Optimal choices for N and g when computing with
       guard digits (source: Pugh)</b></p>
 <div class="table-contents"><table class="table" summary="Optimal choices for N and g when computing with
       guard digits (source: Pugh)">
@@ -373,7 +371,7 @@
         exactly matches the machine epsilon for the type in question.
       </p>
 <div class="table">
-<a name="id788031"></a><p class="title"><b>Table 46. Optimum value for N and g when computing at fixed
+<a name="id787147"></a><p class="title"><b>Table 46. Optimum value for N and g when computing at fixed
       precision</b></p>
 <div class="table-contents"><table class="table" summary="Optimum value for N and g when computing at fixed
       precision">
@@ -538,7 +536,7 @@
         is exact, and so isn't used for the gamma function.
       </p>
 <a name="math_toolkit.backgrounders.lanczos.references"></a><h5>
-<a name="id788309"></a>
+<a name="id787425"></a>
         <a href="lanczos.html#math_toolkit.backgrounders.lanczos.references">References</a>
       </h5>
 <a name="godfrey"></a><a name="pugh"></a><div class="orderedlist"><ol type="1">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="math_toolkit.backgrounders.refs"></a> References
 </h3></div></div></div>
 <a name="math_toolkit.backgrounders.refs.general_references"></a><h5>
-<a name="id789685"></a>
+<a name="id788797"></a>
         <a href="refs.html#math_toolkit.backgrounders.refs.general_references">General
         references</a>
       </h5>
@@ -85,7 +85,7 @@
         Library (version 2), Walter E. Brown</a>
       </p>
 <a name="math_toolkit.backgrounders.refs.calculators__that_we_found__and_used_to_cross_check___as_far_as_their_widely_varying_accuracy_allowed__"></a><h5>
-<a name="id789836"></a>
+<a name="id788950"></a>
         <a href="refs.html#math_toolkit.backgrounders.refs.calculators__that_we_found__and_used_to_cross_check___as_far_as_their_widely_varying_accuracy_allowed__">Calculators*
         that we found (and used to cross-check - as far as their widely-varying accuracy
         allowed).</a>
@@ -95,7 +95,7 @@
         Binomial Probability Distribution Calculator.
       </p>
 <a name="math_toolkit.backgrounders.refs.other_libraries"></a><h5>
-<a name="id789880"></a>
+<a name="id788995"></a>
         <a href="refs.html#math_toolkit.backgrounders.refs.other_libraries">Other Libraries</a>
       </h5>
 <p>
@@ -115,8 +115,8 @@
         version</a>.
       </p>
 <p>
- <a href="../../lib.stat.cmu.edu/general/cdflib" target="_top">CDFLIB Library of Fortran Routines
- for Cumulative Distribution functions.</a>
+ <a href="http://lib.stat.cmu.edu/general/cdflib" target="_top">CDFLIB Library of Fortran
+ Routines for Cumulative Distribution functions.</a>
       </p>
 <p>
         <a href="http://www.csit.fsu.edu/~burkardt/f_src/dcdflib/dcdflib.html" target="_top">DCDFLIB

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -81,7 +81,7 @@
 <a name="zero_error"></a><p>
       </p>
 <a name="math_toolkit.backgrounders.relative_error.the_impossibility_of_zero_error"></a><h5>
-<a name="id786688"></a>
+<a name="id785817"></a>
         <a href="relative_error.html#math_toolkit.backgrounders.relative_error.the_impossibility_of_zero_error">The
         Impossibility of Zero Error</a>
       </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -94,7 +94,7 @@
         are located!</em></span>
       </p>
 <a name="math_toolkit.backgrounders.remez.the_remez_method"></a><h5>
-<a name="id788560"></a>
+<a name="id787676"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.the_remez_method">The Remez
         Method</a>
       </h5>
@@ -174,7 +174,7 @@
 </td></tr>
 </table></div>
 <a name="math_toolkit.backgrounders.remez.remez_step_1"></a><h5>
-<a name="id788780"></a>
+<a name="id787896"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.remez_step_1">Remez Step
         1</a>
       </h5>
@@ -205,7 +205,7 @@
         to 5.6x10<sup>-4</sup>.
       </p>
 <a name="math_toolkit.backgrounders.remez.remez_step_2"></a><h5>
-<a name="id788885"></a>
+<a name="id788002"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.remez_step_2">Remez Step
         2</a>
       </h5>
@@ -234,7 +234,7 @@
         In our example we perform multi-point exchange.
       </p>
 <a name="math_toolkit.backgrounders.remez.iteration"></a><h5>
-<a name="id788946"></a>
+<a name="id788062"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.iteration">Iteration</a>
       </h5>
 <p>
@@ -250,7 +250,7 @@
         <span class="inlinemediaobject"><img src="../../../graphs/remez-4.png" alt="remez-4"></span>
       </p>
 <a name="math_toolkit.backgrounders.remez.rational_approximations"></a><h5>
-<a name="id789007"></a>
+<a name="id788123"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.rational_approximations">Rational
         Approximations</a>
       </h5>
@@ -299,7 +299,7 @@
         number of terms overall.
       </p>
 <a name="math_toolkit.backgrounders.remez.practical_considerations"></a><h5>
-<a name="id789129"></a>
+<a name="id788246"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.practical_considerations">Practical
         Considerations</a>
       </h5>
@@ -407,7 +407,7 @@
         desired minimax solution (5x10<sup>-4</sup>).
       </p>
 <a name="math_toolkit.backgrounders.remez.remez_method_checklist"></a><h5>
-<a name="id789409"></a>
+<a name="id788521"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.remez_method_checklist">Remez
         Method Checklist</a>
       </h5>
@@ -461,7 +461,7 @@
         </li>
 </ul></div>
 <a name="math_toolkit.backgrounders.remez.references"></a><h5>
-<a name="id789504"></a>
+<a name="id788616"></a>
         <a href="remez.html#math_toolkit.backgrounders.remez.references">References</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
         Algorithms</a>
 </h4></div></div></div>
 <a name="math_toolkit.dist.dist_ref.dist_algorithms.finding_the_location_and_scale_for_normal_and_similar_distributions"></a><h5>
-<a name="id615967"></a>
+<a name="id615484"></a>
           <a href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.finding_the_location_and_scale_for_normal_and_similar_distributions">Finding
           the Location and Scale for Normal and similar distributions</a>
         </h5>
@@ -46,24 +46,21 @@
           Complement versions are also provided, both with explicit and implicit
           (default) policy.
         </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span> <span class="comment">// May be needed by users defining their own policies.
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span> <span class="comment">// May be needed by users defining their own policies.
 </span><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">complement</span><span class="special">;</span> <span class="comment">// Will be needed by users who want to use complements.
 </span></pre>
 <a name="math_toolkit.dist.dist_ref.dist_algorithms.find_location_function"></a><h5>
-<a name="id616123"></a>
+<a name="id615639"></a>
           <a href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.find_location_function">find_location
           function</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span> <span class="comment">// explicit error handling policy
 </span> <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">find_location</span><span class="special">(</span> <span class="comment">// For example, normal mean.
@@ -83,19 +80,17 @@
   <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.dist.dist_ref.dist_algorithms.find_scale_function"></a><h5>
-<a name="id616746"></a>
+<a name="id616259"></a>
           <a href="dist_algorithms.html#math_toolkit.dist.dist_ref.dist_algorithms.find_scale_function">find_scale
           function</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
   <span class="keyword">typename</span> <span class="identifier">Dist</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">find_scale</span><span class="special">(</span> <span class="comment">// For example, normal mean.

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">bernoulli</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">bernoulli</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
            <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
  <span class="keyword">class</span> <span class="identifier">bernoulli_distribution</span><span class="special">;</span>
@@ -89,25 +87,23 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/bernoulli_cdf.png" alt="bernoulli_cdf"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.member_functions"></a><h5>
-<a name="id577477"></a>
+<a name="id577140"></a>
             <a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">bernoulli_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">bernoulli_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a <a href="http://en.wikipedia.org/wiki/bernoulli_distribution" target="_top">bernoulli
             distribution</a> with success_fraction <span class="emphasis"><em>p</em></span>.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>success_fraction</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.non_member_accessors"></a><h5>
-<a name="id577595"></a>
+<a name="id577255"></a>
             <a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -132,7 +128,7 @@
             exception and make an error message available.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.accuracy"></a><h5>
-<a name="id577770"></a>
+<a name="id577430"></a>
             <a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -140,7 +136,7 @@
             and so should have errors within an epsilon or two.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.implementation"></a><h5>
-<a name="id577801"></a>
+<a name="id577461"></a>
             <a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -331,7 +327,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist.references"></a><h5>
-<a name="id578172"></a>
+<a name="id577832"></a>
             <a href="bernoulli_dist.html#math_toolkit.dist.dist_ref.dists.bernoulli_dist.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
            <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -135,16 +133,15 @@
             from the centre (where x = half).
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.member_functions"></a><h5>
-<a name="id579306"></a>
+<a name="id578963"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.member_functions">Member
             Functions</a>
           </h5>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.constructor"></a><h6>
-<a name="id579332"></a>
+<a name="id578990"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.constructor">Constructor</a>
           </h6>
-<pre class="programlisting">
-<span class="identifier">beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a beta distribution with shape parameters <span class="emphasis"><em>alpha</em></span>
@@ -161,27 +158,24 @@
 <p>
             For example:
           </p>
-<pre class="programlisting">
-<span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a the beta distribution with alpha=2 and beta=5 (shown in
             yellow in the graph above).
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.parameter_accessors"></a><h6>
-<a name="id579515"></a>
+<a name="id579170"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.parameter_accessors">Parameter
             Accessors</a>
           </h6>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the parameter <span class="emphasis"><em>alpha</em></span> from which this distribution
             was constructed.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the parameter <span class="emphasis"><em>beta</em></span> from which this distribution
@@ -190,13 +184,12 @@
 <p>
             So for example:
           </p>
-<pre class="programlisting">
-<span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
 <span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">alpha</span><span class="special">()</span> <span class="special">==</span> <span class="number">2.</span><span class="special">);</span> <span class="comment">// mybeta.alpha() returns 2
 </span><span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">beta</span><span class="special">()</span> <span class="special">==</span> <span class="number">5.</span><span class="special">);</span> <span class="comment">// mybeta.beta() returns 5
 </span></pre>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.parameter_estimators"></a><h5>
-<a name="id579794"></a>
+<a name="id579446"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.parameter_estimators">Parameter
             Estimators</a>
           </h5>
@@ -216,8 +209,7 @@
             Prevalence Calculator</a> and <a href="http://www.epi.ucdavis.edu/diagnostictests/betabuster.html" target="_top">Beta
             Buster</a> but this is not yet implemented here.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
   <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.
 </span> <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.
 </span></pre>
@@ -225,8 +217,7 @@
             Returns the unique value of &#945; that corresponds to a beta distribution with
             mean <span class="emphasis"><em>mean</em></span> and variance <span class="emphasis"><em>variance</em></span>.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
   <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.
 </span> <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.
 </span></pre>
@@ -234,8 +225,7 @@
             Returns the unique value of &#946; that corresponds to a beta distribution with
             mean <span class="emphasis"><em>mean</em></span> and variance <span class="emphasis"><em>variance</em></span>.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span> <span class="comment">// from beta.
 </span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">// x.
 </span> <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf
@@ -243,8 +233,7 @@
 <p>
             Returns the value of &#945; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="comment">// alpha.
 </span> <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">// probability x.
 </span> <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf.
@@ -253,7 +242,7 @@
             Returns the value of &#946; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.non_member_accessor_functions"></a><h5>
-<a name="id580434"></a>
+<a name="id580080"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.non_member_accessor_functions">Non-member
             Accessor Functions</a>
           </h5>
@@ -275,7 +264,7 @@
             Mathworld</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.applications"></a><h5>
-<a name="id580612"></a>
+<a name="id580258"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.applications">Applications</a>
           </h5>
 <p>
@@ -288,7 +277,7 @@
             statistical inference</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.related_distributions"></a><h5>
-<a name="id580657"></a>
+<a name="id580304"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.related_distributions">Related
             distributions</a>
           </h5>
@@ -314,7 +303,7 @@
             Distribution</a> with its p parameter set to x.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.accuracy"></a><h5>
-<a name="id580746"></a>
+<a name="id580392"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -326,7 +315,7 @@
             please refer to these functions for information on accuracy.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.implementation"></a><h5>
-<a name="id580824"></a>
+<a name="id580471"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -608,7 +597,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist.references"></a><h5>
-<a name="id582121"></a>
+<a name="id581768"></a>
             <a href="beta_dist.html#math_toolkit.dist.dist_ref.dists.beta_dist.references">References</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -169,16 +167,15 @@
 <p>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.member_functions"></a><h5>
-<a name="id583420"></a>
+<a name="id583065"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.member_functions">Member
             Functions</a>
           </h5>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.construct"></a><h6>
-<a name="id583445"></a>
+<a name="id583089"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.construct">Construct</a>
           </h6>
-<pre class="programlisting">
-<span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
 </pre>
 <p>
             Constructor: <span class="emphasis"><em>n</em></span> is the total number of trials, <span class="emphasis"><em>p</em></span>
@@ -192,30 +189,27 @@
             otherwise calls domain_error.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.accessors"></a><h6>
-<a name="id583607"></a>
+<a name="id583250"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.accessors">Accessors</a>
           </h6>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the parameter <span class="emphasis"><em>p</em></span> from which this distribution
             was constructed.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the parameter <span class="emphasis"><em>n</em></span> from which this distribution
             was constructed.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fraction"></a><h6>
-<a name="id583725"></a>
+<a name="id583366"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.lower_bound_on_the_success_fraction">Lower
             Bound on the Success Fraction</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
@@ -254,8 +248,7 @@
             but if you want to be 95% sure that the true value is <span class="bold"><strong>greater
             than</strong></span> some value, <span class="emphasis"><em>p<sub>min</sub></em></span>, then:
           </p>
-<pre class="programlisting">
-<span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
                     <span class="identifier">n</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
@@ -269,8 +262,7 @@
             both members of class template <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>,
             so usage is for example:
           </p>
-<pre class="programlisting">
-<span class="identifier">p</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
     <span class="identifier">n</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">jeffreys_prior_interval</span><span class="special">);</span>
 </pre>
 <p>
@@ -319,12 +311,11 @@
             limits illustrated in the case of the binomial. Biometrika 26 404-413.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fraction"></a><h6>
-<a name="id584382"></a>
+<a name="id584020"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.upper_bound_on_the_success_fraction">Upper
             Bound on the Success Fraction</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
@@ -364,8 +355,7 @@
             but if you want to be 95% sure that the true value is <span class="bold"><strong>less
             than</strong></span> some value, <span class="emphasis"><em>p<sub>max</sub></em></span>, then:
           </p>
-<pre class="programlisting">
-<span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
                     <span class="identifier">n</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
@@ -399,12 +389,11 @@
 </td></tr>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_required_for_a_certain_number_of_successes"></a><h6>
-<a name="id584824"></a>
+<a name="id584461"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_number_of_trials_required_for_a_certain_number_of_successes">Estimating
             the Number of Trials Required for a Certain Number of Successes</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span> <span class="comment">// number of events
 </span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// success fraction
 </span> <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold
@@ -435,21 +424,19 @@
 <p>
             For example:
           </p>
-<pre class="programlisting">
-<span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
             Returns the smallest number of trials we must conduct to be 95% sure
             of seeing 10 events that occur with frequency one half.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of_trials_to_ensure_no_more_than_a_certain_number_of_successes"></a><h6>
-<a name="id585100"></a>
+<a name="id584734"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.estimating_the_maximum_number_of_trials_to_ensure_no_more_than_a_certain_number_of_successes">Estimating
             the Maximum Number of Trials to Ensure no more than a Certain Number
             of Successes</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span> <span class="comment">// number of events
 </span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// success fraction
 </span> <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold
@@ -480,8 +467,7 @@
 <p>
             For example:
           </p>
-<pre class="programlisting">
-<span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1e-6</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1e-6</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
             Returns the largest number of trials we can conduct and still be 95%
@@ -493,7 +479,7 @@
             Worked Example.</a>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.non_member_accessors"></a><h5>
-<a name="id585394"></a>
+<a name="id585026"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -518,7 +504,7 @@
             in the context of this distribution:
           </p>
 <div class="table">
-<a name="id585608"></a><p class="title"><b>Table 9. Meaning of the non-member accessors</b></p>
+<a name="id585240"></a><p class="title"><b>Table 9. Meaning of the non-member accessors</b></p>
 <div class="table-contents"><table class="table" summary="Meaning of the non-member accessors">
 <colgroup>
 <col>
@@ -641,7 +627,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.dist.dist_ref.dists.binomial_dist.examples"></a><h5>
-<a name="id586168"></a>
+<a name="id585800"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.examples">Examples</a>
           </h5>
 <p>
@@ -649,7 +635,7 @@
             examples</a> are available illustrating the use of the binomial distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.accuracy"></a><h5>
-<a name="id586208"></a>
+<a name="id585840"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -659,7 +645,7 @@
             please refer to these functions for information on accuracy.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.implementation"></a><h5>
-<a name="id586257"></a>
+<a name="id585889"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -728,8 +714,7 @@
                   <p>
                     
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">
-<span class="identifier">p</span> <span class="special">=</span> <span class="identifier">I</span><span class="special">[</span><span class="identifier">sub</span> <span class="number">1</span><span class="special">-</span><span class="identifier">p</span><span class="special">](</span><span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">)</span>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">I</span><span class="special">[</span><span class="identifier">sub</span> <span class="number">1</span><span class="special">-</span><span class="identifier">p</span><span class="special">](</span><span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">)</span>
   <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">I</span><span class="special">[</span><span class="identifier">sub</span> <span class="identifier">p</span><span class="special">](</span><span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">)</span>
   <span class="special">=</span> ibetac<span class="special">(</span><span class="identifier">k</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">n</span> <span class="special">-</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span></pre>
 <p>
@@ -901,7 +886,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist.references"></a><h5>
-<a name="id587598"></a>
+<a name="id587226"></a>
             <a href="binomial_dist.html#math_toolkit.dist.dist_ref.dists.binomial_dist.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">cauchy_distribution</span><span class="special">;</span>
 
@@ -90,12 +88,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/cauchy2.png" alt="cauchy2"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.member_functions"></a><h5>
-<a name="id588280"></a>
+<a name="id587906"></a>
             <a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">cauchy_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cauchy_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a Cauchy distribution, with location parameter <span class="emphasis"><em>location</em></span>
@@ -106,20 +103,18 @@
 <p>
             Requires scale &gt; 0, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the location parameter of the distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the scale parameter of the distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.non_member_accessors"></a><h5>
-<a name="id588495"></a>
+<a name="id588117"></a>
             <a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -156,7 +151,7 @@
             The domain of the random variable is [-[max_value], +[min_value]].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.accuracy"></a><h5>
-<a name="id588749"></a>
+<a name="id588372"></a>
             <a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -165,7 +160,7 @@
             have very low error rates.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.implementation"></a><h5>
-<a name="id588804"></a>
+<a name="id588427"></a>
             <a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -281,7 +276,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.cauchy_dist.references"></a><h5>
-<a name="id589094"></a>
+<a name="id588717"></a>
             <a href="cauchy_dist.html#math_toolkit.dist.dist_ref.dists.cauchy_dist.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -89,12 +87,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/chi_square.png" alt="chi_square"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.member_functions"></a><h5>
-<a name="id589860"></a>
+<a name="id589478"></a>
             <a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">chi_squared_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">v</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a Chi-Squared distribution with <span class="emphasis"><em>v</em></span> degrees
@@ -103,15 +100,13 @@
 <p>
             Requires v &gt; 0, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the parameter <span class="emphasis"><em>v</em></span> from which this object was
             constructed.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">difference_from_variance</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
@@ -175,7 +170,7 @@
             NIST Engineering Statistics Handbook, Section 7.2.3.2</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.non_member_accessors"></a><h5>
-<a name="id590307"></a>
+<a name="id589923"></a>
             <a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -195,7 +190,7 @@
             The domain of the random variable is [0, +&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.examples"></a><h5>
-<a name="id590476"></a>
+<a name="id590093"></a>
             <a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.examples">Examples</a>
           </h5>
 <p>
@@ -203,7 +198,7 @@
             are available illustrating the use of the Chi Squared Distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.accuracy"></a><h5>
-<a name="id590517"></a>
+<a name="id590134"></a>
             <a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -211,7 +206,7 @@
             gamma functions</a>: please refer to the accuracy data for those functions.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.implementation"></a><h5>
-<a name="id590560"></a>
+<a name="id590176"></a>
             <a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -378,7 +373,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist.references"></a><h5>
-<a name="id590904"></a>
+<a name="id590520"></a>
             <a href="chi_squared_dist.html#math_toolkit.dist.dist_ref.dists.chi_squared_dist.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">exponential</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">exponential</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">exponential_distribution</span><span class="special">;</span>
 
@@ -73,12 +71,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/exponential_dist.png" alt="exponential_dist"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.exp_dist.member_functions"></a><h5>
-<a name="id591473"></a>
+<a name="id591087"></a>
             <a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">exponential_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">exponential_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lambda</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs an <a href="http://en.wikipedia.org/wiki/Exponential_distribution" target="_top">Exponential
@@ -88,14 +85,13 @@
 <p>
             Requires lambda &gt; 0, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lambda</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Accessor function returns the lambda parameter of the distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.exp_dist.non_member_accessors"></a><h5>
-<a name="id591617"></a>
+<a name="id591229"></a>
             <a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -115,7 +111,7 @@
             The domain of the random variable is [0, +&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.exp_dist.accuracy"></a><h5>
-<a name="id591788"></a>
+<a name="id591400"></a>
             <a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -126,7 +122,7 @@
             should have very low error rates.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.exp_dist.implementation"></a><h5>
-<a name="id591866"></a>
+<a name="id591478"></a>
             <a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -287,7 +283,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.exp_dist.references"></a><h5>
-<a name="id592168"></a>
+<a name="id591780"></a>
             <a href="exp_dist.html#math_toolkit.dist.dist_ref.dists.exp_dist.references">references</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">extreme</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">extreme</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">extreme_value_distribution</span><span class="special">;</span>
 
@@ -96,12 +94,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/extreme_val_dist2.png" alt="extreme_val_dist2"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.extreme_dist.member_functions"></a><h5>
-<a name="id592850"></a>
+<a name="id592460"></a>
             <a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">extreme_value_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">extreme_value_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs an Extreme Value distribution with the specified location
@@ -111,20 +108,18 @@
             Requires <code class="computeroutput"><span class="identifier">scale</span> <span class="special">&gt;</span>
             <span class="number">0</span></code>, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the location parameter of the distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the scale parameter of the distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.extreme_dist.non_member_accessors"></a><h5>
-<a name="id593078"></a>
+<a name="id592683"></a>
             <a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -144,7 +139,7 @@
             The domain of the random parameter is [-&#8734;, +&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.extreme_dist.accuracy"></a><h5>
-<a name="id593248"></a>
+<a name="id592854"></a>
             <a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -153,7 +148,7 @@
             very low error rates.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.extreme_dist.implementation"></a><h5>
-<a name="id593302"></a>
+<a name="id592907"></a>
             <a href="extreme_dist.html#math_toolkit.dist.dist_ref.dists.extreme_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,12 +29,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">fisher_f</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">fisher_f</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -82,12 +80,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/fisher_f.png" alt="fisher_f"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.f_dist.member_functions"></a><h5>
-<a name="id594249"></a>
+<a name="id593854"></a>
             <a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">fisher_f_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">df1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">df2</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">fisher_f_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">df1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">df2</span><span class="special">);</span>
 </pre>
 <p>
             Constructs an F-distribution with numerator degrees of freedom <span class="emphasis"><em>df1</em></span>
@@ -98,20 +95,18 @@
             both greater than zero, otherwise domain_error
             is called.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom1</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the numerator degrees of freedom parameter of the distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom2</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom2</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the denominator degrees of freedom parameter of the distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.f_dist.non_member_accessors"></a><h5>
-<a name="id594466"></a>
+<a name="id594065"></a>
             <a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -131,7 +126,7 @@
             The domain of the random variable is [0, +&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.f_dist.examples"></a><h5>
-<a name="id594637"></a>
+<a name="id594237"></a>
             <a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.examples">Examples</a>
           </h5>
 <p>
@@ -139,7 +134,7 @@
             are available illustrating the use of the F Distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.f_dist.accuracy"></a><h5>
-<a name="id594677"></a>
+<a name="id594276"></a>
             <a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -148,7 +143,7 @@
             refer to those functions for accuracy data.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.f_dist.implementation"></a><h5>
-<a name="id594726"></a>
+<a name="id594325"></a>
             <a href="f_dist.html#math_toolkit.dist.dist_ref.dists.f_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -78,8 +76,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">gamma_distibution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">gamma_distibution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span></pre>
 <p>
             </p>
 <p>
@@ -88,8 +85,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special">&lt;&gt;</span></pre>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special">&lt;&gt;</span></pre>
 <p>
             </p>
 </td></tr>
@@ -141,12 +137,11 @@
             than a dedicated Erlang Distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.gamma_dist.member_functions"></a><h5>
-<a name="id596123"></a>
+<a name="id595718"></a>
             <a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">gamma_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">gamma_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a gamma distribution with shape <span class="emphasis"><em>shape</em></span>
@@ -156,20 +151,18 @@
             Requires that the shape and scale parameters are greater than zero, otherwise
             calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.gamma_dist.non_member_accessors"></a><h5>
-<a name="id596331"></a>
+<a name="id595922"></a>
             <a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -189,7 +182,7 @@
             The domain of the random variable is [0,+&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.gamma_dist.accuracy"></a><h5>
-<a name="id596501"></a>
+<a name="id596092"></a>
             <a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -201,7 +194,7 @@
             refer to the accuracy data for those functions for more information.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.gamma_dist.implementation"></a><h5>
-<a name="id596570"></a>
+<a name="id596161"></a>
             <a href="gamma_dist.html#math_toolkit.dist.dist_ref.dists.gamma_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">lognormal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">lognormal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -90,12 +88,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/lognormal2.png" alt="lognormal2"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.member_functions"></a><h5>
-<a name="id597592"></a>
+<a name="id597181"></a>
             <a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">lognormal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">lognormal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a lognormal distribution with location <span class="emphasis"><em>location</em></span>
@@ -113,20 +110,18 @@
             Requires that the scale parameter is greater than zero, otherwise calls
             <a href="../../../main_overview/error_handling.html#domain_error">domain_error</a>.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>location</em></span> parameter of this distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.non_member_accessors"></a><h5>
-<a name="id597823"></a>
+<a name="id597408"></a>
             <a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -146,7 +141,7 @@
             The domain of the random variable is [0,+&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.accuracy"></a><h5>
-<a name="id597991"></a>
+<a name="id597576"></a>
             <a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -155,7 +150,7 @@
             function</a>, and as such should have very low error rates.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.lognormal_dist.implementation"></a><h5>
-<a name="id598032"></a>
+<a name="id597617"></a>
             <a href="lognormal_dist.html#math_toolkit.dist.dist_ref.dists.lognormal_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -125,7 +123,7 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/neg_binomial_pdf2.png" alt="neg_binomial_pdf2"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.related_distributions"></a><h5>
-<a name="id599484"></a>
+<a name="id599060"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.related_distributions">Related
             Distributions</a>
           </h5>
@@ -202,16 +200,15 @@
 <p>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.member_functions"></a><h5>
-<a name="id599688"></a>
+<a name="id599264"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.member_functions">Member
             Functions</a>
           </h5>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.construct"></a><h6>
-<a name="id599715"></a>
+<a name="id599292"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.construct">Construct</a>
           </h6>
-<pre class="programlisting">
-<span class="identifier">negative_binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
 </pre>
 <p>
             Constructor: <span class="emphasis"><em>r</em></span> is the total number of successes,
@@ -224,30 +221,27 @@
             <span class="special">&lt;=</span> <span class="number">1</span></code>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accessors"></a><h6>
-<a name="id599871"></a>
+<a name="id599446"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accessors">Accessors</a>
           </h6>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// successes / trials (0 &lt;= p &lt;= 1)
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">success_fraction</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// successes / trials (0 &lt;= p &lt;= 1)
 </span></pre>
 <p>
             Returns the parameter <span class="emphasis"><em>p</em></span> from which this distribution
             was constructed.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// required successes (r &gt; 0)
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> <span class="comment">// required successes (r &gt; 0)
 </span></pre>
 <p>
             Returns the parameter <span class="emphasis"><em>r</em></span> from which this distribution
             was constructed.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p"></a><h6>
-<a name="id599999"></a>
+<a name="id599572"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.lower_bound_on_parameter_p">Lower
             Bound on Parameter p</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
   <span class="identifier">RealType</span> <span class="identifier">failures</span><span class="special">,</span>
   <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
   <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">)</span> <span class="comment">// (0 &lt;= alpha &lt;= 1), 0.05 equivalent to 95% confidence.
@@ -282,8 +276,7 @@
             want to be 95% sure that the true value is <span class="bold"><strong>greater
             than</strong></span> some value, <span class="emphasis"><em>p<sub>min</sub></em></span>, then:
           </p>
-<pre class="programlisting">
-<span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">p</span><sub>min</sub> <span class="special">=</span> <span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_lower_bound_on_p</span><span class="special">(</span>
                     <span class="identifier">failures</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
@@ -305,12 +298,11 @@
             vol. 48, no3, 605-621</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p"></a><h6>
-<a name="id600365"></a>
+<a name="id599936"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.upper_bound_on_parameter_p">Upper
             Bound on Parameter p</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">trials</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">successes</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// (0 &lt;= alpha &lt;= 1), 0.05 equivalent to 95% confidence.
@@ -344,8 +336,7 @@
             but if you want to be 95% sure that the true value is <span class="bold"><strong>less
             than</strong></span> some value, <span class="emphasis"><em>p<sub>max</sub></em></span>, then:
           </p>
-<pre class="programlisting">
-<span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">p</span><sub>max</sub> <span class="special">=</span> <span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_upper_bound_on_p</span><span class="special">(</span>
                     <span class="identifier">r</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
@@ -367,12 +358,11 @@
             vol. 48, no3, 605-621</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures"></a><h6>
-<a name="id600730"></a>
+<a name="id600297"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_at_least_a_certain_number_of_failures">Estimating
             Number of Trials to Ensure at Least a Certain Number of Failures</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span> <span class="comment">// number of failures.
 </span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// success fraction.
 </span> <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold (0.05 equivalent to 95%).
@@ -402,8 +392,7 @@
 <p>
             For example:
           </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="number">10</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
             Returns the smallest number of trials we must conduct to be 95% sure
@@ -420,12 +409,11 @@
             probability of observing k failures or fewer.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less"></a><h6>
-<a name="id601039"></a>
+<a name="id600605"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.estimating_number_of_trials_to_ensure_a_maximum_number_of_failures_or_less">Estimating
             Number of Trials to Ensure a Maximum Number of Failures or Less</a>
           </h6>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">k</span><span class="special">,</span> <span class="comment">// number of failures.
 </span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// success fraction.
 </span> <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">);</span> <span class="comment">// probability threshold (0.05 equivalent to 95%).
@@ -456,8 +444,7 @@
 <p>
             For example:
           </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1.0</span><span class="special">-</span><span class="number">1.0</span><span class="special">/</span><span class="number">1000000</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;::</span><span class="identifier">find_maximum_number_of_trials</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">1.0</span><span class="special">-</span><span class="number">1.0</span><span class="special">/</span><span class="number">1000000</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
             Returns the largest number of trials we can conduct and still be 95%
@@ -470,7 +457,7 @@
             probability of observing more than k failures.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.non_member_accessors"></a><h5>
-<a name="id601359"></a>
+<a name="id600922"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -491,7 +478,7 @@
             in the context of this distribution:
           </p>
 <div class="table">
-<a name="id601522"></a><p class="title"><b>Table 10. Meaning of the non-member accessors.</b></p>
+<a name="id601085"></a><p class="title"><b>Table 10. Meaning of the non-member accessors.</b></p>
 <div class="table-contents"><table class="table" summary="Meaning of the non-member accessors.">
 <colgroup>
 <col>
@@ -524,8 +511,7 @@
                 <p>
                   
 </p>
-<pre class="programlisting">
-<span class="identifier">pdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
 <p>
                 </p>
                 </td>
@@ -545,8 +531,7 @@
                 <p>
                   
 </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">)</span></pre>
 <p>
                 </p>
                 </td>
@@ -567,8 +552,7 @@
                 <p>
                   
 </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">))</span></pre>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">))</span></pre>
 <p>
                 </p>
                 </td>
@@ -590,8 +574,7 @@
                 <p>
                   
 </p>
-<pre class="programlisting">
-<span class="identifier">quantile</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">)</span></pre>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">)</span></pre>
 <p>
                 </p>
                 </td>
@@ -611,8 +594,7 @@
                   and not an integer. Depending on the use case you may want to take
                   either the floor or ceiling of the real result. For example:
 </p>
-<pre class="programlisting">
-<span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">))</span></pre>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">P</span><span class="special">))</span></pre>
 <p>
                 </p>
                 </td>
@@ -621,7 +603,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accuracy"></a><h5>
-<a name="id602086"></a>
+<a name="id601649"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -631,7 +613,7 @@
             please refer to these functions for information on accuracy.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist.implementation"></a><h5>
-<a name="id602136"></a>
+<a name="id601699"></a>
             <a href="negative_binomial_dist.html#math_toolkit.dist.dist_ref.dists.negative_binomial_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -81,12 +79,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/normal.png" alt="normal"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.normal_dist.member_functions"></a><h5>
-<a name="id603830"></a>
+<a name="id603391"></a>
             <a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a normal distribution with mean <span class="emphasis"><em>mean</em></span>
@@ -96,15 +93,13 @@
             Requires sd &gt; 0, otherwise domain_error
             is called.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             both return the <span class="emphasis"><em>mean</em></span> of this distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">standard_deviation</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">standard_deviation</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
@@ -114,7 +109,7 @@
             be used generically).
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.normal_dist.non_member_accessors"></a><h5>
-<a name="id604108"></a>
+<a name="id603665"></a>
             <a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -136,7 +131,7 @@
             and complement cdf -&#8734; = 1 and +&#8734; = 0, if RealType permits.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.normal_dist.accuracy"></a><h5>
-<a name="id604285"></a>
+<a name="id603842"></a>
             <a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -144,7 +139,7 @@
             function</a>, and as such should have very low error rates.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.normal_dist.implementation"></a><h5>
-<a name="id604325"></a>
+<a name="id603882"></a>
             <a href="normal_dist.html#math_toolkit.dist.dist_ref.dists.normal_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">pareto</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">pareto</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -82,17 +80,16 @@
             pdf</a>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.pareto.related_distributions"></a><h5>
-<a name="id605285"></a>
+<a name="id604840"></a>
             <a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.related_distributions">Related
             distributions</a>
           </h5>
 <a name="math_toolkit.dist.dist_ref.dists.pareto.member_functions"></a><h5>
-<a name="id605310"></a>
+<a name="id604865"></a>
             <a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">pareto_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">pareto_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">shape</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a <a href="http://en.wikipedia.org/wiki/pareto_distribution" target="_top">pareto
@@ -103,20 +100,18 @@
             Requires that the <span class="emphasis"><em>shape</em></span> and <span class="emphasis"><em>scale</em></span>
             parameters are both greater than zero, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>location</em></span> parameter of this distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.pareto.non_member_accessors"></a><h5>
-<a name="id605544"></a>
+<a name="id605095"></a>
             <a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -136,7 +131,7 @@
             The supported domain of the random variable is [location, &#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.pareto.accuracy"></a><h5>
-<a name="id605716"></a>
+<a name="id605268"></a>
             <a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -146,7 +141,7 @@
             to unity.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.pareto.implementation"></a><h5>
-<a name="id605770"></a>
+<a name="id605322"></a>
             <a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.implementation">Implementation</a>
           </h5>
 <p>
@@ -314,7 +309,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.pareto.references"></a><h5>
-<a name="id606126"></a>
+<a name="id605678"></a>
             <a href="pareto.html#math_toolkit.dist.dist_ref.dists.pareto.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">poisson</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">poisson</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -124,24 +122,22 @@
 <p>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.poisson_dist.member_functions"></a><h5>
-<a name="id606869"></a>
+<a name="id606418"></a>
             <a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">poisson_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">poisson_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a poisson distribution with mean <span class="emphasis"><em>mean</em></span>.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>mean</em></span> of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.poisson_dist.non_member_accessors"></a><h5>
-<a name="id606996"></a>
+<a name="id606542"></a>
             <a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -161,7 +157,7 @@
             The domain of the random variable is [0, &#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.poisson_dist.accuracy"></a><h5>
-<a name="id607165"></a>
+<a name="id606711"></a>
             <a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -175,7 +171,7 @@
             using an iterative method with a lower tolerance to avoid excessive computation.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.poisson_dist.implementation"></a><h5>
-<a name="id607213"></a>
+<a name="id606760"></a>
             <a href="poisson_dist.html#math_toolkit.dist.dist_ref.dists.poisson_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">rayleigh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">rayleigh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -88,7 +86,7 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/rayleigh_cdf.png" alt="rayleigh_cdf"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh.related_distributions"></a><h5>
-<a name="id608126"></a>
+<a name="id607670"></a>
             <a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.related_distributions">Related
             distributions</a>
           </h5>
@@ -104,12 +102,11 @@
             distribution</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh.member_functions"></a><h5>
-<a name="id608201"></a>
+<a name="id607746"></a>
             <a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">rayleigh_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">rayleigh_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">sigma</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a <a href="http://en.wikipedia.org/wiki/Rayleigh_distribution" target="_top">Rayleigh
@@ -118,14 +115,13 @@
 <p>
             Requires that the &#963; parameter is greater than zero, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">sigma</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">sigma</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>sigma</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh.non_member_accessors"></a><h5>
-<a name="id608350"></a>
+<a name="id607892"></a>
             <a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -145,7 +141,7 @@
             The domain of the random variable is [0, max_value].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh.accuracy"></a><h5>
-<a name="id608520"></a>
+<a name="id608062"></a>
             <a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -155,7 +151,7 @@
             using NTL RR type with 150-bit accuracy, about 50 decimal digits.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh.implementation"></a><h5>
-<a name="id608576"></a>
+<a name="id608118"></a>
             <a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.implementation">Implementation</a>
           </h5>
 <p>
@@ -324,7 +320,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh.references"></a><h5>
-<a name="id608966"></a>
+<a name="id608508"></a>
             <a href="rayleigh.html#math_toolkit.dist.dist_ref.dists.rayleigh.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -99,12 +97,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/students_t.png" alt="students_t"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions"></a><h5>
-<a name="id609757"></a>
+<a name="id609296"></a>
             <a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">students_t_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">students_t_distribution</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">v</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a Student's t-distribution with <span class="emphasis"><em>v</em></span> degrees
@@ -115,14 +112,12 @@
             Note that non-integral degrees of freedom are supported, and meaningful
             under certain circumstances.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">degrees_of_freedom</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the number of degrees of freedom of this distribution.
           </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
    <span class="identifier">RealType</span> <span class="identifier">difference_from_mean</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span>
    <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span>
@@ -179,7 +174,7 @@
             Engineering Statistics Handbook</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors"></a><h5>
-<a name="id610146"></a>
+<a name="id609682"></a>
             <a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -199,7 +194,7 @@
             The domain of the random variable is [-&#8734;, +&#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.students_t_dist.examples"></a><h5>
-<a name="id610315"></a>
+<a name="id609851"></a>
             <a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.examples">Examples</a>
           </h5>
 <p>
@@ -207,7 +202,7 @@
             are available illustrating the use of the Student's t distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy"></a><h5>
-<a name="id610356"></a>
+<a name="id609892"></a>
             <a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -216,7 +211,7 @@
             inverses</a>, refer to accuracy data on those functions for more information.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.students_t_dist.implementation"></a><h5>
-<a name="id610405"></a>
+<a name="id609941"></a>
             <a href="students_t_dist.html#math_toolkit.dist.dist_ref.dists.students_t_dist.implementation">Implementation</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">triangular</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">triangular</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
            <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
  <span class="keyword">class</span> <span class="identifier">triangular_distribution</span><span class="special">;</span>
@@ -130,12 +128,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/triangular_cdf.png" alt="triangular_cdf"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.triangular_dist.member_functions"></a><h5>
-<a name="id611721"></a>
+<a name="id611255"></a>
             <a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">triangular_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">mode</span> <span class="special">=</span> <span class="number">0</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">triangular_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">mode</span> <span class="special">=</span> <span class="number">0</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a <a href="http://en.wikipedia.org/wiki/triangular_distribution" target="_top">triangular
@@ -147,29 +144,26 @@
             and <span class="emphasis"><em>upper</em></span> parameters are all finite, otherwise calls
             <a href="../../../main_overview/error_handling.html#domain_error">domain_error</a>.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>lower</em></span> parameter of this distribution
             (default -1).
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">mode</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">mode</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>mode</em></span> parameter of this distribution
             (default 0).
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>upper</em></span> parameter of this distribution
             (default+1).
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.triangular_dist.non_member_accessors"></a><h5>
-<a name="id612030"></a>
+<a name="id611559"></a>
             <a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -190,7 +184,7 @@
             range is lower &lt;= x &lt;= upper.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.triangular_dist.accuracy"></a><h5>
-<a name="id612201"></a>
+<a name="id611730"></a>
             <a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -199,7 +193,7 @@
             with arguments nearing the extremes of zero and unity.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.triangular_dist.implementation"></a><h5>
-<a name="id612234"></a>
+<a name="id611763"></a>
             <a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -384,7 +378,7 @@
             Calculate and plot probability distributions</a>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.triangular_dist.references"></a><h5>
-<a name="id612624"></a>
+<a name="id612153"></a>
             <a href="triangular_dist.html#math_toolkit.dist.dist_ref.dists.triangular_dist.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">uniform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">uniform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
            <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
  <span class="keyword">class</span> <span class="identifier">uniform_distribution</span><span class="special">;</span>
@@ -119,12 +117,11 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/uniform_cdf.png" alt="uniform_cdf"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.uniform_dist.member_functions"></a><h5>
-<a name="id615125"></a>
+<a name="id614646"></a>
             <a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">uniform_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">uniform_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">lower</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">upper</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a <a href="http://en.wikipedia.org/wiki/uniform_distribution" target="_top">uniform
@@ -136,20 +133,18 @@
             parameters are both finite; otherwise if infinity or NaN then calls
             <a href="../../../main_overview/error_handling.html#domain_error">domain_error</a>.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">lower</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>lower</em></span> parameter of this distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">upper</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>upper</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.uniform_dist.non_member_accessors"></a><h5>
-<a name="id615361"></a>
+<a name="id614878"></a>
             <a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -170,7 +165,7 @@
             range is only <span class="emphasis"><em>lower</em></span> &lt;= x &lt;= <span class="emphasis"><em>upper</em></span>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.uniform_dist.accuracy"></a><h5>
-<a name="id615539"></a>
+<a name="id615056"></a>
             <a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -178,7 +173,7 @@
             and so should have errors within an epsilon or two.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.uniform_dist.implementation"></a><h5>
-<a name="id615570"></a>
+<a name="id615087"></a>
             <a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.implementation">Implementation</a>
           </h5>
 <p>
@@ -342,7 +337,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.uniform_dist.references"></a><h5>
-<a name="id615879"></a>
+<a name="id615396"></a>
             <a href="uniform_dist.html#math_toolkit.dist.dist_ref.dists.uniform_dist.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,12 +30,10 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">weibull</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">weibull</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
    
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
           <span class="keyword">class</span> Policy <span class="special">=</span> policies::policy<> <span class="special">&gt;</span>
@@ -102,7 +100,7 @@
             <span class="inlinemediaobject"><img src="../../../../../graphs/weibull2.png" alt="weibull2"></span>
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.weibull.related_distributions"></a><h5>
-<a name="id613387"></a>
+<a name="id612914"></a>
             <a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.related_distributions">Related
             distributions</a>
           </h5>
@@ -114,12 +112,11 @@
             distribution</a>.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.weibull.member_functions"></a><h5>
-<a name="id613443"></a>
+<a name="id612970"></a>
             <a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.member_functions">Member
             Functions</a>
           </h5>
-<pre class="programlisting">
-<span class="identifier">weibull_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">weibull_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             Constructs a <a href="http://en.wikipedia.org/wiki/Weibull_distribution" target="_top">Weibull
@@ -130,20 +127,18 @@
             Requires that the <span class="emphasis"><em>shape</em></span> and <span class="emphasis"><em>scale</em></span>
             parameters are both greater than zero, otherwise calls domain_error.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">shape</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>shape</em></span> parameter of this distribution.
           </p>
-<pre class="programlisting">
-<span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
 </pre>
 <p>
             Returns the <span class="emphasis"><em>scale</em></span> parameter of this distribution.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.weibull.non_member_accessors"></a><h5>
-<a name="id613665"></a>
+<a name="id613188"></a>
             <a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.non_member_accessors">Non-member
             Accessors</a>
           </h5>
@@ -163,7 +158,7 @@
             The domain of the random variable is [0, &#8734;].
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.weibull.accuracy"></a><h5>
-<a name="id613837"></a>
+<a name="id613360"></a>
             <a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.accuracy">Accuracy</a>
           </h5>
 <p>
@@ -173,7 +168,7 @@
             as such should have very low error rates.
           </p>
 <a name="math_toolkit.dist.dist_ref.dists.weibull.implementation"></a><h5>
-<a name="id613909"></a>
+<a name="id613432"></a>
             <a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.implementation">Implementation</a>
           </h5>
 <p>
@@ -340,7 +335,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.dist.dist_ref.dists.weibull.references"></a><h5>
-<a name="id614295"></a>
+<a name="id613818"></a>
             <a href="weibull.html#math_toolkit.dist.dist_ref.dists.weibull.references">References</a>
           </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -37,7 +37,7 @@
           the function you want if you already know its name.
         </p>
 <a name="function_index"></a><a name="math_toolkit.dist.dist_ref.nmp.function_index"></a><h5>
-<a name="id571664"></a>
+<a name="id571353"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.function_index">Function
           Index</a>
         </h5>
@@ -93,7 +93,7 @@
           </li>
 </ul></div>
 <a name="concept_index"></a><a name="math_toolkit.dist.dist_ref.nmp.conceptual_index"></a><h5>
-<a name="id571920"></a>
+<a name="id571610"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.conceptual_index">Conceptual
           Index</a>
         </h5>
@@ -174,12 +174,11 @@
           </li>
 </ul></div>
 <a name="math.dist.cdf"></a><a name="math_toolkit.dist.dist_ref.nmp.cumulative_distribution_function"></a><h5>
-<a name="id572275"></a>
+<a name="id571965"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.cumulative_distribution_function">Cumulative
           Distribution Function</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">cdf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
@@ -199,12 +198,11 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/cdf.png" alt="cdf"></span>
         </p>
 <a name="math.dist.ccdf"></a><a name="math_toolkit.dist.dist_ref.nmp.complement_of_the_cumulative_distribution_function"></a><h5>
-<a name="id572523"></a>
+<a name="id572211"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.complement_of_the_cumulative_distribution_function">Complement
           of the Cumulative Distribution Function</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">cdf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Unspecified-Complement-Type</em></span><span class="special">&lt;</span><span class="identifier">Distribution</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;&amp;</span> <span class="identifier">comp</span><span class="special">);</span>
 </pre>
 <p>
@@ -224,8 +222,7 @@
 <p>
           In this library, it is obtained by wrapping the arguments to the <code class="computeroutput"><span class="identifier">cdf</span></code> function in a call to <code class="computeroutput"><span class="identifier">complement</span></code>, for example:
         </p>
-<pre class="programlisting">
-<span class="comment">// standard normal distribution object:
+<pre class="programlisting"><span class="comment">// standard normal distribution object:
 </span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span> <span class="identifier">norm</span><span class="special">;</span>
 <span class="comment">// print survival function for x=2.0:
 </span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">norm</span><span class="special">,</span> <span class="number">2.0</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -242,11 +239,10 @@
           complement is useful and when it should be used.
         </p>
 <a name="math.dist.hazard"></a><a name="math_toolkit.dist.dist_ref.nmp.hazard_function"></a><h5>
-<a name="id572942"></a>
+<a name="id572628"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.hazard_function">Hazard Function</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">hazard</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
@@ -271,12 +267,11 @@
           </p></td></tr>
 </table></div>
 <a name="math.dist.chf"></a><a name="math_toolkit.dist.dist_ref.nmp.cumulative_hazard_function"></a><h5>
-<a name="id573196"></a>
+<a name="id572881"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.cumulative_hazard_function">Cumulative
           Hazard Function</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">chf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
@@ -300,11 +295,10 @@
           </p></td></tr>
 </table></div>
 <a name="math.dist.mean"></a><a name="math_toolkit.dist.dist_ref.nmp.mean"></a><h5>
-<a name="id573452"></a>
+<a name="id573135"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.mean">mean</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -316,22 +310,20 @@
           distribution).
         </p>
 <a name="math.dist.median"></a><a name="math_toolkit.dist.dist_ref.nmp.median"></a><h5>
-<a name="id573625"></a>
+<a name="id573307"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.median">median</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">median</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
           Returns the median of the distribution <span class="emphasis"><em>dist</em></span>.
         </p>
 <a name="math.dist.mode"></a><a name="math_toolkit.dist.dist_ref.nmp.mode"></a><h5>
-<a name="id573784"></a>
+<a name="id573465"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.mode">mode</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">mode</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -342,12 +334,11 @@
           if the distribution does not have a defined mode.
         </p>
 <a name="math.dist.pdf"></a><a name="math_toolkit.dist.dist_ref.nmp.probability_density_function"></a><h5>
-<a name="id573950"></a>
+<a name="id573629"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.probability_density_function">Probability
           Density Function</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">pdf</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
@@ -372,22 +363,20 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/pdf.png" alt="pdf"></span>
         </p>
 <a name="math.dist.range"></a><a name="math_toolkit.dist.dist_ref.nmp.range"></a><h5>
-<a name="id574194"></a>
+<a name="id573873"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.range">range</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;</span> <span class="identifier">range</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
           Returns the valid range of the random variable over distribution <span class="emphasis"><em>dist</em></span>.
         </p>
 <a name="math.dist.quantile"></a><a name="math_toolkit.dist.dist_ref.nmp.quantile"></a><h5>
-<a name="id574391"></a>
+<a name="id574068"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.quantile">Quantile</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">quantile</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">RealType</span><span class="special">&amp;</span> <span class="identifier">p</span><span class="special">);</span>
 </pre>
 <p>
@@ -413,15 +402,14 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/quantile.png" alt="quantile"></span>
         </p>
 <a name="math.dist.quantile_c"></a><a name="math_toolkit.dist.dist_ref.nmp.quantile_from_the_complement_of_the_probability_"></a><h5>
-<a name="id574709"></a>
+<a name="id574385"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.quantile_from_the_complement_of_the_probability_">Quantile
           from the complement of the probability.</a>
         </h5>
 <p>
           <a href="../stat_tut/overview.html#complements">complements</a>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Distribution</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">quantile</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Unspecified-Complement-Type</em></span><span class="special">&lt;</span><span class="identifier">Distribution</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;&amp;</span> <span class="identifier">comp</span><span class="special">);</span>
 </pre>
 <p>
@@ -430,8 +418,7 @@
           the arguments in a call to the quantile function in a call to <span class="emphasis"><em>complement</em></span>.
           For example:
         </p>
-<pre class="programlisting">
-<span class="comment">// define a standard normal distribution:
+<pre class="programlisting"><span class="comment">// define a standard normal distribution:
 </span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span> <span class="identifier">norm</span><span class="special">;</span>
 <span class="comment">// print the value of x for which the complement
 </span><span class="comment">// of the probability is 0.05:
@@ -461,12 +448,11 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/survival_inv.png" alt="survival_inv"></span>
         </p>
 <a name="math.dist.sd"></a><a name="math_toolkit.dist.dist_ref.nmp.standard_deviation"></a><h5>
-<a name="id575189"></a>
+<a name="id574863"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.standard_deviation">Standard
           Deviation</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -477,11 +463,10 @@
           if the distribution does not have a defined standard deviation.
         </p>
 <a name="math.dist.support"></a><a name="math_toolkit.dist.dist_ref.nmp.support"></a><h5>
-<a name="id575366"></a>
+<a name="id575039"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.support">support</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> <span class="identifier">RealType</span><span class="special">&gt;</span> <span class="identifier">support</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -495,11 +480,10 @@
           where the pdf is zero, and the cdf zero or unity.
         </p>
 <a name="math.dist.variance"></a><a name="math_toolkit.dist.dist_ref.nmp.variance"></a><h5>
-<a name="id575579"></a>
+<a name="id575251"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.variance">Variance</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -510,11 +494,10 @@
           if the distribution does not have a defined variance.
         </p>
 <a name="math.dist.skewness"></a><a name="math_toolkit.dist.dist_ref.nmp.skewness"></a><h5>
-<a name="id575754"></a>
+<a name="id575424"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.skewness">Skewness</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">skewness</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -525,11 +508,10 @@
           if the distribution does not have a defined skewness.
         </p>
 <a name="math.dist.kurtosis"></a><a name="math_toolkit.dist.dist_ref.nmp.kurtosis"></a><h5>
-<a name="id575929"></a>
+<a name="id575598"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.kurtosis">Kurtosis</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">kurtosis</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -554,8 +536,7 @@
           used by Wikipedia</a> which treats "kurtosis" and "kurtosis
           excess" as the same quantity.
         </p>
-<pre class="programlisting">
-<span class="identifier">kurtosis_excess</span> <span class="special">=</span> <span class="char">'proper'</span> <span class="identifier">kurtosis</span> <span class="special">-</span> <span class="number">3</span>
+<pre class="programlisting"><span class="identifier">kurtosis_excess</span> <span class="special">=</span> <span class="char">'proper'</span> <span class="identifier">kurtosis</span> <span class="special">-</span> <span class="number">3</span>
 </pre>
 <p>
           This subtraction of 3 is convenient so that the <span class="emphasis"><em>kurtosis excess</em></span>
@@ -569,12 +550,11 @@
           'Proper' kurtosis can have a value from zero to + infinity.
         </p>
 <a name="math.dist.kurtosis_excess"></a><a name="math_toolkit.dist.dist_ref.nmp.kurtosis_excess"></a><h5>
-<a name="id576229"></a>
+<a name="id575896"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.kurtosis_excess">Kurtosis
           excess</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">kurtosis_excess</span><span class="special">(</span><span class="keyword">const</span> <span class="emphasis"><em>Distribution-Type</em></span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">,</span> Policy<span class="special">&gt;&amp;</span> <span class="identifier">dist</span><span class="special">);</span>
 </pre>
 <p>
@@ -599,14 +579,13 @@
 <p>
           Kurtosis excess can have a value from -2 to + infinity.
         </p>
-<pre class="programlisting">
-<span class="identifier">kurtosis</span> <span class="special">=</span> <span class="identifier">kurtosis_excess</span> <span class="special">+</span><span class="number">3</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">kurtosis</span> <span class="special">=</span> <span class="identifier">kurtosis_excess</span> <span class="special">+</span><span class="number">3</span><span class="special">;</span>
 </pre>
 <p>
           The kurtosis excess of a normal distribution is zero.
         </p>
 <a name="cdfPQ"></a><a name="math_toolkit.dist.dist_ref.nmp.p_and_q"></a><h5>
-<a name="id576492"></a>
+<a name="id576157"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.p_and_q">P and Q</a>
         </h5>
 <p>
@@ -616,7 +595,7 @@
           returned by these functions.
         </p>
 <a name="percent"></a><a name="math_toolkit.dist.dist_ref.nmp.percent_point_function"></a><h5>
-<a name="id576547"></a>
+<a name="id576211"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.percent_point_function">Percent
           Point Function</a>
         </h5>
@@ -625,7 +604,7 @@
           the Quantile.
         </p>
 <a name="cdf_inv"></a><a name="math_toolkit.dist.dist_ref.nmp.inverse_cdf_function_"></a><h5>
-<a name="id576591"></a>
+<a name="id576255"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.inverse_cdf_function_">Inverse
           CDF Function.</a>
         </h5>
@@ -634,7 +613,7 @@
           <a href="nmp.html#math.dist.quantile">Quantile</a>.
         </p>
 <a name="survival_inv"></a><a name="math_toolkit.dist.dist_ref.nmp.inverse_survival_function_"></a><h5>
-<a name="id576635"></a>
+<a name="id576300"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.inverse_survival_function_">Inverse
           Survival Function.</a>
         </h5>
@@ -642,7 +621,7 @@
           The inverse of the survival function, is the same as computing the quantile from the complement of the probability.
         </p>
 <a name="pmf"></a><a name="math_toolkit.dist.dist_ref.nmp.probability_mass_function"></a><h5>
-<a name="id576681"></a>
+<a name="id576346"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.probability_mass_function">Probability
           Mass Function</a>
         </h5>
@@ -656,7 +635,7 @@
           applies to continuous distributions.
         </p>
 <a name="lower_critical"></a><a name="math_toolkit.dist.dist_ref.nmp.lower_critical_value_"></a><h5>
-<a name="id576740"></a>
+<a name="id576405"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.lower_critical_value_">Lower
           Critical Value.</a>
         </h5>
@@ -666,7 +645,7 @@
           the Quantile.
         </p>
 <a name="upper_critical"></a><a name="math_toolkit.dist.dist_ref.nmp.upper_critical_value_"></a><h5>
-<a name="id576786"></a>
+<a name="id576451"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.upper_critical_value_">Upper
           Critical Value.</a>
         </h5>
@@ -677,7 +656,7 @@
           complement of the probability</a>.
         </p>
 <a name="survival"></a><a name="math_toolkit.dist.dist_ref.nmp.survival_function"></a><h5>
-<a name="id576833"></a>
+<a name="id576497"></a>
           <a href="nmp.html#math_toolkit.dist.dist_ref.nmp.survival_function">Survival
           Function</a>
         </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="math_toolkit.dist.future"></a> Extras/Future Directions
 </h3></div></div></div>
 <a name="math_toolkit.dist.future.adding_additional_location_and_scale_parameters"></a><h5>
-<a name="id617443"></a>
+<a name="id616954"></a>
         <a href="future.html#math_toolkit.dist.future.adding_additional_location_and_scale_parameters">Adding
         Additional Location and Scale Parameters</a>
       </h5>
@@ -41,8 +41,7 @@
 <p>
         The obvious way to handle this is via an adapter template:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Dist</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">scaled_distribution</span>
 <span class="special">{</span>
    <span class="identifier">scaled_distribution</span><span class="special">(</span>
@@ -56,7 +55,7 @@
         functions.
       </p>
 <a name="math_toolkit.dist.future.an__quot_any_distribution_quot__class"></a><h5>
-<a name="id617672"></a>
+<a name="id617181"></a>
         <a href="future.html#math_toolkit.dist.future.an__quot_any_distribution_quot__class">An
         "any_distribution" class</a>
       </h5>
@@ -65,8 +64,7 @@
         the actual type of the distribution, and can therefore hold "any"
         object that conforms to the conceptual requirements of a distribution:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">any_distribution</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
@@ -86,7 +84,7 @@
         use case: this needs more investigation.
       </p>
 <a name="math_toolkit.dist.future.higher_level_hypothesis_tests"></a><h5>
-<a name="id617970"></a>
+<a name="id617478"></a>
         <a href="future.html#math_toolkit.dist.future.higher_level_hypothesis_tests">Higher
         Level Hypothesis Tests</a>
       </h5>
@@ -94,8 +92,7 @@
         Higher-level tests roughly corresponding to the <a href="http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/HypothesisTests.html" target="_top">Mathematica
         Hypothesis Tests</a> package could be added reasonably easily, for example:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">InputIterator</span><span class="special">&gt;</span>
 <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">InputIterator</span><span class="special">&gt;::</span><span class="identifier">value_type</span>
    <span class="identifier">test_equal_mean</span><span class="special">(</span>
      <span class="identifier">InputIterator</span> <span class="identifier">a</span><span class="special">,</span>
@@ -107,7 +104,7 @@
         <span class="emphasis"><em>expected_mean</em></span>.
       </p>
 <a name="math_toolkit.dist.future.integration_with_statistical_accumulators"></a><h5>
-<a name="id618202"></a>
+<a name="id617709"></a>
         <a href="future.html#math_toolkit.dist.future.integration_with_statistical_accumulators">Integration
         With Statistical Accumulators</a>
       </h5>
@@ -118,8 +115,7 @@
         There is an opportunity to integrate the statistical tests with this framework
         at some later date:
       </p>
-<pre class="programlisting">
-<span class="comment">// Define an accumulator, all required statistics to calculate the test
+<pre class="programlisting"><span class="comment">// Define an accumulator, all required statistics to calculate the test
 </span><span class="comment">// are calculated automatically:
 </span><span class="identifier">accumulator_set</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">features</span><span class="special">&lt;</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">test_expected_mean</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">acc</span><span class="special">(</span><span class="identifier">expected_mean</span><span class="special">=</span><span class="number">4</span><span class="special">);</span>
 <span class="comment">// Pass our data to the accumulator:

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="math_toolkit.dist.stat_tut.overview"></a> Overview
 </h4></div></div></div>
 <a name="math_toolkit.dist.stat_tut.overview.headers_and_namespaces"></a><h5>
-<a name="id497237"></a>
+<a name="id497176"></a>
           <a href="overview.html#math_toolkit.dist.stat_tut.overview.headers_and_namespaces">Headers
           and Namespaces</a>
         </h5>
@@ -44,7 +44,7 @@
           or &lt;boost/math/distributions.hpp&gt;
         </p>
 <a name="math_toolkit.dist.stat_tut.overview.distributions_are_objects"></a><h5>
-<a name="id497290"></a>
+<a name="id497228"></a>
           <a href="overview.html#math_toolkit.dist.stat_tut.overview.distributions_are_objects">Distributions
           are Objects</a>
         </h5>
@@ -94,8 +94,7 @@
           <span class="keyword">double</span></code> - is nearly as convenient).
           Probably 95% of uses are covered by these typedefs:
         </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
 <span class="comment">// Construct a students_t distribution with 4 degrees of freedom:
 </span><span class="identifier">students_t</span> <span class="identifier">d1</span><span class="special">(</span><span class="number">4</span><span class="special">);</span>
@@ -111,8 +110,7 @@
           t Distribution</a> or <a href="../dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial
           Distribution</a>:
         </p>
-<pre class="programlisting">
-<span class="comment">// Construct a students_t distribution, of float type,
+<pre class="programlisting"><span class="comment">// Construct a students_t distribution, of float type,
 </span><span class="comment">// with 4 degrees of freedom:
 </span><span class="identifier">students_t_distribution</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span> <span class="identifier">d3</span><span class="special">(</span><span class="number">4</span><span class="special">);</span>
 
@@ -125,8 +123,7 @@
           The parameters passed to the distributions can be accessed via getter member
           functions:
         </p>
-<pre class="programlisting">
-<span class="identifier">d1</span><span class="special">.</span><span class="identifier">degrees_of_freedom</span><span class="special">();</span> <span class="comment">// returns 4.0
+<pre class="programlisting"><span class="identifier">d1</span><span class="special">.</span><span class="identifier">degrees_of_freedom</span><span class="special">();</span> <span class="comment">// returns 4.0
 </span></pre>
 <p>
           This is all well and good, but not very useful so far. What we often want
@@ -134,7 +131,7 @@
           and <span class="emphasis"><em>quantiles</em></span> etc for these distributions.
         </p>
 <a name="math_toolkit.dist.stat_tut.overview.generic_operations_common_to_all_distributions_are_non_member_functions"></a><h5>
-<a name="id497826"></a>
+<a name="id497761"></a>
           <a href="overview.html#math_toolkit.dist.stat_tut.overview.generic_operations_common_to_all_distributions_are_non_member_functions">Generic
           operations common to all distributions are non-member functions</a>
         </h5>
@@ -142,21 +139,18 @@
           Want to calculate the PDF (Probability Density Function) of a distribution?
           No problem, just use:
         </p>
-<pre class="programlisting">
-<span class="identifier">pdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span> <span class="comment">// Returns PDF (density) at point x of distribution my_dist.
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span> <span class="comment">// Returns PDF (density) at point x of distribution my_dist.
 </span></pre>
 <p>
           Or how about the CDF (Cumulative Distribution Function):
         </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span> <span class="comment">// Returns CDF (integral from -infinity to point x)
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">x</span><span class="special">);</span> <span class="comment">// Returns CDF (integral from -infinity to point x)
 </span> <span class="comment">// of distribution my_dist.
 </span></pre>
 <p>
           And quantiles are just the same:
         </p>
-<pre class="programlisting">
-<span class="identifier">quantile</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// Returns the value of the random variable x
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// Returns the value of the random variable x
 </span> <span class="comment">// such that cdf(my_dist, x) == p.
 </span></pre>
 <p>
@@ -313,7 +307,7 @@
 <a name="complements"></a><p>
         </p>
 <a name="math_toolkit.dist.stat_tut.overview.complements_are_supported_too"></a><h5>
-<a name="id498582"></a>
+<a name="id498494"></a>
           <a href="overview.html#math_toolkit.dist.stat_tut.overview.complements_are_supported_too">Complements
           are supported too</a>
         </h5>
@@ -333,8 +327,7 @@
           In this library, whenever you want to receive a complement, just wrap all
           the function arguments in a call to <code class="computeroutput"><span class="identifier">complement</span><span class="special">(...)</span></code>, for example:
         </p>
-<pre class="programlisting">
-<span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"CDF at t = 1 is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="number">1.0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Complement of CDF at t = 1 is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="number">1.0</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 </pre>
@@ -344,8 +337,7 @@
           a complement by wrapping all of its arguments in a call to <code class="computeroutput"><span class="identifier">complement</span><span class="special">(...)</span></code>,
           for example:
         </p>
-<pre class="programlisting">
-<span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
 
 <span class="keyword">for</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="number">1e10</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">*=</span> <span class="number">10</span><span class="special">)</span>
 <span class="special">{</span>
@@ -450,7 +442,7 @@
 </td></tr>
 </table></div>
 <a name="math_toolkit.dist.stat_tut.overview.parameters_can_be_calculated"></a><h5>
-<a name="id499764"></a>
+<a name="id499673"></a>
           <a href="overview.html#math_toolkit.dist.stat_tut.overview.parameters_can_be_calculated">Parameters
           can be calculated</a>
         </h5>
@@ -465,8 +457,7 @@
           like this, and are necessarily different for each distribution. They are
           implemented as static member functions of the distributions, for example:
         </p>
-<pre class="programlisting">
-<span class="identifier">students_t</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">students_t</span><span class="special">::</span><span class="identifier">find_degrees_of_freedom</span><span class="special">(</span>
    <span class="number">1.3</span><span class="special">,</span> <span class="comment">// difference from true mean to detect
 </span> <span class="number">0.05</span><span class="special">,</span> <span class="comment">// maximum risk of falsely rejecting the null-hypothesis.
 </span> <span class="number">0.1</span><span class="special">,</span> <span class="comment">// maximum risk of falsely failing to reject the null-hypothesis.
@@ -482,7 +473,7 @@
           sample size.
         </p>
 <a name="math_toolkit.dist.stat_tut.overview.summary"></a><h5>
-<a name="id499917"></a>
+<a name="id499826"></a>
           <a href="overview.html#math_toolkit.dist.stat_tut.overview.summary">Summary</a>
         </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -46,8 +46,7 @@
           Translating this into code the <code class="computeroutput"><span class="identifier">binomial_distribution</span></code>
           constructor therefore has two parameters:
         </p>
-<pre class="programlisting">
-<span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">binomial_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">p</span><span class="special">);</span>
 </pre>
 <p>
           While the function <code class="computeroutput"><span class="identifier">pdf</span></code>
@@ -55,8 +54,7 @@
           parameters, if any), and a second argument for the random variate. So taking
           our binomial distribution example, we would write:
         </p>
-<pre class="programlisting">
-<span class="identifier">pdf</span><span class="special">(</span><span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">),</span> <span class="identifier">k</span><span class="special">);</span>
 </pre>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -47,8 +47,7 @@
               illustrates their use. It begins by defining a procedure that will
               print a table of confidence limits for various degrees of certainty:
             </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
@@ -80,14 +79,12 @@
               the probabilities that the true occurrence frequency lies outside the
               calculated interval:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
 </pre>
 <p>
               Some pretty printing of the table header follows:
             </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
         <span class="string">"_______________________________________________________________________\n"</span>
         <span class="string">"Confidence Lower CP Upper CP Lower JP Upper JP\n"</span>
         <span class="string">" Value (%) Limit Limit Limit Limit\n"</span>
@@ -135,8 +132,7 @@
               provides a choice of two methods for the calculation, we print out
               the results from both methods in this example:
             </p>
-<pre class="programlisting">
- <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<pre class="programlisting"> <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
    <span class="special">{</span>
       <span class="comment">// Confidence value:
 </span> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -43,8 +43,7 @@
               demonstrates its usage. It centres on a routine that prints out a table
               of maximum sample sizes for various probability thresholds:
             </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">find_max_sample_size</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_max_sample_size</span><span class="special">(</span>
    <span class="keyword">double</span> <span class="identifier">p</span><span class="special">,</span> <span class="comment">// success ratio.
 </span> <span class="keyword">unsigned</span> <span class="identifier">successes</span><span class="special">)</span> <span class="comment">// Total number of observed successes permitted.
 </span><span class="special">{</span>
@@ -56,16 +55,14 @@
               will be always zero, since we want no component failures, but in other
               situations non-zero values may well make sense.
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
 </pre>
 <p>
               Much of the rest of the program is pretty-printing, the important part
               is in the calculation of maximum number of permitted trials for each
               value of alpha:
             </p>
-<pre class="programlisting">
-<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="comment">// Confidence value:
 </span> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -67,8 +67,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial</span><span class="special">;</span>
 
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
@@ -100,8 +99,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// = 50% = 1/2 for a 'fair' coin.
+<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// = 50% = 1/2 for a 'fair' coin.
 </span><span class="keyword">int</span> <span class="identifier">flips</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>
 <span class="identifier">binomial</span> <span class="identifier">flip</span><span class="special">(</span><span class="identifier">flips</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span>
 
@@ -118,8 +116,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"From "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flips</span> <span class="special">&lt;&lt;</span> <span class="string">" one can expect to get on average "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"From "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flips</span> <span class="special">&lt;&lt;</span> <span class="string">" one can expect to get on average "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" heads (or tails)."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Mode is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mode</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard deviation is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -144,8 +141,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"For "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" coin flips: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"For "</span> <span class="special">&lt;&lt;</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" coin flips: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting no heads is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting at least one head is "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -161,8 +157,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 0 or 1 heads is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 0 or 1 heads is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// sum of exactly == probabilities</span></pre>
 <p>
               </p>
@@ -176,8 +171,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 0 or 1 (&lt;= 1) heads is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 0 or 1 (&lt;= 1) heads is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">9</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -191,8 +185,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -205,8 +198,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -227,8 +219,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
   <span class="comment">// P(X == 4) + P(X == 5) + P(X == 6)
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">5</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -243,8 +234,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span>
   <span class="comment">// P(X &lt;= 6) - P(X &lt;= 3) == P(X &lt; 4)
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -259,8 +249,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is "</span>
   <span class="comment">// P(X &lt;= 7) - P(X &lt;= 2) == P(X &lt; 3)
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">7</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
@@ -277,8 +266,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="comment">// Print a table of probability for the exactly a number of heads.
+<pre class="programlisting"><span class="comment">// Print a table of probability for the exactly a number of heads.
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting exactly (==) heads"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special">&lt;=</span> <span class="identifier">flips</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span>
 <span class="special">{</span> <span class="comment">// Say success means getting a head (or equally success means getting a tail).
@@ -311,8 +299,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="special">}</span>
+<pre class="programlisting"><span class="special">}</span>
 <span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&amp;</span> <span class="identifier">e</span><span class="special">)</span>
 <span class="special">{</span>
   <span class="comment">//</span></pre>
@@ -338,8 +325,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span>
+<pre class="programlisting"> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span>
     <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n "</span> <span class="special">&lt;&lt;</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 <span class="special">}</span>
 </pre>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -52,8 +52,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial</span><span class="special">;</span>
 
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
@@ -77,8 +76,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">questions</span> <span class="special">=</span> <span class="number">16</span><span class="special">;</span> <span class="comment">// All the questions in the quiz.
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">questions</span> <span class="special">=</span> <span class="number">16</span><span class="special">;</span> <span class="comment">// All the questions in the quiz.
 </span><span class="keyword">int</span> <span class="identifier">answers</span> <span class="special">=</span> <span class="number">4</span><span class="special">;</span> <span class="comment">// Possible answers to each question.
 </span><span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)</span><span class="identifier">answers</span> <span class="special">/</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)</span><span class="identifier">questions</span><span class="special">;</span> <span class="comment">// If a random guess.
 </span><span class="comment">// Caution: = answers / questions would be zero (because they are integers)!
@@ -95,8 +93,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"In a quiz with "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"In a quiz with "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span>
   <span class="special">&lt;&lt;</span> <span class="string">" questions and with a probability of guessing right of "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">*</span> <span class="number">100</span> <span class="special">&lt;&lt;</span> <span class="string">" %"</span>
   <span class="special">&lt;&lt;</span> <span class="string">" or 1 in "</span> <span class="special">&lt;&lt;</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="number">1.</span> <span class="special">/</span> <span class="identifier">quiz</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">())</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
@@ -112,8 +109,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.010023
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.010023
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting exactly one right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting exactly two right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="keyword">int</span> <span class="identifier">pass_score</span> <span class="special">=</span> <span class="number">11</span><span class="special">;</span>
@@ -145,8 +141,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"Guessed Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"Guessed Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special">&lt;=</span> <span class="identifier">questions</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span>
 <span class="special">{</span>
   <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">);</span>
@@ -187,8 +182,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -208,8 +202,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting none or one right is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -228,8 +221,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &lt;= 10 right (to fail) is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &lt;= 10 right (to fail) is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -243,8 +235,7 @@
                 To get the probability of getting 11 or more right (to pass), it
                 is tempting to use
 </p>
-<pre class="programlisting">
-<span class="number">1</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span></pre>
+<pre class="programlisting"><span class="number">1</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span></pre>
 <p>
                 to get the probability of &gt; 10
               </p>
@@ -253,8 +244,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &gt; 10 right (to pass) is "</span> <span class="special">&lt;&lt;</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &gt; 10 right (to pass) is "</span> <span class="special">&lt;&lt;</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -273,8 +263,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &gt; 10 right (to pass) is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting &gt; 10 right (to pass) is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -293,8 +282,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)))</span> <span class="special">==</span> <span class="number">1.</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="identifier">BOOST_ASSERT</span><span class="special">((</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">10</span><span class="special">)))</span> <span class="special">==</span> <span class="number">1.</span><span class="special">);</span></pre>
 <p>
               </p>
 <p>
@@ -308,8 +296,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting less than "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting less than "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span>
   <span class="special">&lt;&lt;</span> <span class="string">" (&lt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span> <span class="special">&lt;&lt;</span> <span class="string">") answers right by guessing is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -333,8 +320,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting at least "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting at least "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span>
   <span class="special">&lt;&lt;</span> <span class="string">"(&gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pass_score</span> <span class="special">&lt;&lt;</span> <span class="string">") answers right by guessing is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span><span class="special">-</span><span class="number">1</span><span class="special">))</span>
   <span class="special">&lt;&lt;</span> <span class="string">", only 1 in "</span> <span class="special">&lt;&lt;</span> <span class="number">1</span><span class="special">/</span><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">pass_score</span><span class="special">-</span><span class="number">1</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -357,8 +343,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"At most (&lt;=)"</span><span class="string">"\n"</span><span class="string">"Guessed OK Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"At most (&lt;=)"</span><span class="string">"\n"</span><span class="string">"Guessed OK Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">score</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">score</span> <span class="special">&lt;=</span> <span class="identifier">questions</span><span class="special">;</span> <span class="identifier">score</span><span class="special">++)</span>
 <span class="special">{</span>
   <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">score</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
@@ -395,8 +380,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"At least (&gt;)"</span><span class="string">"\n"</span><span class="string">"Guessed OK Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span> <span class="string">"At least (&gt;)"</span><span class="string">"\n"</span><span class="string">"Guessed OK Probability"</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">score</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">score</span> <span class="special">&lt;=</span> <span class="identifier">questions</span><span class="special">;</span> <span class="identifier">score</span><span class="special">++)</span>
 <span class="special">{</span>
   <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">score</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">10</span><span class="special">)</span>
@@ -444,8 +428,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">low</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Getting at least 3 right.
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">low</span> <span class="special">=</span> <span class="number">3</span><span class="special">;</span> <span class="comment">// Getting at least 3 right.
 </span><span class="keyword">int</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span> <span class="comment">// Getting as most 5 right.
 </span><span class="keyword">double</span> <span class="identifier">sum</span> <span class="special">=</span> <span class="number">0.</span><span class="special">;</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">low</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;=</span> <span class="identifier">high</span><span class="special">;</span> <span class="identifier">i</span><span class="special">++)</span>
@@ -473,8 +456,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">high</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">low</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 0.61323</span></pre>
 <p>
               </p>
@@ -493,8 +475,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">low</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">6</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">low</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">6</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of getting between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">low</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="identifier">high</span> <span class="special">&lt;&lt;</span> <span class="string">" answers right by guessing is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">high</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="identifier">low</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 and 6 P= 0.91042
 </span><span class="identifier">low</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">high</span> <span class="special">=</span> <span class="number">8</span><span class="special">;</span>
@@ -516,7 +497,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_moments"></a>
               </p>
 <h5>
-<a name="id528209"></a>
+<a name="id528048"></a>
                 <a href="binomial_quiz_example.html#math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.using_binomial_distribution_moments">Using
                 Binomial distribution moments</a>
               </h5>
@@ -531,8 +512,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"By guessing, on average, one can expect to get "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" correct answers."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"By guessing, on average, one can expect to get "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" correct answers."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard deviation is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"So about 2/3 will lie within 1 standard deviation and get between "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="string">" and "</span>
@@ -554,7 +534,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles"></a>
               </p>
 <h5>
-<a name="id528727"></a>
+<a name="id528565"></a>
                 <a href="binomial_quiz_example.html#math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example.quantiles">Quantiles</a>
               </h5>
 <p>
@@ -568,8 +548,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quartiles "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" to "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quartiles "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" to "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quartiles
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"1 standard deviation "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.33</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" to "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.67</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 sd
@@ -626,8 +605,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
 
 <span class="identifier">at</span> <span class="identifier">the</span> <span class="identifier">head</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">program</span> <span class="identifier">would</span> <span class="identifier">make</span> <span class="keyword">this</span> <span class="identifier">policy</span> <span class="identifier">apply</span>
 </pre>
@@ -639,8 +617,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">at</span> <span class="identifier">the</span> <span class="identifier">head</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">program</span> <span class="identifier">would</span> <span class="identifier">make</span> <span class="keyword">this</span> <span class="identifier">policy</span> <span class="identifier">apply</span>
+<pre class="programlisting"><span class="identifier">at</span> <span class="identifier">the</span> <span class="identifier">head</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">program</span> <span class="identifier">would</span> <span class="identifier">make</span> <span class="keyword">this</span> <span class="identifier">policy</span> <span class="identifier">apply</span>
 </pre>
 <p>
               </p>
@@ -659,8 +636,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">discrete_quantile</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">real</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">integer_round_outwards</span><span class="special">;</span> <span class="comment">// Default.
@@ -672,13 +648,11 @@
 <p>
                 Add a custom binomial distribution called
 </p>
-<pre class="programlisting">
-<span class="identifier">real_quantile_binomial</span></pre>
+<pre class="programlisting"><span class="identifier">real_quantile_binomial</span></pre>
 <p>
                 that uses
 </p>
-<pre class="programlisting">
-<span class="identifier">real_quantile_policy</span></pre>
+<pre class="programlisting"><span class="identifier">real_quantile_policy</span></pre>
 <p>
               </p>
 <p>
@@ -686,8 +660,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial_distribution</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">real_quantile_policy</span><span class="special">&gt;</span> <span class="identifier">real_quantile_binomial</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -701,8 +674,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">real_quantile_binomial</span> <span class="identifier">quiz_real</span><span class="special">(</span><span class="identifier">questions</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="identifier">real_quantile_binomial</span> <span class="identifier">quiz_real</span><span class="special">(</span><span class="identifier">questions</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span></pre>
 <p>
               </p>
 <p>
@@ -716,8 +688,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quartiles "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" to "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quartiles "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz</span><span class="special">,</span> <span class="number">0.25</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" to "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.25</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quartiles 2 to 4.6212
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"1 standard deviation "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.33</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" to "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">quiz_real</span><span class="special">,</span> <span class="number">0.67</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// 1 sd 2.6654 4.194

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -40,8 +40,7 @@
               We'll begin by defining the procedure that will calculate and print
               out the confidence intervals:
             </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">confidence_limits_on_std_deviation</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">confidence_limits_on_std_deviation</span><span class="special">(</span>
      <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">,</span> <span class="comment">// Sample Standard Deviation
 </span> <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">)</span> <span class="comment">// Sample size
 </span><span class="special">{</span>
@@ -49,8 +48,7 @@
 <p>
               We'll begin by printing out some general information:
             </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span>
    <span class="string">"________________________________________________\n"</span>
    <span class="string">"2-Sided Confidence Limits For Standard Deviation\n"</span>
    <span class="string">"________________________________________________\n\n"</span><span class="special">;</span>
@@ -62,15 +60,13 @@
               and then define a table of significance levels for which we'll calculate
               intervals:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
 </pre>
 <p>
               The distribution we'll need to calculate the confidence intervals is
               a Chi Squared distribution, with N-1 degrees of freedom:
             </p>
-<pre class="programlisting">
-<span class="identifier">chi_squared</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">chi_squared</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
               For each value of alpha, the formula for the confidence interval is
@@ -86,8 +82,7 @@
 <p>
               In code we begin by printing out a table header:
             </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
         <span class="string">"_____________________________________________\n"</span>
         <span class="string">"Confidence Lower Upper\n"</span>
         <span class="string">" Value (%) Limit Limit\n"</span>
@@ -99,8 +94,7 @@
               quantile, and the upper critical value is the same as the quantile
               from the complement of the probability:
             </p>
-<pre class="programlisting">
-<span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="comment">// Confidence value:
 </span> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
@@ -145,7 +139,7 @@
               is between 0.00551 and 0.00729.
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_function_of_the_number_of_observations"></a><h5>
-<a name="id511792"></a>
+<a name="id511670"></a>
               <a href="chi_sq_intervals.html#math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals.confidence_intervals_as_a_function_of_the_number_of_observations">Confidence
               intervals as a function of the number of observations</a>
             </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -49,8 +49,7 @@
               We begin by defining a procedure to print out the sample sizes required
               for various risk levels:
             </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">chi_squared_sample_sized</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">chi_squared_sample_sized</span><span class="special">(</span>
      <span class="keyword">double</span> <span class="identifier">diff</span><span class="special">,</span> <span class="comment">// difference from variance to detect
 </span> <span class="keyword">double</span> <span class="identifier">variance</span><span class="special">)</span> <span class="comment">// true variance
 </span><span class="special">{</span>
@@ -58,8 +57,7 @@
 <p>
               The procedure begins by printing out the input data:
             </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
 <span class="comment">// Print out general info:
@@ -75,8 +73,7 @@
               And defines a table of significance levels for which we'll calculate
               sample sizes:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
 </pre>
 <p>
               For each value of alpha we can calculate two sample sizes: one where
@@ -89,8 +86,7 @@
               Finally in this example we'll simply things, and let risk level <span class="emphasis"><em>beta</em></span>
               be the same as <span class="emphasis"><em>alpha</em></span>:
             </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
         <span class="string">"_______________________________________________________________\n"</span>
         <span class="string">"Confidence Estimated Estimated\n"</span>
         <span class="string">" Value (%) Sample Size Sample Size\n"</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -38,8 +38,7 @@
               and we'll begin by defining the procedure that will print out the test
               statistics:
             </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">chi_squared_test</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">chi_squared_test</span><span class="special">(</span>
     <span class="keyword">double</span> <span class="identifier">Sd</span><span class="special">,</span> <span class="comment">// Sample std deviation
 </span> <span class="keyword">double</span> <span class="identifier">D</span><span class="special">,</span> <span class="comment">// True std deviation
 </span> <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">,</span> <span class="comment">// Sample size
@@ -49,8 +48,7 @@
 <p>
               The procedure begins by printing a summary of the input data:
             </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
 <span class="comment">// Print header:
@@ -68,16 +66,14 @@
               standard deviations squared, multiplied by the number of degrees of
               freedom (the sample size less one):
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">D</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">D</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">t_stat</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">D</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">D</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Test Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">t_stat</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
 </pre>
 <p>
               The distribution we need to use, is a Chi Squared distribution with
               N-1 degrees of freedom:
             </p>
-<pre class="programlisting">
-<span class="identifier">chi_squared</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">chi_squared</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">N</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
               The various hypothesis that can be tested are summarised in the following
@@ -165,8 +161,7 @@
               of the probability, that gives us the following code to calculate the
               critical values:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">ucv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">));</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ucv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">));</span>
 <span class="keyword">double</span> <span class="identifier">ucv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
 <span class="keyword">double</span> <span class="identifier">lcv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">lcv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">);</span>
@@ -183,8 +178,7 @@
               Now that we have the critical values, we can compare these to our test
               statistic, and print out the result of each hypothesis and test:
             </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span>
    <span class="string">"Results for Alternative Hypothesis and alpha"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
    <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Alternative Hypothesis Conclusion\n"</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,8 +53,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for negative_binomial_distribution
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for negative_binomial_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span> <span class="comment">// default type is double.
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for binomial_distribution.
@@ -79,8 +78,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">mydist0</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">mydist0</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span></pre>
 <p>
             </p>
 <p>
@@ -93,8 +91,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span></pre>
 <p>
             </p>
 <p>
@@ -107,8 +104,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial_distribution</span><span class="special">;</span></pre>
 <p>
             </p>
 <p>
@@ -128,8 +124,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mydist9</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span> <span class="comment">// Uses default RealType = double.</span></pre>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mydist9</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span> <span class="comment">// Uses default RealType = double.</span></pre>
 <p>
             </p>
 <p>
@@ -142,8 +137,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// Reserved name of type double.
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// Reserved name of type double.
 </span></pre>
 <p>
             </p>
@@ -168,8 +162,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span></pre>
 <p>
             </p>
 <p>
@@ -182,8 +175,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial</span> <span class="identifier">mydist</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span></pre>
 <p>
             </p>
 <p>
@@ -196,8 +188,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial</span> <span class="identifier">mydist10</span><span class="special">(</span><span class="number">5.</span><span class="special">,</span> <span class="number">0.4</span><span class="special">);</span> <span class="comment">// Both arguments double.</span></pre>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist10</span><span class="special">(</span><span class="number">5.</span><span class="special">,</span> <span class="number">0.4</span><span class="special">);</span> <span class="comment">// Both arguments double.</span></pre>
 <p>
             </p>
 <p>
@@ -210,8 +201,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial</span> <span class="identifier">mydist11</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.4</span><span class="special">);</span> <span class="comment">// Using provided typedef double, int and double arguments.</span></pre>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist11</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.4</span><span class="special">);</span> <span class="comment">// Using provided typedef double, int and double arguments.</span></pre>
 <p>
             </p>
 <p>
@@ -224,8 +214,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial</span> <span class="identifier">mydist12</span><span class="special">(</span><span class="number">5.</span><span class="special">,</span> <span class="number">0.4F</span><span class="special">);</span> <span class="comment">// Double and float arguments.
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">mydist12</span><span class="special">(</span><span class="number">5.</span><span class="special">,</span> <span class="number">0.4F</span><span class="special">);</span> <span class="comment">// Double and float arguments.
 </span><span class="identifier">negative_binomial</span> <span class="identifier">mydist13</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Both arguments integer.</span></pre>
 <p>
             </p>
@@ -239,8 +228,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">binomial</span> <span class="identifier">mybinomial</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// is more concise than
+<pre class="programlisting"><span class="identifier">binomial</span> <span class="identifier">mybinomial</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// is more concise than
 </span><span class="identifier">binomial_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybinomd1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span></pre>
 <p>
             </p>
@@ -255,8 +243,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta</span><span class="special">;</span>
 <span class="identifier">beta</span> <span class="identifier">mybetad0</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// Error beta is a math FUNCTION!
 </span></pre>
 <p>
@@ -281,8 +268,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta_distribution</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">beta_distribution</span><span class="special">;</span>
 <span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybetad1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span></pre>
 <p>
             </p>
@@ -296,8 +282,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="identifier">gamma_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mygammad1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="identifier">gamma_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mygammad1</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span></pre>
 <p>
             </p>
 <p>
@@ -310,8 +295,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="comment">// Explicit double precision:
+<pre class="programlisting"><span class="comment">// Explicit double precision:
 </span><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">mydist1</span><span class="special">(</span><span class="number">8.</span><span class="special">,</span> <span class="number">0.25</span><span class="special">);</span>
 
 <span class="comment">// Explicit float precision, double arguments are truncated to float:
@@ -342,14 +326,13 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">MyFPType</span><span class="special">&gt;</span> <span class="identifier">mydist6</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Integer arguments -&gt; MyFPType.
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;</span><span class="identifier">MyFPType</span><span class="special">&gt;</span> <span class="identifier">mydist6</span><span class="special">(</span><span class="number">8</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span> <span class="comment">// Integer arguments -&gt; MyFPType.
 </span></pre>
 <p>
             <a name="math_toolkit.dist.stat_tut.weg.dist_construct_eg.default_arguments_to_distribution_constructors_"></a>
             </p>
 <h6>
-<a name="id502115"></a>
+<a name="id502003"></a>
               <a href="dist_construct_eg.html#math_toolkit.dist.stat_tut.weg.dist_construct_eg.default_arguments_to_distribution_constructors_">Default
               arguments to distribution constructors.</a>
             </h6>
@@ -363,8 +346,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mydist8</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">negative_binomial_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mydist8</span><span class="special">;</span>
 </pre>
 <p>
             
@@ -382,8 +364,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
             </p>
@@ -395,8 +376,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span>
+<pre class="programlisting"> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span>
   
   <span class="identifier">normal</span> <span class="identifier">norm1</span><span class="special">;</span> <span class="comment">// Standard normal distribution.
 </span> <span class="identifier">normal</span> <span class="identifier">norm2</span><span class="special">(</span><span class="number">2</span><span class="special">);</span> <span class="comment">// Mean = 2, std deviation = 1.

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -58,8 +58,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
 </pre>
 <p>
             </p>
@@ -71,8 +70,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
 </pre>
 <p>
             </p>
@@ -108,8 +106,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="comment">// Boost
+<pre class="programlisting"><span class="comment">// Boost
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
    <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
 </span>
@@ -134,8 +131,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Example error handling using Student's t function. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
    <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"BOOST_MATH_DOMAIN_ERROR_POLICY is set to: "</span>
@@ -192,8 +188,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
 </pre>
 <p>
             </p>
@@ -216,8 +211,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
 </pre>
 <p>
             </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -49,8 +49,7 @@
 <p>
             We'll begin by defining the procedure to conduct the test:
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">f_test</span><span class="special">(</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f_test</span><span class="special">(</span>
     <span class="keyword">double</span> <span class="identifier">sd1</span><span class="special">,</span> <span class="comment">// Sample 1 std deviation
 </span> <span class="keyword">double</span> <span class="identifier">sd2</span><span class="special">,</span> <span class="comment">// Sample 2 std deviation
 </span> <span class="keyword">double</span> <span class="identifier">N1</span><span class="special">,</span> <span class="comment">// Sample 1 size
@@ -61,8 +60,7 @@
 <p>
             The procedure begins by printing out a summary of our input data:
           </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
 <span class="comment">// Print header:
@@ -90,8 +88,7 @@
 is the standard
             deviation of the second sample. Or in code:
           </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">F</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">sd1</span> <span class="special">/</span> <span class="identifier">sd2</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">F</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">sd1</span> <span class="special">/</span> <span class="identifier">sd2</span><span class="special">);</span>
 <span class="identifier">F</span> <span class="special">*=</span> <span class="identifier">F</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Test Statistic"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">F</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
 </pre>
@@ -196,8 +193,7 @@
             In our example program we need both upper and lower critical values for
             alpha and for alpha/2:
           </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">ucv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">));</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ucv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">));</span>
 <span class="keyword">double</span> <span class="identifier">ucv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
 <span class="keyword">double</span> <span class="identifier">lcv</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">lcv2</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span> <span class="special">/</span> <span class="number">2</span><span class="special">);</span>
@@ -214,8 +210,7 @@
             The final step is to perform the comparisons given above, and print out
             whether the hypothesis is rejected or not:
           </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span>
    <span class="string">"Results for Alternative Hypothesis and alpha"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
    <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Alternative Hypothesis Conclusion\n"</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -38,8 +38,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for cauchy_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
@@ -69,8 +68,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// Default 'standard' normal distribution with zero mean and
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// Default 'standard' normal distribution with zero mean and
 </span><span class="keyword">double</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// normal default standard deviation is 1.</span></pre>
 <p>
               </p>
@@ -86,8 +84,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span> <span class="comment">// z to give prob p
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span> <span class="comment">// z to give prob p
 </span><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.001</span><span class="special">;</span> <span class="comment">// only 0.1% below z
 </span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span>
@@ -116,8 +113,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"offset location (mean) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -148,8 +144,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">np001pc</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span> <span class="comment">// Same standard_deviation (scale) but with mean (location) shifted.</span></pre>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">np001pc</span><span class="special">(</span><span class="identifier">l</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">);</span> <span class="comment">// Same standard_deviation (scale) but with mean (location) shifted.</span></pre>
 <p>
               </p>
 <p>
@@ -162,8 +157,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
     <span class="special">&lt;&lt;</span> <span class="string">" has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
     <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">np001pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
   <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
@@ -181,7 +175,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_find_location"></a>
               </p>
 <h5>
-<a name="id559761"></a>
+<a name="id559496"></a>
                 <a href="find_location_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg.controlling_error_handling_from_find_location">Controlling
                 Error Handling from find_location</a>
               </h5>
@@ -202,8 +196,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">;</span></pre>
 <p>
@@ -219,8 +212,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">ignore_domain_policy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">ignore_domain_policy</span><span class="special">;</span>
 <span class="comment">// find_location with new policy, using typedef.
 </span><span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">,</span> <span class="identifier">ignore_domain_policy</span><span class="special">());</span>
 <span class="comment">// Default policy policy&lt;&gt;, needs "using boost::math::policies::policy;"
@@ -244,8 +236,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">z</span> <span class="special">=</span> <span class="number">2.</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">z</span> <span class="special">=</span> <span class="number">2.</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="number">0.95</span><span class="special">;</span> <span class="comment">// = 1 - p; // complement.
 </span><span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">sd</span><span class="special">));</span>
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -38,8 +38,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for cauchy_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
@@ -63,7 +62,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_scale_to_meet_dispensing_and_measurement_specifications"></a>
               </p>
 <h5>
-<a name="id564939"></a>
+<a name="id564665"></a>
                 <a href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_find_location_and_find_scale_to_meet_dispensing_and_measurement_specifications">Using
                 find_location and find_scale to meet dispensing and measurement specifications</a>
               </h5>
@@ -92,8 +91,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">3.</span><span class="special">;</span> <span class="comment">// kg
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">3.</span><span class="special">;</span> <span class="comment">// kg
 </span><span class="keyword">double</span> <span class="identifier">standard_deviation</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> <span class="comment">// kg
 </span><span class="identifier">normal</span> <span class="identifier">packs</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span></pre>
 <p>
@@ -109,8 +107,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">max_weight</span> <span class="special">=</span> <span class="number">3.1</span><span class="special">;</span> <span class="comment">// kg
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">max_weight</span> <span class="special">=</span> <span class="number">3.1</span><span class="special">;</span> <span class="comment">// kg
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Percentage of packs &gt; "</span> <span class="special">&lt;&lt;</span> <span class="identifier">max_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span>
 <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">max_weight</span><span class="special">))</span> <span class="special">*</span> <span class="number">100.</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// P(X &gt; 3.1)</span></pre>
 <p>
@@ -133,8 +130,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">minimum_weight</span> <span class="special">=</span> <span class="number">2.9</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">minimum_weight</span> <span class="special">=</span> <span class="number">2.9</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span><span class="string">"Fraction of packs &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
   <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// fraction of packs &lt;= 2.9 with a mean of 3 is 0.841345</span></pre>
@@ -164,8 +160,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">over_mean</span> <span class="special">=</span> <span class="number">3.06449</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">over_mean</span> <span class="special">=</span> <span class="number">3.06449</span><span class="special">;</span>
 <span class="identifier">normal</span> <span class="identifier">xpacks</span><span class="special">(</span><span class="identifier">over_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
 <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">xpacks</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
@@ -184,8 +179,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">under_fraction</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// so 95% are above the minimum weight mean - sd = 2.9
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">under_fraction</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// so 95% are above the minimum weight mean - sd = 2.9
 </span><span class="keyword">double</span> <span class="identifier">low_limit</span> <span class="special">=</span> <span class="identifier">standard_deviation</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">offset</span> <span class="special">=</span> <span class="identifier">mean</span> <span class="special">-</span> <span class="identifier">low_limit</span> <span class="special">-</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">nominal_mean</span> <span class="special">=</span> <span class="identifier">mean</span> <span class="special">+</span> <span class="identifier">offset</span><span class="special">;</span>
@@ -213,8 +207,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_location</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_location</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -229,8 +222,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">safe_mean</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">safe_mean</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 <span class="identifier">normal</span> <span class="identifier">good_packs</span><span class="special">(</span><span class="identifier">safe_mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span></pre>
 <p>
               </p>
@@ -244,8 +236,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nominal_mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nominal_mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
   <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
   <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">good_packs</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// Setting the packer to 3.06449 will mean that fraction of packs &gt;= 2.9 is 0.95</span></pre>
@@ -255,7 +246,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_normal_distribution"></a>
               </p>
 <h5>
-<a name="id566596"></a>
+<a name="id566312"></a>
                 <a href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.using_cauchy_lorentz_instead_of_normal_distribution">Using
                 Cauchy-Lorentz instead of normal distribution</a>
               </h5>
@@ -289,8 +280,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cauchy</span> <span class="identifier">cpacks</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cauchy</span> <span class="identifier">cpacks</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
   <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
   <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">cpacks</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -309,8 +299,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">lc</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">cauchy</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">lc</span> <span class="special">=</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">cauchy</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"find_location&lt;cauchy&gt;(minimum_weight, over fraction, standard_deviation); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">lc</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// find_location&lt;cauchy&gt;(minimum_weight, over fraction, packs.standard_deviation()); 3.53138</span></pre>
 <p>
@@ -331,8 +320,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cauchy</span> <span class="identifier">goodcpacks</span><span class="special">(</span><span class="identifier">lc</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cauchy</span> <span class="identifier">goodcpacks</span><span class="special">(</span><span class="identifier">lc</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span> <span class="special">&lt;&lt;</span> <span class="identifier">lc</span> <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
   <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
   <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">goodcpacks</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -350,8 +338,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Cauchy Setting the packer to "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">find_location</span><span class="special">&lt;</span><span class="identifier">cauchy</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="number">0.99</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">" will mean that "</span>
   <span class="special">&lt;&lt;</span> <span class="string">"fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span>
@@ -410,7 +397,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_deviation"></a>
               </p>
 <h5>
-<a name="id567549"></a>
+<a name="id567265"></a>
                 <a href="find_mean_and_sd_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg.changing_the_scale_or_standard_deviation">Changing
                 the scale or standard deviation</a>
               </h5>
@@ -438,8 +425,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// wanted p th quantile.
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// wanted p th quantile.
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -467,8 +453,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">pack05</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack05</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack05</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// Quantile of 0.05 = 2.91776, mean = 3, sd = 0.05
@@ -493,8 +478,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">pack06</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.06</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack06</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.06</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack06</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// Quantile of 0.05 = 2.90131, mean = 3, sd = 0.06
@@ -545,8 +529,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// standard normal distribution with meamn zero and unit standard deviation.
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// standard normal distribution with meamn zero and unit standard deviation.
 </span><span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">qp</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">N01</span><span class="special">,</span> <span class="identifier">p</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">sd95</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">minimum_weight</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">qp</span><span class="special">;</span>
@@ -567,8 +550,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">pack95</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">sd95</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack95</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">sd95</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
   <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack95</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
   <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack95</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -586,8 +568,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">ss</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ss</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">under_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ss</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); 0.0607957</span></pre>
 <p>
@@ -603,8 +584,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">over_fraction</span> <span class="special">=</span> <span class="number">0.95</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">over_fraction</span> <span class="special">=</span> <span class="number">0.95</span><span class="special">;</span></pre>
 <p>
               </p>
 <p>
@@ -615,8 +595,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">sso</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">sso</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
 </pre>
 <p>
               </p>
@@ -642,8 +621,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">ss1o</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ss1o</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">());</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ss1o</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// find_scale&lt;normal&gt;(minimum_weight, under_fraction, packs.mean()); 0.0607957</span></pre>
 <p>
@@ -661,8 +639,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">ssc</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()));</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">ssc</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">minimum_weight</span><span class="special">,</span> <span class="identifier">over_fraction</span><span class="special">,</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()));</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"find_scale&lt;normal&gt;(complement(minimum_weight, over_fraction, packs.mean())); "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ssc</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// find_scale&lt;normal&gt;(complement(minimum_weight, over_fraction, packs.mean())); 0.0607957</span></pre>
 <p>
@@ -682,8 +659,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">pack95c</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">ssc</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack95c</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">ssc</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span><span class="string">"Fraction of packs &gt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">minimum_weight</span> <span class="special">&lt;&lt;</span> <span class="string">" with a mean of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">mean</span>
   <span class="special">&lt;&lt;</span> <span class="string">" and standard deviation of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack95c</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span>
   <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">pack95c</span><span class="special">,</span> <span class="identifier">minimum_weight</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -39,8 +39,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">find_scale</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">find_scale</span><span class="special">;</span>
@@ -69,8 +68,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// Default 'standard' normal distribution with zero mean
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">N01</span><span class="special">;</span> <span class="comment">// Default 'standard' normal distribution with zero mean
 </span><span class="keyword">double</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// and standard deviation is 1.</span></pre>
 <p>
               </p>
@@ -86,8 +84,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span> <span class="comment">// z to give prob p
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span> <span class="comment">// z to give prob p
 </span><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.001</span><span class="special">;</span> <span class="comment">// only 0.1% below z = -2
 </span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">()</span> <span class="comment">// aka N01.mean()
@@ -118,8 +115,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">();</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">l</span> <span class="special">=</span> <span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">();</span>
 <span class="keyword">double</span> <span class="identifier">s</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"scale (standard deviation) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -152,8 +148,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">np001pc</span><span class="special">(</span><span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">np001pc</span><span class="special">(</span><span class="identifier">N01</span><span class="special">.</span><span class="identifier">location</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">);</span></pre>
 <p>
               </p>
 <p>
@@ -166,8 +161,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
   <span class="special">&lt;&lt;</span> <span class="string">" has "</span> <span class="special">&lt;&lt;</span> <span class="string">"fraction &lt;= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span>
   <span class="special">&lt;&lt;</span> <span class="string">", p = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">np001pc</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Normal distribution with mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">l</span>
@@ -185,7 +179,7 @@
               <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find_scale_are_handled"></a>
               </p>
 <h5>
-<a name="id562787"></a>
+<a name="id562511"></a>
                 <a href="find_scale_eg.html#math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg.controlling_how_errors_from_find_scale_are_handled">Controlling
                 how Errors from find_scale are handled</a>
               </h5>
@@ -206,8 +200,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">ignore_error</span><span class="special">;</span></pre>
 <p>
@@ -223,8 +216,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">ignore_domain_policy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special">&lt;</span><span class="identifier">domain_error</span><span class="special">&lt;</span><span class="identifier">ignore_error</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">ignore_domain_policy</span><span class="special">;</span>
 <span class="comment">// find_scale with new policy, using typedef.
 </span><span class="identifier">l</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">ignore_domain_policy</span><span class="special">());</span>
 <span class="comment">// Default policy policy&lt;&gt;, needs using boost::math::policies::policy;
@@ -250,8 +242,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="number">2.</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="number">0.999</span><span class="special">;</span> <span class="comment">// = 1 - p; // complement of 0.001.
 </span><span class="identifier">sd</span> <span class="special">=</span> <span class="identifier">find_scale</span><span class="special">&lt;</span><span class="identifier">normal</span><span class="special">&gt;(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">l</span><span class="special">));</span>
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,28 +53,24 @@
             The <a href="http://www.nag.co.uk/numeric/cl/manual/pdf/G01/g01bjc.pdf" target="_top">NAG
             function specification</a> is
           </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">nag_binomial_dist</span><span class="special">(</span><span class="identifier">Integer</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">Integer</span> <span class="identifier">k</span><span class="special">,</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">nag_binomial_dist</span><span class="special">(</span><span class="identifier">Integer</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">Integer</span> <span class="identifier">k</span><span class="special">,</span>
 <span class="keyword">double</span> <span class="special">*</span><span class="identifier">plek</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">*</span><span class="identifier">pgtk</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">*</span><span class="identifier">peqk</span><span class="special">,</span> <span class="identifier">NagError</span> <span class="special">*</span><span class="identifier">fail</span><span class="special">)</span>
 </pre>
 <p>
             and is called
           </p>
-<pre class="programlisting">
-<span class="identifier">g01bjc</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">plek</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">pgtk</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">peqk</span><span class="special">,</span> <span class="identifier">NAGERR_DEFAULT</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">g01bjc</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">k</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">plek</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">pgtk</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">peqk</span><span class="special">,</span> <span class="identifier">NAGERR_DEFAULT</span><span class="special">);</span>
 </pre>
 <p>
             The equivalent using this Boost C++ library is:
           </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span> <span class="comment">// Using declaration avoids very long names.
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span> <span class="comment">// Using declaration avoids very long names.
 </span><span class="identifier">binomial</span> <span class="identifier">my_dist</span><span class="special">(</span><span class="number">4</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span> <span class="comment">// c.f. NAG n = 4, p = 0.5
 </span></pre>
 <p>
             and values can be output thus:
           </p>
-<pre class="programlisting">
-<span class="identifier">cout</span>
+<pre class="programlisting"><span class="identifier">cout</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">my_dist</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// Echo the NAG input n = 4 trials.
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">my_dist</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// Echo the NAG input p = 0.5
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">my_dist</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span> <span class="comment">// NAG plek with k = 2

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -65,8 +65,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span>
 
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
@@ -87,8 +86,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span></pre>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span></pre>
 <p>
               </p>
 <p>
@@ -110,8 +108,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">trials</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">successes</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">trials</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">successes</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="comment">// trials = Total number of trials.
 </span> <span class="comment">// successes = Total number of observed successes.
@@ -155,8 +152,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
- <span class="comment">// Now print out the upper and lower limits for the alpha table values.
+<pre class="programlisting"> <span class="comment">// Now print out the upper and lower limits for the alpha table values.
 </span> <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
    <span class="special">{</span>
       <span class="comment">// Confidence value:
@@ -183,8 +179,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
   <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="number">20</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span> <span class="comment">// 20 trials, 2 successes, 2 in 20, = 1 in 10 = 0.1 success fraction.
 </span> <span class="identifier">confidence_limits_on_frequency</span><span class="special">(</span><span class="number">200</span><span class="special">,</span> <span class="number">20</span><span class="special">);</span> <span class="comment">// More trials, but same 0.1 success fraction.

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,8 +53,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">failures</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">);</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">failures</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">);</span></pre>
 <p>
               </p>
 <p>
@@ -69,8 +68,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span></pre>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span></pre>
 <p>
               </p>
 <p>
@@ -89,8 +87,7 @@
 <p>
               
 </p>
-<pre class="programlisting">
-<span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+<pre class="programlisting"><span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
 </pre>
 <p>
               </p>
@@ -103,8 +100,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-
+<pre class="programlisting">
 <span class="keyword">void</span> <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">failures</span><span class="special">,</span> <span class="keyword">double</span> <span class="identifier">p</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="comment">// trials = number of trials
@@ -146,8 +142,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
     <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">5</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
     <span class="identifier">find_number_of_trials</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">);</span>
@@ -179,8 +174,7 @@
                 instead. We would also have called <code class="computeroutput"><span class="identifier">find_minimum_number_of_trials</span></code>
                 like this:
 </p>
-<pre class="programlisting">
-<span class="identifier">floor</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span>
+<pre class="programlisting"><span class="identifier">floor</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">::</span><span class="identifier">find_minimum_number_of_trials</span><span class="special">(</span><span class="identifier">failures</span><span class="special">,</span> <span class="identifier">p</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span>
 </pre>
 <p>
                 which would give us the largest number of trials we could conduct

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -88,8 +88,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
 <span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span></pre>
 <p>
               </p>
@@ -121,8 +120,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
   <span class="comment">// for negative_binomial_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">negative_binomial</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
 </span> <span class="keyword">using</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">pdf</span><span class="special">;</span> <span class="comment">// Probability mass function.
@@ -157,8 +155,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">try</span>
+<pre class="programlisting"><span class="keyword">try</span>
 <span class="special">{</span></pre>
 <p>
               </p>
@@ -174,8 +171,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">sales_quota</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span> <span class="comment">// Pat's sales quota - successes (r).</span></pre>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">sales_quota</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span> <span class="comment">// Pat's sales quota - successes (r).</span></pre>
 <p>
               </p>
 <p>
@@ -189,8 +185,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.4</span><span class="special">;</span> <span class="comment">// success_fraction (p) - so failure_fraction is 0.6.</span></pre>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.4</span><span class="special">;</span> <span class="comment">// success_fraction (p) - so failure_fraction is 0.6.</span></pre>
 <p>
               </p>
 <p>
@@ -214,8 +209,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">negative_binomial</span> <span class="identifier">nb</span><span class="special">(</span><span class="identifier">sales_quota</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span> <span class="comment">// type double by default.</span></pre>
+<pre class="programlisting"><span class="identifier">negative_binomial</span> <span class="identifier">nb</span><span class="special">(</span><span class="identifier">sales_quota</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span> <span class="comment">// type double by default.</span></pre>
 <p>
               </p>
 <p>
@@ -229,8 +223,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Pat has a sales per house success rate of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">success_fraction</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Pat has a sales per house success rate of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">success_fraction</span>
   <span class="special">&lt;&lt;</span> <span class="string">".\nTherefore he would, on average, sell "</span> <span class="special">&lt;&lt;</span> <span class="identifier">nb</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> <span class="special">*</span> <span class="number">100</span>
   <span class="special">&lt;&lt;</span> <span class="string">" bars after trying 100 houses."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 
@@ -270,8 +263,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">5</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// == pdf(nb, 0)</span></pre>
 <p>
               </p>
@@ -294,8 +286,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the 6th house is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the 6th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">6</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the 7th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">7</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -321,8 +312,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on or before the 8th house is sum "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on or before the 8th house is sum "</span>
   <span class="string">"\n"</span> <span class="special">&lt;&lt;</span> <span class="string">"pdf(sales_quota) + pdf(6) + pdf(7) + pdf(8) = "</span>
   <span class="comment">// Sum each of the mass/density probabilities for houses sales_quota = 5, 6, 7, &amp; 8.
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">5</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="comment">// 0 failures.
@@ -348,8 +338,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
   <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">8</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -364,8 +353,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability that Pat finishes exactly on the 10th house is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability that Pat finishes exactly on the 10th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">10</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
   <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">10</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
@@ -383,8 +371,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes exactly on the 11th house is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes exactly on the 11th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">11</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
   <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="number">11</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
@@ -403,8 +390,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes exactly on the 12th house is "</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes exactly on the 12th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">12</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
@@ -433,8 +419,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that Pat finishes on the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span>
   <span class="special">&lt;&lt;</span> <span class="string">" house is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -465,8 +450,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of selling his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
   <span class="special">&lt;&lt;</span> <span class="string">" bars\non or before the "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span> <span class="special">&lt;&lt;</span> <span class="string">"th house is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -517,8 +501,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of failing to sell his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nProbability of failing to sell his quota of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span>
   <span class="special">&lt;&lt;</span> <span class="string">" bars\neven after visiting all "</span> <span class="special">&lt;&lt;</span> <span class="identifier">all_houses</span> <span class="special">&lt;&lt;</span> <span class="string">" houses is "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">all_houses</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
@@ -540,8 +523,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="special">(</span><span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">));</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="special">(</span><span class="number">8</span> <span class="special">-</span> <span class="identifier">sales_quota</span><span class="special">));</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability of meeting sales quota on or before 8th house is "</span><span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -555,8 +537,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span>
     <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 
 <span class="identifier">cout</span><span class="special">&lt;&lt;</span> <span class="string">" quantile(nb, p) = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
@@ -580,8 +561,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">1.</span>
     <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// 1.#INF == infinity.</span></pre>
 <p>
@@ -601,8 +581,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">0.</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">0.</span>
     <span class="special">&lt;&lt;</span> <span class="string">", then the finishing house is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="number">0.</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If the confidence of meeting sales quota is "</span> <span class="special">&lt;&lt;</span> <span class="number">0.5</span>
@@ -637,8 +616,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If confidence of meeting quota is zero\n(we assume all houses are successful sales)"</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"If confidence of meeting quota is zero\n(we assume all houses are successful sales)"</span>
   <span class="string">", then finishing house is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -658,8 +636,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
- <span class="keyword">double</span> <span class="identifier">ps</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0.</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.9</span><span class="special">,</span> <span class="number">0.95</span><span class="special">,</span> <span class="number">0.99</span><span class="special">,</span> <span class="number">0.999</span><span class="special">,</span> <span class="number">1.</span><span class="special">};</span>
+<pre class="programlisting"> <span class="keyword">double</span> <span class="identifier">ps</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0.</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.9</span><span class="special">,</span> <span class="number">0.95</span><span class="special">,</span> <span class="number">0.99</span><span class="special">,</span> <span class="number">0.999</span><span class="special">,</span> <span class="number">1.</span><span class="special">};</span>
  <span class="comment">// Confidence as fraction = 1-alpha, as percent = 100 * (1-alpha[i]) %
 </span> <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
  <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">ps</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">ps</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="identifier">i</span><span class="special">++)</span>
@@ -691,8 +668,7 @@
                 We could have applied a ceil function to obtain a 'worst case' integer
                 value for house.
 </p>
-<pre class="programlisting">
-<span class="identifier">ceil</span><span class="special">(</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">ps</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span></pre>
+<pre class="programlisting"><span class="identifier">ceil</span><span class="special">(</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="identifier">ps</span><span class="special">[</span><span class="identifier">i</span><span class="special">]))</span></pre>
 <p>
               </p>
 <p>
@@ -701,8 +677,7 @@
                 Or, if we had used the default discrete quantile policy, integer_outside,
                 by omitting
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span></pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span></pre>
 <p>
                 we would have achieved the same effect.
               </p>
@@ -736,8 +711,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nHouse for "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="string">"th (last) sale. Probability (%)"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nHouse for "</span> <span class="special">&lt;&lt;</span> <span class="identifier">sales_quota</span> <span class="special">&lt;&lt;</span> <span class="string">"th (last) sale. Probability (%)"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="special">(</span><span class="keyword">int</span><span class="special">)</span><span class="identifier">sales_quota</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="identifier">all_houses</span><span class="special">+</span><span class="number">1</span><span class="special">;</span> <span class="identifier">i</span><span class="special">++)</span>
 <span class="special">{</span>
@@ -788,8 +762,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="special">}</span>
+<pre class="programlisting"><span class="special">}</span>
 <span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&amp;</span> <span class="identifier">e</span><span class="special">)</span>
 <span class="special">{</span> <span class="comment">// Since we have set an overflow policy of ignore_error,
 </span> <span class="comment">// an overflow exception should never be thrown.
@@ -802,8 +775,7 @@
                 For example, without a ignore domain error policy, if we asked for
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span></pre>
+<pre class="programlisting"><span class="identifier">pdf</span><span class="special">(</span><span class="identifier">nb</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span></pre>
 <p>
                 for example, we would get:
               </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,8 +36,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="comment">// Print a table of values that can be used to plot
+<pre class="programlisting"><span class="comment">// Print a table of values that can be used to plot
 </span><span class="comment">// using Excel, or some other superior graphical display tool.
 </span>
 <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">17</span><span class="special">);</span> <span class="comment">// Use max_digits10 precision, the maximum available for a reference table.
@@ -63,8 +62,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">k</span> <span class="identifier">pdf</span> <span class="identifier">cdf</span>
+<pre class="programlisting"><span class="identifier">k</span> <span class="identifier">pdf</span> <span class="identifier">cdf</span>
  <span class="number">0</span><span class="special">,</span> <span class="number">1.5258789062500000e-005</span> <span class="number">1.5258789062500003e-005</span>
  <span class="number">1</span><span class="special">,</span> <span class="number">9.1552734375000000e-005</span> <span class="number">0.00010681152343750000</span>
  <span class="number">2</span><span class="special">,</span> <span class="number">0.00030899047851562522</span> <span class="number">0.00041580200195312500</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,7 +32,7 @@
               illustrates their use.
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.traditional_tables"></a><h5>
-<a name="id547653"></a>
+<a name="id547418"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.traditional_tables">Traditional
               Tables</a>
             </h5>
@@ -47,8 +47,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span> <span class="comment">// for normal_distribution
 </span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal</span><span class="special">;</span> <span class="comment">// typedef provides default type is double.
 </span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
@@ -77,8 +76,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">step</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// in z
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">step</span> <span class="special">=</span> <span class="number">1.</span><span class="special">;</span> <span class="comment">// in z
 </span><span class="keyword">double</span> <span class="identifier">range</span> <span class="special">=</span> <span class="number">4</span><span class="special">;</span> <span class="comment">// min and max z = -range to +range.
 </span><span class="keyword">int</span> <span class="identifier">precision</span> <span class="special">=</span> <span class="number">17</span><span class="special">;</span> <span class="comment">// traditional tables are only computed to much lower precision.
 </span>
@@ -98,8 +96,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability distribution function values"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability distribution function values"</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">" z "</span> <span class="string">" pdf "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">5</span><span class="special">);</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">range</span><span class="special">;</span> <span class="identifier">z</span> <span class="special">&lt;</span> <span class="identifier">range</span> <span class="special">+</span> <span class="identifier">step</span><span class="special">;</span> <span class="identifier">z</span> <span class="special">+=</span> <span class="identifier">step</span><span class="special">)</span>
@@ -121,8 +118,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="comment">// For a standard normal distribution
+<pre class="programlisting"><span class="comment">// For a standard normal distribution
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Standard normal mean = "</span><span class="special">&lt;&lt;</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span>
   <span class="special">&lt;&lt;</span> <span class="string">", standard deviation = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Integral (area under the curve) from - infinity up to z "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -160,8 +156,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="number">2.</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">z</span> <span class="special">=</span> <span class="number">2.</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Area for z = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">z</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// to get the area for z.</span></pre>
 <p>
               </p>
@@ -178,8 +173,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
- <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of area has a z below "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.95</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of area has a z below "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.95</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// 95% of area has a z below 1.64485</span></pre>
 <p>
               </p>
@@ -194,8 +188,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
- <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of area has a z between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span>
+<pre class="programlisting"> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"95% of area has a z between "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span>
     <span class="special">&lt;&lt;</span> <span class="string">" and "</span> <span class="special">&lt;&lt;</span> <span class="special">-</span><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="number">0.975</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="comment">// 95% of area has a z between 1.95996 and -1.95996</span></pre>
 <p>
@@ -218,8 +211,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha1</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="number">2</span><span class="special">;</span> <span class="comment">// 0.3173105078629142
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha1</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">*</span> <span class="number">2</span><span class="special">;</span> <span class="comment">// 0.3173105078629142
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">17</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">"Significance level for z == 1 is "</span> <span class="special">&lt;&lt;</span> <span class="identifier">alpha1</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -233,8 +225,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0.3173105078629142</span><span class="special">,</span> <span class="comment">// z for 1 standard deviation.
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">0.3173105078629142</span><span class="special">,</span> <span class="comment">// z for 1 standard deviation.
 </span> <span class="number">0.20</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span></pre>
 <p>
               </p>
@@ -250,8 +241,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"level of significance (alpha)"</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"level of significance (alpha)"</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">4</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"2-sided 1 -sided z(alpha) "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
 <span class="special">{</span>
@@ -288,7 +278,7 @@
 <p>
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_of_the_mean"></a><h5>
-<a name="id550823"></a>
+<a name="id550578"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.standard_deviations_either_side_of_the_mean">Standard
               deviations either side of the Mean</a>
             </h5>
@@ -304,8 +294,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">showpoint</span> <span class="special">&lt;&lt;</span> <span class="string">"cdf(s, s.standard_deviation()) = "</span>
   <span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">())</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// from -infinity to 1 sd
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"cdf(complement(s, s.standard_deviation())) = "</span>
@@ -357,12 +346,12 @@
 <p>
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.some_simple_examples"></a><h5>
-<a name="id551558"></a>
+<a name="id551312"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.some_simple_examples">Some
               simple examples</a>
             </h5>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs"></a><h5>
-<a name="id551584"></a>
+<a name="id551339"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.life_of_light_bulbs">Life
               of light bulbs</a>
             </h5>
@@ -383,8 +372,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="comment">// K. Krishnamoorthy, Handbook of Statistical Distributions with Applications,
+<pre class="programlisting"><span class="comment">// K. Krishnamoorthy, Handbook of Statistical Distributions with Applications,
 </span> <span class="comment">// ISBN 1 58488 635 8, page 125, example 10.3.5</span></pre>
 <p>
               </p>
@@ -401,8 +389,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">mean_life</span> <span class="special">=</span> <span class="number">1100.</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean_life</span> <span class="special">=</span> <span class="number">1100.</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">life_standard_deviation</span> <span class="special">=</span> <span class="number">100.</span><span class="special">;</span>
 <span class="identifier">normal</span> <span class="identifier">bulbs</span><span class="special">(</span><span class="identifier">mean_life</span><span class="special">,</span> <span class="identifier">life_standard_deviation</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">expected_life</span> <span class="special">=</span> <span class="number">1000.</span><span class="special">;</span></pre>
@@ -419,8 +406,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction of bulbs that will last at best (&lt;=) "</span> <span class="comment">// P(X &lt;= 1000)
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction of bulbs that will last at best (&lt;=) "</span> <span class="comment">// P(X &lt;= 1000)
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">expected_life</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span><span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">bulbs</span><span class="special">,</span> <span class="identifier">expected_life</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Fraction of bulbs that will last at least (&gt;) "</span> <span class="comment">// P(X &gt; 1000)
 </span> <span class="special">&lt;&lt;</span> <span class="identifier">expected_life</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span><span class="special">&lt;&lt;</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">bulbs</span><span class="special">,</span> <span class="identifier">expected_life</span><span class="special">))</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
@@ -449,7 +435,7 @@
 <p>
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.how_many_onions_"></a><h5>
-<a name="id552288"></a>
+<a name="id552040"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.how_many_onions_">How
               many onions?</a>
             </h5>
@@ -464,8 +450,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">140.</span><span class="special">;</span> <span class="comment">// sacks per week.
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">140.</span><span class="special">;</span> <span class="comment">// sacks per week.
 </span><span class="keyword">double</span> <span class="identifier">standard_deviation</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span>
 <span class="identifier">normal</span> <span class="identifier">sacks</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 
@@ -486,8 +471,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">stock_95</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="number">0.95</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">stock_95</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="number">0.95</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Store should stock "</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">stock_95</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" sacks to meet 95% of demands."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
               </p>
@@ -502,8 +486,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">stock_80</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="number">0.80</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">stock_80</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">sacks</span><span class="special">,</span> <span class="number">0.80</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Store should stock "</span> <span class="special">&lt;&lt;</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">stock_80</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="string">" sacks to meet 8 out of 10 demands."</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 </pre>
 <p>
@@ -511,7 +494,7 @@
 <p>
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.packing_beef"></a><h5>
-<a name="id552864"></a>
+<a name="id552612"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.packing_beef">Packing
               beef</a>
             </h5>
@@ -529,8 +512,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">3.</span><span class="special">;</span> <span class="comment">// kg
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">mean</span> <span class="special">=</span> <span class="number">3.</span><span class="special">;</span> <span class="comment">// kg
 </span><span class="keyword">double</span> <span class="identifier">standard_deviation</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span> <span class="comment">// kg
 </span><span class="identifier">normal</span> <span class="identifier">packs</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="identifier">standard_deviation</span><span class="special">);</span>
 
@@ -593,8 +575,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// wanted p th quantile.
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">p</span> <span class="special">=</span> <span class="number">0.05</span><span class="special">;</span> <span class="comment">// wanted p th quantile.
 </span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">packs</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">packs</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">//</span></pre>
 <p>
@@ -622,8 +603,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">pack05</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack05</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.05</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack05</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack05</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 
@@ -651,8 +631,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">pack06</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.06</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">pack06</span><span class="special">(</span><span class="identifier">mean</span><span class="special">,</span> <span class="number">0.06</span><span class="special">);</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Quantile of "</span> <span class="special">&lt;&lt;</span> <span class="identifier">p</span> <span class="special">&lt;&lt;</span> <span class="string">" = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">pack06</span><span class="special">,</span> <span class="identifier">p</span><span class="special">)</span>
   <span class="special">&lt;&lt;</span> <span class="string">", mean = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">mean</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">", sd = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">pack06</span><span class="special">.</span><span class="identifier">standard_deviation</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
 
@@ -686,8 +665,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
-<span class="identifier">normal</span> <span class="identifier">s</span><span class="special">;</span> <span class="comment">// For standard normal distribution,
+<pre class="programlisting"><span class="identifier">normal</span> <span class="identifier">s</span><span class="special">;</span> <span class="comment">// For standard normal distribution,
 </span><span class="keyword">double</span> <span class="identifier">sd</span> <span class="special">=</span> <span class="number">0.1</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">2.9</span><span class="special">;</span> <span class="comment">// Our required limit.
 </span><span class="comment">// then probability p = N((x - mean) / sd)
@@ -725,7 +703,7 @@
 <p>
             </p>
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.length_of_bolts"></a><h5>
-<a name="id555864"></a>
+<a name="id555612"></a>
               <a href="normal_misc.html#math_toolkit.dist.stat_tut.weg.normal_example.normal_misc.length_of_bolts">Length
               of bolts</a>
             </h5>
@@ -743,8 +721,7 @@
 <p>
                 
 </p>
-<pre class="programlisting">
- <span class="identifier">normal</span> <span class="identifier">bolts</span><span class="special">(</span><span class="number">3.95</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
+<pre class="programlisting"> <span class="identifier">normal</span> <span class="identifier">bolts</span><span class="special">(</span><span class="number">3.95</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span>
     <span class="keyword">double</span> <span class="identifier">top</span> <span class="special">=</span> <span class="number">4.1</span><span class="special">;</span>
     <span class="keyword">double</span> <span class="identifier">bottom</span> <span class="special">=</span> <span class="number">3.9</span><span class="special">;</span>
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -108,8 +108,7 @@
               We'll begin by defining a procedure to calculate intervals for various
               confidence levels; the procedure will print these out as a table:
             </p>
-<pre class="programlisting">
-<span class="comment">// Needed includes:
+<pre class="programlisting"><span class="comment">// Needed includes:
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
@@ -139,8 +138,7 @@
               We'll define a table of significance/risk levels for which we'll compute
               intervals:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
 </pre>
 <p>
               Note that these are the complements of the confidence/probability levels:
@@ -151,8 +149,7 @@
               <span class="emphasis"><em>degrees of freedom</em></span> parameter is the sample size
               less one:
             </p>
-<pre class="programlisting">
-<span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">Sn</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">Sn</span> <span class="special">-</span> <span class="number">1</span><span class="special">);</span>
 </pre>
 <p>
               Most of what follows in the program is pretty printing, so let's focus
@@ -161,8 +158,7 @@
               level. Note that since the significance levels are the complement of
               the probability, we have to wrap the arguments in a call to <span class="emphasis"><em>complement(...)</em></span>:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">T</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">T</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]</span> <span class="special">/</span> <span class="number">2</span><span class="special">));</span>
 </pre>
 <p>
               Note that alpha was divided by two, since we'll be calculating both
@@ -174,8 +170,7 @@
               interval from the t-statistic by multiplying by the standard deviation,
               and dividing by the square root of the sample size:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">w</span> <span class="special">=</span> <span class="identifier">T</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="keyword">double</span><span class="special">(</span><span class="identifier">Sn</span><span class="special">));</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">w</span> <span class="special">=</span> <span class="identifier">T</span> <span class="special">*</span> <span class="identifier">Sd</span> <span class="special">/</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="keyword">double</span><span class="special">(</span><span class="identifier">Sn</span><span class="special">));</span>
 </pre>
 <p>
               The two-sided interval is then the sample mean plus and minus this

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -41,8 +41,7 @@
               and we begin by defining a procedure that will print out a table of
               estimated sample sizes for various confidence levels:
             </p>
-<pre class="programlisting">
-<span class="comment">// Needed includes:
+<pre class="programlisting"><span class="comment">// Needed includes:
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
@@ -59,15 +58,13 @@
 <p>
               Next we define a table of significance levels:
             </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">alpha</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">0.5</span><span class="special">,</span> <span class="number">0.25</span><span class="special">,</span> <span class="number">0.1</span><span class="special">,</span> <span class="number">0.05</span><span class="special">,</span> <span class="number">0.01</span><span class="special">,</span> <span class="number">0.001</span><span class="special">,</span> <span class="number">0.0001</span><span class="special">,</span> <span class="number">0.00001</span> <span class="special">};</span>
 </pre>
 <p>
               Printing out the table of sample sizes required for various confidence
               levels begins with the table header:
             </p>
-<pre class="programlisting">
-<span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
+<pre class="programlisting"><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span>
         <span class="string">"_______________________________________________________________\n"</span>
         <span class="string">"Confidence Estimated Estimated\n"</span>
         <span class="string">" Value (%) Sample Size Sample Size\n"</span>
@@ -102,8 +99,7 @@
               twice: once with alpha for a one-sided test, and once with alpha/2
               for a two-sided test.
             </p>
-<pre class="programlisting">
- <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+<pre class="programlisting"> <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special">&lt;</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">)/</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">[</span><span class="number">0</span><span class="special">]);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
    <span class="special">{</span>
       <span class="comment">// Confidence value:
 </span> <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">fixed</span> <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">right</span> <span class="special">&lt;&lt;</span> <span class="number">100</span> <span class="special">*</span> <span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">alpha</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -64,8 +64,7 @@
                 of evidence does not constitute evidence of absence.</a>
               </p></td></tr>
 </table></div>
-<pre class="programlisting">
-<span class="comment">// Needed includes:
+<pre class="programlisting"><span class="comment">// Needed includes:
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
@@ -86,8 +85,7 @@
               Most of the procedure is pretty-printing, so let's just focus on the
               calculation, we begin by calculating the t-statistic:
             </p>
-<pre class="programlisting">
-<span class="comment">// Difference in means:
+<pre class="programlisting"><span class="comment">// Difference in means:
 </span><span class="keyword">double</span> <span class="identifier">diff</span> <span class="special">=</span> <span class="identifier">Sm</span> <span class="special">-</span> <span class="identifier">M</span><span class="special">;</span>
 <span class="comment">// Degrees of freedom:
 </span><span class="keyword">unsigned</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">Sn</span> <span class="special">-</span> <span class="number">1</span><span class="special">;</span>
@@ -100,8 +98,7 @@
               not, we don't care about the sign of the t-statistic, and we take the
               complement of the probability for comparison to the significance level:
             </p>
-<pre class="programlisting">
-<span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t_stat</span><span class="special">)));</span>
 </pre>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -54,8 +54,7 @@
               We begin by defining a procedure that will conduct our test assuming
               equal variances:
             </p>
-<pre class="programlisting">
-<span class="comment">// Needed headers:
+<pre class="programlisting"><span class="comment">// Needed headers:
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iomanip</span><span class="special">&gt;</span>
@@ -85,8 +84,7 @@
               and <span class="emphasis"><em>v</em></span> is the number of degrees of freedom of the
               two combined samples. We can now write the code to calculate the t-statistic:
             </p>
-<pre class="programlisting">
-<span class="comment">// Degrees of freedom:
+<pre class="programlisting"><span class="comment">// Degrees of freedom:
 </span><span class="keyword">double</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="identifier">Sn2</span> <span class="special">-</span> <span class="number">2</span><span class="special">;</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Degrees of Freedom"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span> <span class="special">&lt;&lt;</span> <span class="identifier">v</span> <span class="special">&lt;&lt;</span> <span class="string">"\n"</span><span class="special">;</span>
 <span class="comment">// Pooled variance:
@@ -100,8 +98,7 @@
               The next step is to define our distribution object, and calculate the
               complement of the probability:
             </p>
-<pre class="programlisting">
-<span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">students_t</span> <span class="identifier">dist</span><span class="special">(</span><span class="identifier">v</span><span class="special">);</span>
 <span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">dist</span><span class="special">,</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">t_stat</span><span class="special">)));</span>
 <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">55</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">left</span> <span class="special">&lt;&lt;</span> <span class="string">"Probability that difference is due to chance"</span> <span class="special">&lt;&lt;</span> <span class="string">"= "</span>
    <span class="special">&lt;&lt;</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">scientific</span> <span class="special">&lt;&lt;</span> <span class="number">2</span> <span class="special">*</span> <span class="identifier">q</span> <span class="special">&lt;&lt;</span> <span class="string">"\n\n"</span><span class="special">;</span>
@@ -296,8 +293,7 @@
 <p>
               Putting these formulae into code we get:
             </p>
-<pre class="programlisting">
-<span class="comment">// Degrees of freedom:
+<pre class="programlisting"><span class="comment">// Degrees of freedom:
 </span><span class="keyword">double</span> <span class="identifier">v</span> <span class="special">=</span> <span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">/</span> <span class="identifier">Sn1</span> <span class="special">+</span> <span class="identifier">Sd2</span> <span class="special">*</span> <span class="identifier">Sd2</span> <span class="special">/</span> <span class="identifier">Sn2</span><span class="special">;</span>
 <span class="identifier">v</span> <span class="special">*=</span> <span class="identifier">v</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">t1</span> <span class="special">=</span> <span class="identifier">Sd1</span> <span class="special">*</span> <span class="identifier">Sd1</span> <span class="special">/</span> <span class="identifier">Sn1</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
       File Structure</a>
 </h3></div></div></div>
 <a name="math_toolkit.main_overview.directories.boost_math"></a><h5>
-<a name="id435926"></a>
+<a name="id435962"></a>
         <a href="directories.html#math_toolkit.main_overview.directories.boost_math">boost/math</a>
       </h5>
 <div class="variablelist">
@@ -73,7 +73,7 @@
 </dl>
 </div>
 <a name="math_toolkit.main_overview.directories.boost_libs"></a><h5>
-<a name="id436117"></a>
+<a name="id436153"></a>
         <a href="directories.html#math_toolkit.main_overview.directories.boost_libs">boost/libs</a>
       </h5>
 <div class="variablelist">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="math_toolkit.main_overview.error_handling"></a> Error Handling
 </h3></div></div></div>
 <a name="math_toolkit.main_overview.error_handling.quick_reference"></a><h5>
-<a name="id491141"></a>
+<a name="id491090"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.quick_reference">Quick
         Reference</a>
       </h5>
@@ -121,7 +121,7 @@
         the default action for each error shown in bold:
       </p>
 <div class="table">
-<a name="id491399"></a><p class="title"><b>Table 1. Possible Actions for Domain Errors</b></p>
+<a name="id491348"></a><p class="title"><b>Table 1. Possible Actions for Domain Errors</b></p>
 <div class="table-contents"><table class="table" summary="Possible Actions for Domain Errors">
 <colgroup>
 <col>
@@ -196,7 +196,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id491715"></a><p class="title"><b>Table 2. Possible Actions for Pole Errors</b></p>
+<a name="id491664"></a><p class="title"><b>Table 2. Possible Actions for Pole Errors</b></p>
 <div class="table-contents"><table class="table" summary="Possible Actions for Pole Errors">
 <colgroup>
 <col>
@@ -271,7 +271,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id492029"></a><p class="title"><b>Table 3. Possible Actions for Overflow Errors</b></p>
+<a name="id491979"></a><p class="title"><b>Table 3. Possible Actions for Overflow Errors</b></p>
 <div class="table-contents"><table class="table" summary="Possible Actions for Overflow Errors">
 <colgroup>
 <col>
@@ -346,7 +346,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id492345"></a><p class="title"><b>Table 4. Possible Actions for Underflow Errors</b></p>
+<a name="id492294"></a><p class="title"><b>Table 4. Possible Actions for Underflow Errors</b></p>
 <div class="table-contents"><table class="table" summary="Possible Actions for Underflow Errors">
 <colgroup>
 <col>
@@ -421,7 +421,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id492568"></a><p class="title"><b>Table 5. Possible Actions for Denorm Errors</b></p>
+<a name="id492518"></a><p class="title"><b>Table 5. Possible Actions for Denorm Errors</b></p>
 <div class="table-contents"><table class="table" summary="Possible Actions for Denorm Errors">
 <colgroup>
 <col>
@@ -496,7 +496,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id492793"></a><p class="title"><b>Table 6. Possible Actions for Internal Evaluation
+<a name="id492742"></a><p class="title"><b>Table 6. Possible Actions for Internal Evaluation
       Errors</b></p>
 <div class="table-contents"><table class="table" summary="Possible Actions for Internal Evaluation
       Errors">
@@ -573,7 +573,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.main_overview.error_handling.rationale"></a><h5>
-<a name="id493128"></a>
+<a name="id493077"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.rationale">Rationale</a>
       </h5>
 <p>
@@ -592,7 +592,7 @@
         </li>
 </ul></div>
 <a name="math_toolkit.main_overview.error_handling.finding_more_information"></a><h5>
-<a name="id493178"></a>
+<a name="id493127"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.finding_more_information">Finding
         More Information</a>
       </h5>
@@ -614,7 +614,7 @@
         The various kind of errors are described in more detail below.
       </p>
 <a name="domain_error"></a><a name="math_toolkit.main_overview.error_handling.domain_errors"></a><h5>
-<a name="id493272"></a>
+<a name="id493221"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.domain_errors">Domain
         Errors</a>
       </h5>
@@ -623,8 +623,7 @@
         values for which that function is defined, then the function returns the
         result of:
       </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_domain_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> Policy<span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_domain_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> Policy<span class="special">);</span>
 </pre>
 <p>
         Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating-point
@@ -708,7 +707,7 @@
         for more details.
       </p>
 <a name="pole_error"></a><a name="math_toolkit.main_overview.error_handling.evaluation_at_a_pole"></a><h5>
-<a name="id493656"></a>
+<a name="id493604"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.evaluation_at_a_pole">Evaluation
         at a pole</a>
       </h5>
@@ -716,8 +715,7 @@
         When a special function is passed an argument that is at a pole without a
         well defined residual value, then the function returns the result of:
       </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_pole_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> Policy<span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_pole_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> Policy<span class="special">);</span>
 </pre>
 <p>
         Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
@@ -748,7 +746,7 @@
         for more details.
       </p>
 <a name="overflow_error"></a><a name="math_toolkit.main_overview.error_handling.numeric_overflow"></a><h5>
-<a name="id493979"></a>
+<a name="id493925"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.numeric_overflow">Numeric
         Overflow</a>
       </h5>
@@ -756,8 +754,7 @@
         When the result of a special function is too large to fit in the argument
         floating-point type, then the function returns the result of:
       </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_overflow_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> Policy<span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_overflow_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> Policy<span class="special">);</span>
 </pre>
 <p>
         Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating-point
@@ -774,7 +771,7 @@
         doesn't support infinities, the maximum value for the type is returned.
       </p>
 <a name="underflow_error"></a><a name="math_toolkit.main_overview.error_handling.numeric_underflow"></a><h5>
-<a name="id494260"></a>
+<a name="id494206"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.numeric_underflow">Numeric
         Underflow</a>
       </h5>
@@ -782,8 +779,7 @@
         If the result of a special function is known to be non-zero, but the calculated
         result underflows to zero, then the function returns the result of:
       </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_underflow_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> Policy<span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_underflow_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> Policy<span class="special">);</span>
 </pre>
 <p>
         Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
@@ -798,7 +794,7 @@
         an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code> C++ exception.
       </p>
 <a name="denorm_error"></a><a name="math_toolkit.main_overview.error_handling.denormalisation_errors"></a><h5>
-<a name="id494483"></a>
+<a name="id494427"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.denormalisation_errors">Denormalisation
         Errors</a>
       </h5>
@@ -806,8 +802,7 @@
         If the result of a special function is a denormalised value <span class="emphasis"><em>z</em></span>
         then the function returns the result of:
       </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_denorm_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> Policy<span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_denorm_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> Policy<span class="special">);</span>
 </pre>
 <p>
         Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
@@ -822,7 +817,7 @@
         throws an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">underflow_error</span></code> C++ exception.
       </p>
 <a name="evaluation_error"></a><a name="math_toolkit.main_overview.error_handling.evaluation_errors"></a><h5>
-<a name="id494722"></a>
+<a name="id494665"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.evaluation_errors">Evaluation
         Errors</a>
       </h5>
@@ -830,8 +825,7 @@
         When a special function calculates a result that is known to be erroneous,
         or where the result is incalculable then it calls:
       </p>
-<pre class="programlisting">
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_evaluation_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> Policy<span class="special">);</span>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">raise_evaluation_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">FunctionName</span><span class="special">,</span> <span class="identifier">Message</span><span class="special">,</span> <span class="identifier">Val</span><span class="special">,</span> Policy<span class="special">);</span>
 </pre>
 <p>
         Where <code class="computeroutput"><span class="identifier">T</span></code> is the floating point
@@ -860,7 +854,7 @@
         for more details.
       </p>
 <a name="checked_narrowing_cast"></a><a name="math_toolkit.main_overview.error_handling.errors_from_typecasts"></a><h5>
-<a name="id495051"></a>
+<a name="id494993"></a>
         <a href="error_handling.html#math_toolkit.main_overview.error_handling.errors_from_typecasts">Errors
         from typecasts</a>
       </h5>
@@ -872,8 +866,7 @@
         occur not during evaluation, but when converting the result to the narrower
         result type. The function:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">checked_narrowing_cast</span><span class="special">(</span><span class="identifier">U</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">);</span>
 </pre>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,7 +31,7 @@
         <a name="math_toolkit.main_overview.history1.milestone_5__post_review_first_official_release"></a>
         </p>
 <h5>
-<a name="id496758"></a>
+<a name="id496696"></a>
           <a href="history1.html#math_toolkit.main_overview.history1.milestone_5__post_review_first_official_release">Milestone
           5: Post Review First Official Release</a>
         </h5>
@@ -68,7 +68,7 @@
         <a name="math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_"></a>
         </p>
 <h5>
-<a name="id496863"></a>
+<a name="id496802"></a>
           <a href="history1.html#math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_">Milestone
           4: Second Review Candidate (1st March 2007)</a>
         </h5>
@@ -87,7 +87,7 @@
         <a name="math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a>
         </p>
 <h5>
-<a name="id496905"></a>
+<a name="id496843"></a>
           <a href="history1.html#math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_">Milestone
           3: First Review Candidate (31st Dec 2006)</a>
         </h5>
@@ -120,7 +120,7 @@
         <a name="math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006"></a>
         </p>
 <h5>
-<a name="id496969"></a>
+<a name="id496907"></a>
           <a href="history1.html#math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006">Milestone
           2: Released September 10th 2006</a>
         </h5>
@@ -161,7 +161,7 @@
         <a name="math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006"></a>
         </p>
 <h5>
-<a name="id497045"></a>
+<a name="id496984"></a>
           <a href="history1.html#math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006">Milestone
           1: Released March 31st 2006</a>
         </h5>
@@ -196,7 +196,7 @@
 <p>
         </p>
 <p>
- Sandbox and trunk last synchonised at revision: 40161.
+ Sandbox and trunk last synchonised at revision: 41065.
         </p>
 <p>
       </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,7 +30,7 @@
         This library is divided into three interconnected parts:
       </p>
 <a name="math_toolkit.main_overview.intro.statistical_distributions"></a><h5>
-<a name="id489872"></a>
+<a name="id436439"></a>
         <a href="intro.html#math_toolkit.main_overview.intro.statistical_distributions">Statistical
         Distributions</a>
       </h5>
@@ -56,7 +56,7 @@
         tests.
       </p>
 <a name="math_toolkit.main_overview.intro.mathematical_special_functions"></a><h5>
-<a name="id437802"></a>
+<a name="id437821"></a>
         <a href="intro.html#math_toolkit.main_overview.intro.mathematical_special_functions">Mathematical
         Special Functions</a>
       </h5>
@@ -83,7 +83,7 @@
         <span class="keyword">double</span></code>.
       </p>
 <a name="math_toolkit.main_overview.intro.implementation_toolkit"></a><h5>
-<a name="id437927"></a>
+<a name="id437947"></a>
         <a href="intro.html#math_toolkit.main_overview.intro.implementation_toolkit">Implementation
         Toolkit</a>
       </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,15 +34,13 @@
         So, for example, the Students-t distribution template in <code class="computeroutput"><span class="keyword">namespace</span>
         <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span></code> is
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span> <span class="keyword">class</span> <span class="identifier">students_t_distribution</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span> <span class="keyword">class</span> <span class="identifier">students_t_distribution</span>
 </pre>
 <p>
         and can be instantiated with the help of the reserved name <code class="computeroutput"><span class="identifier">students_t</span></code>(for <code class="computeroutput"><span class="identifier">RealType</span>
         <span class="keyword">double</span></code>)
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">students_t_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">students_t</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">students_t_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">students_t</span><span class="special">;</span>
 
 <span class="identifier">student_t</span> <span class="identifier">mydist</span><span class="special">(</span><span class="number">10</span><span class="special">);</span>
 </pre>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,7 +31,7 @@
         as handy shortcuts for common navigation tasks.
       </p>
 <a name="math_toolkit.main_overview.navigation.shortcuts"></a><h6>
-<a name="id440348"></a>
+<a name="id440365"></a>
         <a href="navigation.html#math_toolkit.main_overview.navigation.shortcuts">Shortcuts</a>
       </h6>
 <div class="blockquote"><blockquote class="blockquote">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,8 +31,7 @@
         The functions in this library are all overloaded to accept mixed floating
         point (or mixed integer and floating point type) arguments. So for example:
       </p>
-<pre class="programlisting">
-<span class="identifier">foo</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">foo</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span>
 <span class="identifier">foo</span><span class="special">(</span><span class="number">1.0f</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span>
 <span class="identifier">foo</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2L</span><span class="special">);</span>
 </pre>
@@ -85,29 +84,25 @@
 <p>
         For example:
       </p>
-<pre class="programlisting">
-<span class="identifier">cyl_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cyl_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0</span><span class="special">);</span>
 </pre>
 <p>
         Returns a <code class="computeroutput"><span class="keyword">double</span></code> result, as
         does:
       </p>
-<pre class="programlisting">
-<span class="identifier">cyl_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cyl_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
 </pre>
 <p>
         as in this case the integer first argument is treated as a <code class="computeroutput"><span class="keyword">double</span></code> and takes precedence over the <code class="computeroutput"><span class="keyword">float</span></code> second argument. To get a <code class="computeroutput"><span class="keyword">float</span></code> result we would need all the arguments
         to be of type float:
       </p>
-<pre class="programlisting">
-<span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="number">2.0f</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="number">2.0f</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
 </pre>
 <p>
         When one or more of the arguments is not a template argument then it doesn't
         effect the return type at all, for example:
       </p>
-<pre class="programlisting">
-<span class="identifier">sph_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">sph_bessel</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">);</span>
 </pre>
 <p>
         returns a <code class="computeroutput"><span class="keyword">float</span></code>, since the first
@@ -118,8 +113,7 @@
 <p>
         And for user defined types, all of the following return an NTL::RR result:
       </p>
-<pre class="programlisting">
-<span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="number">2</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="number">2</span><span class="special">));</span>
 
 <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">(</span><span class="number">2</span><span class="special">),</span> <span class="number">3</span><span class="special">);</span>
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -41,8 +41,7 @@
         The reason for the latter limitation is the need to initialise symbolic constants
         using constructs such as:
       </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">coefficient_array</span> <span class="special">=</span> <span class="special">{</span> <span class="special">...</span> <span class="identifier">list</span> <span class="identifier">of</span> <span class="identifier">values</span> <span class="special">...</span> <span class="special">};</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">coefficient_array</span> <span class="special">=</span> <span class="special">{</span> <span class="special">...</span> <span class="identifier">list</span> <span class="identifier">of</span> <span class="identifier">values</span> <span class="special">...</span> <span class="special">};</span>
 </pre>
 <p>
         Which is always thread safe when T is a built-in floating point type, but

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -35,7 +35,7 @@
         in this respect).
       </p>
 <div class="table">
-<a name="id777579"></a><p class="title"><b>Table 40. Performance Comparison of Various Windows Compilers</b></p>
+<a name="id776700"></a><p class="title"><b>Table 40. Performance Comparison of Various Windows Compilers</b></p>
 <div class="table-contents"><table class="table" summary="Performance Comparison of Various Windows Compilers">
 <colgroup>
 <col>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -46,7 +46,7 @@
         </p></td></tr>
 </table></div>
 <a name="math_toolkit.perf.comparisons.comparison_to_gsl_1_9_and_cephes"></a><h5>
-<a name="id780057"></a>
+<a name="id779160"></a>
         <a href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_gsl_1_9_and_cephes">Comparison
         to GSL-1.9 and Cephes</a>
       </h5>
@@ -213,7 +213,7 @@
 <td>
               <p>
                 +INF
- <sup>[<a name="id780424" href="#ftn.id780424">1</a>]</sup>
+ <sup>[<a name="id779527" href="#ftn.id779527">1</a>]</sup>
               </p>
               </td>
 </tr>
@@ -284,13 +284,13 @@
               </td>
 </tr>
 </tbody>
-<tbody class="footnotes"><tr><td colspan="4"><div class="footnote"><p><sup>[<a name="ftn.id780424" href="#id780424">1</a>] </sup>
+<tbody class="footnotes"><tr><td colspan="4"><div class="footnote"><p><sup>[<a name="ftn.id779527" href="#id779527">1</a>] </sup>
                     Cephes gets stuck in an infinite loop while trying to execute
                     our test cases.
                   </p></div></td></tr></tbody>
 </table></div>
 <a name="math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_windows"></a><h5>
-<a name="id780594"></a>
+<a name="id779696"></a>
         <a href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_windows">Comparison
         to the R Statistical Library on Windows</a>
       </h5>
@@ -301,7 +301,7 @@
         appears not to be buildable with Visual C++).
       </p>
 <div class="table">
-<a name="id780621"></a><p class="title"><b>Table 43. A Comparison to the R Statistical Library on Windows
+<a name="id779723"></a><p class="title"><b>Table 43. A Comparison to the R Statistical Library on Windows
       XP</b></p>
 <div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Windows
       XP">
@@ -374,7 +374,7 @@
             <p>
               </p>
 <p>74.66
- <sup>[<a name="id780761" href="#ftn.id780761">1</a>]</sup>
+ <sup>[<a name="id779864" href="#ftn.id779864">1</a>]</sup>
               </p>
 <p> </p>
 <p>(4.905e-004s)</p>
@@ -792,7 +792,7 @@
             <p>
               </p>
 <p>53.59
- <sup>[<a name="id781610" href="#ftn.id781610">2</a>]</sup>
+ <sup>[<a name="id780712" href="#ftn.id780712">2</a>]</sup>
               </p>
 <p> </p>
 <p>(5.145e-004s)</p>
@@ -1010,12 +1010,12 @@
 </tr>
 </tbody>
 <tbody class="footnotes"><tr><td colspan="3">
-<div class="footnote"><p><sup>[<a name="ftn.id780761" href="#id780761">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id779864" href="#id779864">1</a>] </sup>
                   There are a small number of our test cases where the R library
                   fails to converge on a result: these tend to dominate the performance
                   result.
                 </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id781610" href="#id781610">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id780712" href="#id780712">2</a>] </sup>
                   The R library appears to use a linear-search strategy, that can
                   perform very badly in a small number of pathological cases, but
                   may or may not be more efficient in "typical" cases
@@ -1024,7 +1024,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux"></a><h5>
-<a name="id782060"></a>
+<a name="id781163"></a>
         <a href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux">Comparison
         to the R Statistical Library on Linux</a>
       </h5>
@@ -1033,7 +1033,7 @@
         Linux machine, with the test program and R-2.5.0 compiled with GNU G++ 4.2.0.
       </p>
 <div class="table">
-<a name="id782085"></a><p class="title"><b>Table 44. A Comparison to the R Statistical Library on Linux</b></p>
+<a name="id781188"></a><p class="title"><b>Table 44. A Comparison to the R Statistical Library on Linux</b></p>
 <div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Linux">
 <colgroup>
 <col>
@@ -1104,7 +1104,7 @@
             <p>
               </p>
 <p>44.06
- <sup>[<a name="id782225" href="#ftn.id782225">1</a>]</sup>
+ <sup>[<a name="id781327" href="#ftn.id781327">1</a>]</sup>
               </p>
 <p> </p>
 <p>(5.701e-004s)</p>
@@ -1522,7 +1522,7 @@
             <p>
               </p>
 <p>30.07
- <sup>[<a name="id783070" href="#ftn.id783070">2</a>]</sup>
+ <sup>[<a name="id782172" href="#ftn.id782172">2</a>]</sup>
               </p>
 <p> </p>
 <p>(5.490e-004s)</p>
@@ -1740,12 +1740,12 @@
 </tr>
 </tbody>
 <tbody class="footnotes"><tr><td colspan="3">
-<div class="footnote"><p><sup>[<a name="ftn.id782225" href="#id782225">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id781327" href="#id781327">1</a>] </sup>
                   There are a small number of our test cases where the R library
                   fails to converge on a result: these tend to dominate the performance
                   result.
                 </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id783070" href="#id783070">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id782172" href="#id782172">2</a>] </sup>
                   The R library appears to use a linear-search strategy, that can
                   perform very badly in a small number of pathological cases, but
                   may or may not be more efficient in "typical" cases

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,7 +33,7 @@
         penalty for using the library in debug mode can be quite large.
       </p>
 <div class="table">
-<a name="id777016"></a><p class="title"><b>Table 39. Performance Comparison of Release and Debug Settings</b></p>
+<a name="id776137"></a><p class="title"><b>Table 39. Performance Comparison of Release and Debug Settings</b></p>
 <div class="table-contents"><table class="table" summary="Performance Comparison of Release and Debug Settings">
 <colgroup>
 <col>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -234,7 +234,7 @@
         highly vectorisable processors in the future.
       </p>
 <div class="table">
-<a name="id778706"></a><p class="title"><b>Table 41. A Comparison of Polynomial Evaluation Methods</b></p>
+<a name="id777808"></a><p class="title"><b>Table 41. A Comparison of Polynomial Evaluation Methods</b></p>
 <div class="table-contents"><table class="table" summary="A Comparison of Polynomial Evaluation Methods">
 <colgroup>
 <col>
@@ -634,7 +634,7 @@
         tutorial</a>.
       </p>
 <div class="table">
-<a name="id779462"></a><p class="title"><b>Table 42. Performance Comparison with and Without Internal
+<a name="id778564"></a><p class="title"><b>Table 42. Performance Comparison with and Without Internal
       Promotion to long double</b></p>
 <div class="table-contents"><table class="table" summary="Performance Comparison with and Without Internal
       Promotion to long double">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -35,8 +35,7 @@
 <p>
           For example, the Cauchy distribution does not have a mean, so what should
         </p>
-<pre class="programlisting">
-<span class="identifier">mean</span><span class="special">(</span><span class="identifier">cauchy</span><span class="special">&lt;&gt;());</span>
+<pre class="programlisting"><span class="identifier">mean</span><span class="special">(</span><span class="identifier">cauchy</span><span class="special">&lt;&gt;());</span>
 </pre>
 <p>
           return, and should such an expression even compile at all?
@@ -51,8 +50,7 @@
 <p>
           This behaviour is controlled by the <code class="computeroutput"><span class="identifier">assert_undefined</span><span class="special">&lt;&gt;</span></code> policy:
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">assert_undefined</span><span class="special">;</span>
@@ -62,8 +60,7 @@
 <p>
           For example:
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -37,8 +37,7 @@
           but we do then need to decide how best to round the result. The <code class="computeroutput"><span class="identifier">discrete_quantile</span></code> policy defines how
           discrete quantiles work, and how integer results are rounded:
         </p>
-<pre class="programlisting">
-<span class="keyword">enum</span> <span class="identifier">discrete_quantile_policy_type</span>
+<pre class="programlisting"><span class="keyword">enum</span> <span class="identifier">discrete_quantile_policy_type</span>
 <span class="special">{</span>
    <span class="identifier">real</span><span class="special">,</span>
    <span class="identifier">integer_round_outwards</span><span class="special">,</span> <span class="comment">// default
@@ -56,7 +55,7 @@
           can take have the following meanings:
         </p>
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref.real"></a><h6>
-<a name="id767291"></a>
+<a name="id766453"></a>
           <a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.real">real</a>
         </h6>
 <p>
@@ -68,8 +67,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
@@ -95,7 +93,7 @@
           <span class="special">=</span> <span class="number">68.1584</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_outwards"></a><h6>
-<a name="id767779"></a>
+<a name="id766940"></a>
           <a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_outwards">integer_round_outwards</a>
         </h6>
 <p>
@@ -121,8 +119,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
@@ -145,8 +142,7 @@
 <p>
           The variables x and y are now defined so that:
         </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0.05</span>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0.05</span>
 <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">&gt;=</span> <span class="number">0.95</span>
 </pre>
 <p>
@@ -155,7 +151,7 @@
           in each tail</em></span>.
         </p>
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_inwards"></a><h6>
-<a name="id768300"></a>
+<a name="id767459"></a>
           <a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_inwards">integer_round_inwards</a>
         </h6>
 <p>
@@ -180,8 +176,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
@@ -210,8 +205,7 @@
 <p>
           The variables x and y are now defined so that:
         </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&gt;=</span> <span class="number">0.05</span>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&gt;=</span> <span class="number">0.05</span>
 <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">negative_binomial</span><span class="special">(</span><span class="number">20</span><span class="special">),</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0.95</span>
 </pre>
 <p>
@@ -220,7 +214,7 @@
           in each tail</em></span>.
         </p>
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_down"></a><h6>
-<a name="id768957"></a>
+<a name="id768112"></a>
           <a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_down">integer_round_down</a>
         </h6>
 <p>
@@ -228,7 +222,7 @@
           or a lower quantile.
         </p>
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_up"></a><h6>
-<a name="id768988"></a>
+<a name="id768144"></a>
           <a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_up">integer_round_up</a>
         </h6>
 <p>
@@ -236,7 +230,7 @@
           a lower quantile.
         </p>
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_nearest"></a><h6>
-<a name="id769020"></a>
+<a name="id768175"></a>
           <a href="discrete_quant_ref.html#math_toolkit.policy.pol_ref.discrete_quant_ref.integer_round_nearest">integer_round_nearest</a>
         </h6>
 <p>
@@ -254,8 +248,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">negative_binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -39,15 +39,14 @@
           </li>
 </ul></div>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.available_actions_when_an_error_is_raised"></a><h5>
-<a name="id761851"></a>
+<a name="id761024"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.available_actions_when_an_error_is_raised">Available
           Actions When an Error is Raised</a>
         </h5>
 <p>
           What to do with the error is encapsulated by an enumerated type:
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span> <span class="special">{</span>
 
 <span class="keyword">enum</span> <span class="identifier">error_policy_type</span>
 <span class="special">{</span>
@@ -63,7 +62,7 @@
           The various enumerated values have the following meanings:
         </p>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.throw_on_error"></a><h6>
-<a name="id762105"></a>
+<a name="id761276"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.throw_on_error">throw_on_error</a>
         </h6>
 <p>
@@ -163,7 +162,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.errno_on_error"></a><h6>
-<a name="id762288"></a>
+<a name="id761459"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.errno_on_error">errno_on_error</a>
         </h6>
 <p>
@@ -264,7 +263,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.ignore_error"></a><h6>
-<a name="id762487"></a>
+<a name="id761658"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.ignore_error">ignore_error</a>
         </h6>
 <p>
@@ -365,15 +364,14 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.user_error"></a><h6>
-<a name="id762687"></a>
+<a name="id761859"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.user_error">user_error</a>
         </h6>
 <p>
           Will call a user defined error handler: these are forward declared in boost/math/policies/error_handling.hpp,
           but the actual definitions must be provided by the user:
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
@@ -409,7 +407,7 @@
           here</a>.
         </p>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.kinds_of_error_raised"></a><h5>
-<a name="id763626"></a>
+<a name="id762797"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.kinds_of_error_raised">Kinds
           of Error Raised</a>
         </h5>
@@ -595,7 +593,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.policy.pol_ref.error_handling_policies.examples"></a><h5>
-<a name="id764468"></a>
+<a name="id763638"></a>
           <a href="error_handling_policies.html#math_toolkit.policy.pol_ref.error_handling_policies.examples">Examples</a>
         </h5>
 <p>
@@ -608,8 +606,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
@@ -647,8 +644,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -84,7 +84,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.policy.pol_ref.internal_promotion.examples"></a><h5>
-<a name="id765784"></a>
+<a name="id764953"></a>
           <a href="internal_promotion.html#math_toolkit.policy.pol_ref.internal_promotion.examples">Examples</a>
         </h5>
 <p>
@@ -97,8 +97,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
@@ -128,8 +127,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,8 +31,7 @@
           There are two policies that effect the iterative algorithms used to implement
           the special functions in this library:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">limit</span> <span class="special">=</span> <span class="identifier">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">limit</span> <span class="special">=</span> <span class="identifier">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">max_series_iterations</span><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="identifier">limit</span> <span class="special">=</span> <span class="identifier">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</span><span class="special">&gt;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,14 +33,12 @@
           specific policy to use with them. There are two macros defined to assist
           with that:
         </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">Policy</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">Policy</span><span class="special">)</span>
 </pre>
 <p>
           and:
         </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="identifier">Type</span><span class="special">,</span> <span class="identifier">Policy</span><span class="special">)</span>
 </pre>
 <p>
           You can use either of these macros after including any special function
@@ -51,8 +49,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
 
@@ -81,8 +78,7 @@
           In this example, using BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS results in
           a set of thin inline forwarding functions being defined:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="identifier">T</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">){</span> <span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">());</span> <span class="special">}</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -104,8 +100,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">cauchy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
 
@@ -146,8 +141,7 @@
           In this example the result of BOOST_MATH_DECLARE_DISTRIBUTIONS is to declare
           a typedef for each distribution like this:
         </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">cauchy</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">cauchy</span><span class="special">;</span>
 <span class="identifier">tyepdef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span>
 </pre>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,12 +34,10 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">policies</span><span class="special">/</span><span class="identifier">policy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">policies</span><span class="special">/</span><span class="identifier">policy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">policies</span>
 
@@ -95,8 +93,7 @@
           are intended for internal use but are documented briefly here for the sake
           of completeness.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">domain_error_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">domain_error_type</span>
 </pre>
 <p>
           Specifies how domain errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">domain_error</span><span class="special">&lt;&gt;</span></code>
@@ -104,8 +101,7 @@
           one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
           enumerated values.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">pole_error_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">pole_error_type</span>
 </pre>
 <p>
           Specifies how pole-errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">pole_error</span><span class="special">&lt;&gt;</span></code>
@@ -113,8 +109,7 @@
           one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
           enumerated values.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">overflow_error_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">overflow_error_type</span>
 </pre>
 <p>
           Specifies how overflow errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">overflow_error</span><span class="special">&lt;&gt;</span></code>
@@ -122,8 +117,7 @@
           one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
           enumerated values.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">underflow_error_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">underflow_error_type</span>
 </pre>
 <p>
           Specifies how underflow errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">underflow_error</span><span class="special">&lt;&gt;</span></code>
@@ -131,8 +125,7 @@
           one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
           enumerated values.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">denorm_error_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">denorm_error_type</span>
 </pre>
 <p>
           Specifies how denorm errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">denorm_error</span><span class="special">&lt;&gt;</span></code>
@@ -140,8 +133,7 @@
           one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
           enumerated values.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">evaluation_error_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">evaluation_error_type</span>
 </pre>
 <p>
           Specifies how evaluation errors are handled, will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">evaluation_error</span><span class="special">&lt;&gt;</span></code>
@@ -149,32 +141,28 @@
           one of the <code class="computeroutput"><span class="identifier">error_policy_type</span></code>
           enumerated values.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">precision_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">precision_type</span>
 </pre>
 <p>
           Specifies the internal precision to use in binary digits (uses zero to
           represent whatever the default precision is). Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">digits2</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></code>
           which in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></code>.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">promote_float_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">promote_float_type</span>
 </pre>
 <p>
           Specifies whether or not to promote <code class="computeroutput"><span class="keyword">float</span></code>
           arguments to <code class="computeroutput"><span class="keyword">double</span></code> precision
           internally. Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code> which in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">promote_double_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">promote_double_type</span>
 </pre>
 <p>
           Specifies whether or not to promote <code class="computeroutput"><span class="keyword">double</span></code>
           arguments to <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
           precision internally. Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_float</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code> which in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">discrete_quantile_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">discrete_quantile_type</span>
 </pre>
 <p>
           Specifies how discrete quantiles are evaluated, will be an instance of
@@ -182,24 +170,21 @@
           instantiated with one of the <code class="computeroutput"><span class="identifier">discrete_quantile_policy_type</span></code>
           enumerated type.
         </p>
-<pre class="programlisting">
-<span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">assert_undefined_type</span>
+<pre class="programlisting"><span class="identifier">policy</span><span class="special">&lt;...&gt;::</span><span class="identifier">assert_undefined_type</span>
 </pre>
 <p>
           Specifies whether mathematically-undefined properties are asserted as compile-time
           errors, or treated as runtime errors instead. Will be an instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">assert_undefined</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>
           which in turn inherits from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">bool_</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">...&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">...&gt;</span>
 <span class="keyword">typename</span> <span class="identifier">normalise</span><span class="special">&lt;</span><span class="identifier">policy</span><span class="special">&lt;&gt;,</span> <span class="identifier">A1</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">make_policy</span><span class="special">(...</span><span class="identifier">argument</span> <span class="identifier">list</span><span class="special">..);</span>
 </pre>
 <p>
           <code class="computeroutput"><span class="identifier">make_policy</span></code> is a helper
           function that converts a list of policies into a normalised <code class="computeroutput"><span class="identifier">policy</span></code> class.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">,</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">,</span>
           <span class="keyword">class</span> <span class="identifier">A1</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
           <span class="keyword">class</span> <span class="identifier">A2</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>
           <span class="keyword">class</span> <span class="identifier">A3</span> <span class="special">=</span> <span class="identifier">default_policy</span><span class="special">,</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -61,7 +61,7 @@
           then you can do so by defining various macros in boost/math/tools/user.hpp.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_domain_error_policy"></a><h6>
-<a name="id770829"></a>
+<a name="id769977"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_domain_error_policy">BOOST_MATH_DOMAIN_ERROR_POLICY</a>
         </h6>
 <p>
@@ -71,7 +71,7 @@
           <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_pole_error_policy"></a><h6>
-<a name="id770922"></a>
+<a name="id770070"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_pole_error_policy">BOOST_MATH_POLE_ERROR_POLICY</a>
         </h6>
 <p>
@@ -81,7 +81,7 @@
           <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_overflow_error_policy"></a><h6>
-<a name="id771014"></a>
+<a name="id770163"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_overflow_error_policy">BOOST_MATH_OVERFLOW_ERROR_POLICY</a>
         </h6>
 <p>
@@ -91,7 +91,7 @@
           <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_evaluation_error_policy"></a><h6>
-<a name="id771107"></a>
+<a name="id770256"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_evaluation_error_policy">BOOST_MATH_EVALUATION_ERROR_POLICY</a>
         </h6>
 <p>
@@ -101,7 +101,7 @@
           <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_underflow_error_policy"></a><h6>
-<a name="id771200"></a>
+<a name="id770349"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_underflow_error_policy">BOOST_MATH_UNDERFLOW_ERROR_POLICY</a>
         </h6>
 <p>
@@ -111,7 +111,7 @@
           <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_denorm_error_policy"></a><h6>
-<a name="id771293"></a>
+<a name="id770442"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_denorm_error_policy">BOOST_MATH_DENORM_ERROR_POLICY</a>
         </h6>
 <p>
@@ -121,7 +121,7 @@
           <code class="computeroutput"><span class="identifier">ignore_error</span></code> or <code class="computeroutput"><span class="identifier">user_error</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_digits10_policy"></a><h6>
-<a name="id771385"></a>
+<a name="id770534"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_digits10_policy">BOOST_MATH_DIGITS10_POLICY</a>
         </h6>
 <p>
@@ -132,7 +132,7 @@
           recommended that you change this from the default.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_float_policy"></a><h6>
-<a name="id771434"></a>
+<a name="id770584"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_float_policy">BOOST_MATH_PROMOTE_FLOAT_POLICY</a>
         </h6>
 <p>
@@ -144,7 +144,7 @@
           off.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_double_policy"></a><h6>
-<a name="id771526"></a>
+<a name="id770676"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_promote_double_policy">BOOST_MATH_PROMOTE_DOUBLE_POLICY</a>
         </h6>
 <p>
@@ -156,7 +156,7 @@
           off.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_discrete_quantile_policy"></a><h6>
-<a name="id771624"></a>
+<a name="id770774"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_discrete_quantile_policy">BOOST_MATH_DISCRETE_QUANTILE_POLICY</a>
         </h6>
 <p>
@@ -167,7 +167,7 @@
           Defaults to <code class="computeroutput"><span class="identifier">integer_round_outwards</span></code>.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_assert_undefined_policy"></a><h6>
-<a name="id771741"></a>
+<a name="id770890"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_assert_undefined_policy">BOOST_MATH_ASSERT_UNDEFINED_POLICY</a>
         </h6>
 <p>
@@ -180,7 +180,7 @@
           whether or not a particular property is well defined.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_series_iteration_policy"></a><h6>
-<a name="id771805"></a>
+<a name="id770955"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_series_iteration_policy">BOOST_MATH_MAX_SERIES_ITERATION_POLICY</a>
         </h6>
 <p>
@@ -189,7 +189,7 @@
           Defaults to 1000000.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_root_iteration_policy"></a><h6>
-<a name="id771847"></a>
+<a name="id770996"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.boost_math_max_root_iteration_policy">BOOST_MATH_MAX_ROOT_ITERATION_POLICY</a>
         </h6>
 <p>
@@ -198,7 +198,7 @@
           Defaults to 200.
         </p>
 <a name="math_toolkit.policy.pol_ref.policy_defaults.example"></a><h6>
-<a name="id771889"></a>
+<a name="id771038"></a>
           <a href="policy_defaults.html#math_toolkit.policy.pol_ref.policy_defaults.example">Example</a>
         </h6>
 <p>
@@ -207,16 +207,14 @@
           and for mathematically undefined functions to compile, but return a domain
           error. Then we could add the following to boost/math/tools/user.hpp:
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
 <span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DISCRETE_QUANTILE_POLICY</span> <span class="identifier">real</span>
 <span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span> <span class="keyword">false</span>
 </pre>
 <p>
           or we could place these definitions <span class="bold"><strong>before</strong></span>
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
   <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">;</span>
 </pre>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,8 +33,7 @@
           to the maximum precision available in the type being used - but can be
           set to other values to cause lower levels of precision to be used.
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">int</span> <span class="identifier">N</span><span class="special">&gt;</span>
 <span class="identifier">digits10</span><span class="special">;</span>
@@ -64,8 +63,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
@@ -87,8 +85,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
@@ -108,8 +105,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">normal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,8 +31,7 @@
           All of the statistical distributions in this library are class templates
           that accept two template parameters, both with sensible defaults, for example:
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span> <span class="special">=</span> <span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">fisher_f_distribution</span><span class="special">;</span>
@@ -58,8 +57,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="comment">//
 </span><span class="comment">// Begin by defining a policy type, that gives the

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,8 +31,7 @@
           All of the special functions in this library come in two overloaded forms,
           one with a final "policy" parameter, and one without. For example:
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">&gt;</span>
 <span class="identifier">RealType</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Policy</span><span class="special">&amp;);</span>
@@ -46,8 +45,7 @@
           Normally, the second version is just a forwarding wrapper to the first
           like this:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="identifier">RealType</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">return</span> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">&lt;&gt;());</span>
@@ -65,8 +63,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="comment">//
 </span><span class="comment">// Define the policy to use:
 </span><span class="comment">//
@@ -114,8 +111,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -50,8 +50,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span><span class="special">=</span><span class="number">0</span>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span><span class="special">=</span><span class="number">0</span>
 <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span><span class="special">=</span><span class="identifier">errno_on_error</span></pre>
 <p>
           </p>
@@ -62,8 +61,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span> <span class="keyword">false</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_ASSERT_UNDEFINED_POLICY</span> <span class="keyword">false</span>
 <span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_OVERFLOW_ERROR_POLICY</span> <span class="identifier">errno_on_error</span></pre>
 <p>
           </p>
@@ -76,8 +74,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="special">/</span><span class="identifier">D</span> <span class="string">"BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"</span>
+<pre class="programlisting"><span class="special">/</span><span class="identifier">D</span> <span class="string">"BOOST_MATH_ASSERT_UNDEFINED_POLICY=0"</span>
 <span class="special">/</span><span class="identifier">D</span> <span class="string">"BOOST_MATH_OVERFLOW_ERROR_POLICY=errno_on_error"</span></pre>
 <p>
           </p>
@@ -146,8 +143,7 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
 </pre>
 <p>
           </p>
@@ -159,8 +155,7 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
 </pre>
 <p>
           </p>
@@ -196,8 +191,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="comment">// Boost
+<pre class="programlisting"><span class="comment">// Boost
 </span><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">students_t</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
    <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">students_t</span><span class="special">;</span> <span class="comment">// Probability of students_t(df, t).
 </span>
@@ -222,8 +216,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Example error handling using Student's t function. "</span> <span class="special">&lt;&lt;</span> <span class="identifier">endl</span><span class="special">;</span>
    <span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"BOOST_MATH_DOMAIN_ERROR_POLICY is set to: "</span>
@@ -280,8 +273,7 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">ignore_error</span>
 </pre>
 <p>
           </p>
@@ -304,8 +296,7 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_MATH_DOMAIN_ERROR_POLICY</span> <span class="identifier">errno_on_error</span>
 </pre>
 <p>
           </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -58,8 +58,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
 <p>
@@ -75,8 +74,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">C</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">C</span><span class="special">{</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 
@@ -99,8 +97,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">c_policy</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">c_policy</span><span class="special">)</span>
 
 <span class="special">}</span> <span class="comment">// close namespace C</span></pre>
 <p>
@@ -116,8 +113,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">promote_args</span><span class="special">&lt;</span><span class="identifier">RT</span><span class="special">&gt;::</span><span class="identifier">type</span>
    <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RT</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
@@ -136,8 +132,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="identifier">errno</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of tgamma(30000) is: "</span>
@@ -181,8 +176,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">namespace</span> <span class="special">{</span>
 
@@ -220,14 +214,12 @@
           the macro BOOST_MATH_DECLARE_DISTRIBUTIONS accepts two parameters: the
           floating point type to use, and the policy type to apply. For example:
         </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">)</span>
 </pre>
 <p>
           Results a set of typedefs being defined like this:
         </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">mypolicy</span><span class="special">&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
 </pre>
 <p>
           The name of each typedef is the same as the name of the distribution class
@@ -261,8 +253,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
 <p>
@@ -277,8 +268,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">my_distributions</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">my_distributions</span><span class="special">{</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 
@@ -303,8 +293,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">)</span>
 
 <span class="special">}</span> <span class="comment">// close namespace my_namespace</span></pre>
 <p>
@@ -320,8 +309,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">normal_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">normal</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">cauchy_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">cauchy</span><span class="special">;</span>
 <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">gamma_distribution</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">my_policy</span><span class="special">&gt;</span> <span class="identifier">gamma</span><span class="special">;</span>
 <span class="comment">// etc
@@ -338,8 +326,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="comment">//
 </span> <span class="comment">// Start with something we know will overflow:
@@ -410,8 +397,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">namespace</span> <span class="special">{</span>
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -99,8 +99,7 @@
           What's more, if you define your own policy type, then it automatically
           inherits the defaults for any policies not explicitly set, so given:
         </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="comment">//
 </span><span class="comment">// Define a policy that sets ::errno on overflow, and does
 </span><span class="comment">// not promote double to long double internally:

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -126,27 +126,23 @@
 <p>
           So far so good, but there is in fact a trap waiting for the unwary here:
         </p>
-<pre class="programlisting">
-<span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.05</span><span class="special">);</span>
 </pre>
 <p>
           returns 18 as the result, which is what we would expect from the graph
           above, and indeed there is no x greater than 18 for which:
         </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0.05</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0.05</span><span class="special">;</span>
 </pre>
 <p>
           However:
         </p>
-<pre class="programlisting">
-<span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">quantile</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="number">0.95</span><span class="special">);</span>
 </pre>
 <p>
           returns 31, and indeed while there is no x less than 31 for which:
         </p>
-<pre class="programlisting">
-<span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&gt;=</span> <span class="number">0.95</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">binomial</span><span class="special">(</span><span class="number">50</span><span class="special">,</span> <span class="number">0.5</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">&gt;=</span> <span class="number">0.95</span><span class="special">;</span>
 </pre>
 <p>
           We might naively expect that for this symmetrical distribution the result
@@ -168,14 +164,12 @@
           a random variable X is in the tail area - where we would reject the null
           hypothesis if:
         </p>
-<pre class="programlisting">
-<span class="identifier">X</span> <span class="special">&lt;=</span> <span class="identifier">L</span> <span class="special">||</span> <span class="identifier">X</span> <span class="special">&gt;</span> <span class="identifier">U</span>
+<pre class="programlisting"><span class="identifier">X</span> <span class="special">&lt;=</span> <span class="identifier">L</span> <span class="special">||</span> <span class="identifier">X</span> <span class="special">&gt;</span> <span class="identifier">U</span>
 </pre>
 <p>
           And the a variable X is inside the central region if:
         </p>
-<pre class="programlisting">
-<span class="identifier">L</span> <span class="special">&lt;</span> <span class="identifier">X</span> <span class="special">&lt;=</span> <span class="identifier">U</span>
+<pre class="programlisting"><span class="identifier">L</span> <span class="special">&lt;</span> <span class="identifier">X</span> <span class="special">&lt;=</span> <span class="identifier">U</span>
 </pre>
 <p>
           The moral here is to <span class="emphasis"><em>always be very careful with your comparisons
@@ -183,7 +177,7 @@
           <span class="emphasis"><em>base your comparisons on CDF's instead</em></span>.
         </p>
 <a name="math_toolkit.policy.pol_tutorial.understand_dis_quant.other_rounding_policies_are_available"></a><h6>
-<a name="id758363"></a>
+<a name="id757527"></a>
           <a href="understand_dis_quant.html#math_toolkit.policy.pol_tutorial.understand_dis_quant.other_rounding_policies_are_available">Other
           Rounding Policies are Available</a>
         </h6>
@@ -261,8 +255,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
@@ -277,8 +270,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
 <span class="keyword">typedef</span> <span class="identifier">binomial_distribution</span><span class="special">&lt;</span>
@@ -322,8 +314,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span>
       <span class="string">"Testing rounding policies for a 50 sample binomial distribution,\n"</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -40,8 +40,7 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policy</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
@@ -69,8 +68,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
@@ -104,8 +102,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span><span class="special">{</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 
@@ -130,8 +127,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">promote_args</span><span class="special">&lt;</span><span class="identifier">RT</span><span class="special">&gt;::</span><span class="identifier">type</span>
    <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RT</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
@@ -151,8 +147,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of erf_inv(-10) is: "</span>
       <span class="special">&lt;&lt;</span> <span class="identifier">erf_inv</span><span class="special">(-</span><span class="number">10</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
@@ -192,8 +187,7 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_</span><span class="emphasis"><em>error_type</em></span><span class="special">(</span>
    <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span>
    <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span>
@@ -242,8 +236,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           </p>
@@ -258,8 +251,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">policies</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
@@ -276,8 +268,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
     <span class="identifier">function</span> <span class="special">=</span> <span class="string">"Unknown function with arguments of type %1%"</span><span class="special">;</span>
 <span class="keyword">if</span><span class="special">(</span><span class="identifier">message</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
     <span class="identifier">message</span> <span class="special">=</span> <span class="string">"Cause unknown with bad argument %1%"</span><span class="special">;</span></pre>
@@ -293,8 +284,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">msg</span><span class="special">(</span><span class="string">"Error in function "</span><span class="special">);</span>
 <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">function</span><span class="special">)</span> <span class="special">%</span> <span class="keyword">typeid</span><span class="special">(</span><span class="identifier">T</span><span class="special">).</span><span class="identifier">name</span><span class="special">()).</span><span class="identifier">str</span><span class="special">();</span></pre>
 <p>
           </p>
@@ -309,8 +299,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">msg</span> <span class="special">+=</span> <span class="string">": \n"</span><span class="special">;</span>
 <span class="keyword">int</span> <span class="identifier">prec</span> <span class="special">=</span> <span class="number">2</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">digits</span> <span class="special">*</span> <span class="number">30103UL</span><span class="special">)</span> <span class="special">/</span> <span class="number">100000UL</span><span class="special">;</span>
 <span class="identifier">msg</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">message</span><span class="special">)</span> <span class="special">%</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">io</span><span class="special">::</span><span class="identifier">group</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">(</span><span class="identifier">prec</span><span class="special">),</span> <span class="identifier">val</span><span class="special">)).</span><span class="identifier">str</span><span class="special">();</span></pre>
 <p>
@@ -327,8 +316,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span></pre>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cerr</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span></pre>
 <p>
           </p>
 <p>
@@ -342,8 +330,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
- <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
+<pre class="programlisting"> <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">quiet_NaN</span><span class="special">();</span>
 <span class="special">}</span></pre>
 <p>
           </p>
@@ -358,8 +345,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_pole_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">return</span> <span class="identifier">user_domain_error</span><span class="special">(</span><span class="identifier">function</span><span class="special">,</span> <span class="identifier">message</span><span class="special">,</span> <span class="identifier">val</span><span class="special">);</span>
@@ -377,8 +363,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_overflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
@@ -409,8 +394,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_underflow_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
@@ -441,8 +425,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_denorm_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
@@ -476,8 +459,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">user_evaluation_error</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">function</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">message</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">if</span><span class="special">(</span><span class="identifier">function</span> <span class="special">==</span> <span class="number">0</span><span class="special">)</span>
@@ -515,8 +497,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span><span class="special">{</span>
 
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 
@@ -545,8 +526,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">::</span><span class="identifier">promote_args</span><span class="special">&lt;</span><span class="identifier">RT</span><span class="special">&gt;::</span><span class="identifier">type</span>
    <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">RT</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
@@ -566,8 +546,7 @@
 <p>
             
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="comment">// Raise a domain error:
 </span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Result of erf_inv(-10) is: "</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -62,8 +62,7 @@
           instance of the class template <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special">&lt;&gt;</span></code>. This class is just a compile-time-container
           of user-selected policies (sometimes called a type-list):
         </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span>
 <span class="comment">//
 </span><span class="comment">// Define a policy that sets ::errno on overflow, and does
 </span><span class="comment">// not promote double to long double internally:

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,11 +28,10 @@
         of the First and Second Kinds</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.bessel.bessel.synopsis"></a><h5>
-<a name="id670190"></a>
+<a name="id669562"></a>
           <a href="bessel.html#math_toolkit.special.bessel.bessel.synopsis">Synopsis</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_j</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -45,7 +44,7 @@
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_neumann</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
 </pre>
 <a name="math_toolkit.special.bessel.bessel.description"></a><h5>
-<a name="id670700"></a>
+<a name="id670071"></a>
           <a href="bessel.html#math_toolkit.special.bessel.bessel.description">Description</a>
         </h5>
 <p>
@@ -111,7 +110,7 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/bessel_yv.png" alt="bessel_yv"></span>
         </p>
 <a name="math_toolkit.special.bessel.bessel.testing"></a><h5>
-<a name="id671072"></a>
+<a name="id670443"></a>
           <a href="bessel.html#math_toolkit.special.bessel.bessel.testing">Testing</a>
         </h5>
 <p>
@@ -120,7 +119,7 @@
           (with all the special case handling removed).
         </p>
 <a name="math_toolkit.special.bessel.bessel.accuracy"></a><h5>
-<a name="id671110"></a>
+<a name="id670482"></a>
           <a href="bessel.html#math_toolkit.special.bessel.bessel.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -136,7 +135,7 @@
           zero error</a>. All values are relative errors in units of epsilon.
         </p>
 <div class="table">
-<a name="id671167"></a><p class="title"><b>Table 31. Errors Rates in cyl_bessel_j</b></p>
+<a name="id670538"></a><p class="title"><b>Table 31. Errors Rates in cyl_bessel_j</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_j">
 <colgroup>
 <col>
@@ -305,7 +304,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id671471"></a><p class="title"><b>Table 32. Errors Rates in cyl_neumann</b></p>
+<a name="id670843"></a><p class="title"><b>Table 32. Errors Rates in cyl_neumann</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in cyl_neumann">
 <colgroup>
 <col>
@@ -495,7 +494,7 @@
           were found.
         </p>
 <a name="math_toolkit.special.bessel.bessel.implementation"></a><h5>
-<a name="id671900"></a>
+<a name="id671271"></a>
           <a href="bessel.html#math_toolkit.special.bessel.bessel.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
         Overview</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.bessel.bessel_over.ordinary_bessel_functions"></a><h5>
-<a name="id669200"></a>
+<a name="id668573"></a>
           <a href="bessel_over.html#math_toolkit.special.bessel.bessel_over.ordinary_bessel_functions">Ordinary
           Bessel Functions</a>
         </h5>
@@ -103,7 +103,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/bessel10.png"></span>
         </p>
 <a name="math_toolkit.special.bessel.bessel_over.modified_bessel_functions"></a><h5>
-<a name="id669617"></a>
+<a name="id668989"></a>
           <a href="bessel_over.html#math_toolkit.special.bessel.bessel_over.modified_bessel_functions">Modified
           Bessel Functions</a>
         </h5>
@@ -167,7 +167,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/mbessel10.png"></span>
         </p>
 <a name="math_toolkit.special.bessel.bessel_over.spherical_bessel_functions"></a><h5>
-<a name="id670015"></a>
+<a name="id669387"></a>
           <a href="bessel_over.html#math_toolkit.special.bessel.bessel_over.spherical_bessel_functions">Spherical
           Bessel Functions</a>
         </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,11 +28,10 @@
         Functions of the First and Second Kinds</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.bessel.mbessel.synopsis"></a><h5>
-<a name="id672691"></a>
+<a name="id672060"></a>
           <a href="mbessel.html#math_toolkit.special.bessel.mbessel.synopsis">Synopsis</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_i</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -45,7 +44,7 @@
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cyl_bessel_k</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
 </pre>
 <a name="math_toolkit.special.bessel.mbessel.description"></a><h5>
-<a name="id673201"></a>
+<a name="id672569"></a>
           <a href="mbessel.html#math_toolkit.special.bessel.mbessel.description">Description</a>
         </h5>
 <p>
@@ -110,7 +109,7 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/bessel_k.png" alt="bessel_k"></span>
         </p>
 <a name="math_toolkit.special.bessel.mbessel.testing"></a><h5>
-<a name="id673561"></a>
+<a name="id672930"></a>
           <a href="mbessel.html#math_toolkit.special.bessel.mbessel.testing">Testing</a>
         </h5>
 <p>
@@ -119,7 +118,7 @@
           (with all the special case handling removed).
         </p>
 <a name="math_toolkit.special.bessel.mbessel.accuracy"></a><h5>
-<a name="id673600"></a>
+<a name="id672968"></a>
           <a href="mbessel.html#math_toolkit.special.bessel.mbessel.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -130,7 +129,7 @@
           zero error</a>. All values are relative errors in units of epsilon.
         </p>
 <div class="table">
-<a name="id673640"></a><p class="title"><b>Table 33. Errors Rates in cyl_bessel_i</b></p>
+<a name="id673008"></a><p class="title"><b>Table 33. Errors Rates in cyl_bessel_i</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_i">
 <colgroup>
 <col>
@@ -227,7 +226,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id673795"></a><p class="title"><b>Table 34. Errors Rates in cyl_bessel_k</b></p>
+<a name="id673163"></a><p class="title"><b>Table 34. Errors Rates in cyl_bessel_k</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in cyl_bessel_k">
 <colgroup>
 <col>
@@ -327,7 +326,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.bessel.mbessel.implementation"></a><h5>
-<a name="id673963"></a>
+<a name="id673331"></a>
           <a href="mbessel.html#math_toolkit.special.bessel.mbessel.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,11 +28,10 @@
         Bessel Functions of the First and Second Kinds</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.bessel.sph_bessel.synopsis"></a><h5>
-<a name="id674640"></a>
+<a name="id674009"></a>
           <a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.synopsis">Synopsis</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_bessel</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -45,7 +44,7 @@
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sph_neumann</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">v</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <a href="../../policy.html" title="Policies">Policy</a><span class="special">&amp;);</span>
 </pre>
 <a name="math_toolkit.special.bessel.sph_bessel.description"></a><h5>
-<a name="id675150"></a>
+<a name="id674519"></a>
           <a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.description">Description</a>
         </h5>
 <p>
@@ -98,7 +97,7 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/sph_bessel_y.png" alt="sph_bessel_y"></span>
         </p>
 <a name="math_toolkit.special.bessel.sph_bessel.testing"></a><h5>
-<a name="id675401"></a>
+<a name="id674770"></a>
           <a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.testing">Testing</a>
         </h5>
 <p>
@@ -107,7 +106,7 @@
           implementation (with all the special case handling removed).
         </p>
 <a name="math_toolkit.special.bessel.sph_bessel.accuracy"></a><h5>
-<a name="id675440"></a>
+<a name="id674809"></a>
           <a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -117,7 +116,7 @@
           refer to these functions for accuracy data.
         </p>
 <a name="math_toolkit.special.bessel.sph_bessel.implementation"></a><h5>
-<a name="id675489"></a>
+<a name="id674859"></a>
           <a href="sph_bessel.html#math_toolkit.special.bessel.sph_bessel.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         of the First Kind - Legendre Form</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.ellint.ellint_1.synopsis"></a><h6>
-<a name="id681181"></a>
+<a name="id680536"></a>
           <a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.synopsis">Synopsis</a>
         </h6>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
@@ -57,7 +55,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.ellint.ellint_1.description"></a><h6>
-<a name="id681747"></a>
+<a name="id681098"></a>
           <a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.description">Description</a>
         </h6>
 <p>
@@ -73,8 +71,7 @@
           type calculation rules</em></span></a> when T1 and T2 are different types:
           when they are the same type then the result is the same type as the arguments.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -100,8 +97,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -127,7 +123,7 @@
 <p>
         </p>
 <a name="math_toolkit.special.ellint.ellint_1.accuracy"></a><h6>
-<a name="id682394"></a>
+<a name="id681744"></a>
           <a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.accuracy">Accuracy</a>
         </h6>
 <p>
@@ -138,7 +134,7 @@
           All values are relative errors in units of epsilon.
         </p>
 <div class="table">
-<a name="id682428"></a><p class="title"><b>Table 36. Errors Rates in the Elliptic Integrals of the
+<a name="id681777"></a><p class="title"><b>Table 36. Errors Rates in the Elliptic Integrals of the
         First Kind</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the
         First Kind">
@@ -241,7 +237,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.ellint.ellint_1.testing"></a><h6>
-<a name="id682590"></a>
+<a name="id681940"></a>
           <a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.testing">Testing</a>
         </h6>
 <p>
@@ -251,7 +247,7 @@
           this implementation.
         </p>
 <a name="math_toolkit.special.ellint.ellint_1.implementation"></a><h6>
-<a name="id682630"></a>
+<a name="id681979"></a>
           <a href="ellint_1.html#math_toolkit.special.ellint.ellint_1.implementation">Implementation</a>
         </h6>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         of the Second Kind - Legendre Form</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.ellint.ellint_2.synopsis"></a><h6>
-<a name="id682746"></a>
+<a name="id682095"></a>
           <a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.synopsis">Synopsis</a>
         </h6>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_2</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_2</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
@@ -57,7 +55,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.ellint.ellint_2.description"></a><h6>
-<a name="id687577"></a>
+<a name="id686924"></a>
           <a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.description">Description</a>
         </h6>
 <p>
@@ -73,8 +71,7 @@
           type calculation rules</em></span></a> when T1 and T2 are different types:
           when they are the same type then the result is the same type as the arguments.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -100,8 +97,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_2</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">k</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -127,7 +123,7 @@
 <p>
         </p>
 <a name="math_toolkit.special.ellint.ellint_2.accuracy"></a><h6>
-<a name="id688224"></a>
+<a name="id687568"></a>
           <a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.accuracy">Accuracy</a>
         </h6>
 <p>
@@ -138,7 +134,7 @@
           All values are relative errors in units of epsilon.
         </p>
 <div class="table">
-<a name="id688258"></a><p class="title"><b>Table 37. Errors Rates in the Elliptic Integrals of the
+<a name="id687602"></a><p class="title"><b>Table 37. Errors Rates in the Elliptic Integrals of the
         Second Kind</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the
         Second Kind">
@@ -241,17 +237,17 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.ellint.ellint_2.testing"></a><h6>
-<a name="id688421"></a>
+<a name="id687764"></a>
           <a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.testing">Testing</a>
         </h6>
 <p>
           The tests use a mixture of spot test values calculated using the online
- calculator at [http://@functions.wolfram.com functions.wolfram.com], and
- random test data generated using NTL::RR at 1000-bit precision and this
- implementation.
+ calculator at functions.wolfram.com,
+ and random test data generated using NTL::RR at 1000-bit precision and
+ this implementation.
         </p>
 <a name="math_toolkit.special.ellint.ellint_2.implementation"></a><h6>
-<a name="id688454"></a>
+<a name="id687804"></a>
           <a href="ellint_2.html#math_toolkit.special.ellint.ellint_2.implementation">Implementation</a>
         </h6>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         of the Third Kind - Legendre Form</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.ellint.ellint_3.synopsis"></a><h6>
-<a name="id688570"></a>
+<a name="id687920"></a>
           <a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.synopsis">Synopsis</a>
         </h6>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_3</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_3</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">phi</span><span class="special">);</span>
@@ -57,7 +55,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.ellint.ellint_3.description"></a><h6>
-<a name="id689271"></a>
+<a name="id688619"></a>
           <a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.description">Description</a>
         </h6>
 <p>
@@ -74,8 +72,7 @@
           types: when they are the same type then the result is the same type as
           the arguments.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">phi</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -116,8 +113,7 @@
             range of [0, &#960;/2].
           </p></td></tr>
 </table></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_3</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">k</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">n</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -139,7 +135,7 @@
           [opitonal_policy]
         </p>
 <a name="math_toolkit.special.ellint.ellint_3.accuracy"></a><h6>
-<a name="id690103"></a>
+<a name="id689448"></a>
           <a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.accuracy">Accuracy</a>
         </h6>
 <p>
@@ -150,7 +146,7 @@
           All values are relative errors in units of epsilon.
         </p>
 <div class="table">
-<a name="id690136"></a><p class="title"><b>Table 38. Errors Rates in the Elliptic Integrals of the
+<a name="id689482"></a><p class="title"><b>Table 38. Errors Rates in the Elliptic Integrals of the
         Third Kind</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in the Elliptic Integrals of the
         Third Kind">
@@ -253,7 +249,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.ellint.ellint_3.testing"></a><h6>
-<a name="id690299"></a>
+<a name="id689645"></a>
           <a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.testing">Testing</a>
         </h6>
 <p>
@@ -263,7 +259,7 @@
           this implementation.
         </p>
 <a name="math_toolkit.special.ellint.ellint_3.implementation"></a><h6>
-<a name="id690338"></a>
+<a name="id689683"></a>
           <a href="ellint_3.html#math_toolkit.special.ellint.ellint_3.implementation">Implementation</a>
         </h6>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Integrals - Carlson Form</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.ellint.ellint_carlson.synopsis"></a><h6>
-<a name="id677061"></a>
+<a name="id676431"></a>
           <a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.synopsis">Synopsis</a>
         </h6>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
@@ -53,13 +51,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
@@ -72,13 +68,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rj</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rj</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">)</span>
@@ -91,13 +85,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">ellint_rc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span> <span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">)</span>
@@ -108,7 +100,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.ellint.ellint_carlson.description"></a><h6>
-<a name="id678842"></a>
+<a name="id678201"></a>
           <a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.description">Description</a>
         </h6>
 <p>
@@ -124,8 +116,7 @@
           type calculation rules</em></span></a> when the arguments are of different
           types: otherwise the return is the same type as the arguments.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rf</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -151,8 +142,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rd</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">)</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -178,8 +168,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rj</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">T4</span> <span class="identifier">p</span><span class="special">)</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T4</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -213,8 +202,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../equations/ellint17.png"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ellint_rc</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">)</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -248,7 +236,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/ellint18.png"></span>
         </p>
 <a name="math_toolkit.special.ellint.ellint_carlson.testing"></a><h6>
-<a name="id680601"></a>
+<a name="id679955"></a>
           <a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.testing">Testing</a>
         </h6>
 <p>
@@ -277,7 +265,7 @@
           to verify their correctness: see the above Carlson paper for details.
         </p>
 <a name="math_toolkit.special.ellint.ellint_carlson.accuracy"></a><h6>
-<a name="id680671"></a>
+<a name="id680025"></a>
           <a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.accuracy">Accuracy</a>
         </h6>
 <p>
@@ -288,7 +276,7 @@
           All values are relative errors in units of epsilon.
         </p>
 <div class="table">
-<a name="id680706"></a><p class="title"><b>Table 35. Errors Rates in the Carlson Elliptic Integrals</b></p>
+<a name="id680060"></a><p class="title"><b>Table 35. Errors Rates in the Carlson Elliptic Integrals</b></p>
 <div class="table-contents"><table class="table" summary="Errors Rates in the Carlson Elliptic Integrals">
 <colgroup>
 <col>
@@ -431,7 +419,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.ellint.ellint_carlson.implementation"></a><h6>
-<a name="id680936"></a>
+<a name="id680290"></a>
           <a href="ellint_carlson.html#math_toolkit.special.ellint.ellint_carlson.implementation">Implementation</a>
         </h6>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -61,14 +61,14 @@
           Elliptic integral</a>.
         </p>
 <a name="math_toolkit.special.ellint.ellint_intro.notation"></a><h5>
-<a name="id675718"></a>
+<a name="id675087"></a>
           <a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.notation">Notation</a>
         </h5>
 <p>
           All variables are real numbers unless otherwise noted.
         </p>
 <a name="ellint_def"></a><a name="math_toolkit.special.ellint.ellint_intro.definition"></a><h5>
-<a name="id675755"></a>
+<a name="id675124"></a>
           <a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.definition">Definition</a>
         </h5>
 <p>
@@ -257,7 +257,7 @@
 </td></tr>
 </table></div>
 <a name="ellint_theorem"></a><a name="math_toolkit.special.ellint.ellint_intro.duplication_theorem"></a><h5>
-<a name="id676511"></a>
+<a name="id675880"></a>
           <a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.duplication_theorem">Duplication
           Theorem</a>
         </h5>
@@ -269,7 +269,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/ellint13.png"></span>
         </p>
 <a name="ellint_formula"></a><a name="math_toolkit.special.ellint.ellint_intro.carlson_s_formulas"></a><h5>
-<a name="id676586"></a>
+<a name="id675955"></a>
           <a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.carlson_s_formulas">Carlson's
           Formulas</a>
         </h5>
@@ -287,7 +287,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/ellint15.png"></span>
         </p>
 <a name="math_toolkit.special.ellint.ellint_intro.numerical_algorithms"></a><h5>
-<a name="id676680"></a>
+<a name="id676049"></a>
           <a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.numerical_algorithms">Numerical
           Algorithms</a>
         </h5>
@@ -301,7 +301,7 @@
           integrals with satisfactory precisions.
         </p>
 <a name="ellint_refs"></a><a name="math_toolkit.special.ellint.ellint_intro.references"></a><h5>
-<a name="id676742"></a>
+<a name="id676111"></a>
           <a href="ellint_intro.html#math_toolkit.special.ellint.ellint_intro.references">References</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,13 +30,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">binomial_coefficient</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">k</span><span class="special">);</span>
@@ -67,7 +65,7 @@
           if the result is too large to represent in type T.
         </p>
 <a name="math_toolkit.special.factorials.sf_binomial.accuracy"></a><h5>
-<a name="id637995"></a>
+<a name="id637444"></a>
           <a href="sf_binomial.html#math_toolkit.special.factorials.sf_binomial.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -76,14 +74,14 @@
           function for larger arguments.
         </p>
 <a name="math_toolkit.special.factorials.sf_binomial.testing"></a><h5>
-<a name="id638036"></a>
+<a name="id637485"></a>
           <a href="sf_binomial.html#math_toolkit.special.factorials.sf_binomial.testing">Testing</a>
         </h5>
 <p>
           The spot tests for the binomial coefficients use data generated by functions.wolfram.com.
         </p>
 <a name="math_toolkit.special.factorials.sf_binomial.implementation"></a><h5>
-<a name="id638066"></a>
+<a name="id637515"></a>
           <a href="sf_binomial.html#math_toolkit.special.factorials.sf_binomial.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,13 +30,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">double_factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
@@ -66,7 +64,7 @@
           of i! is possible.
         </p>
 <a name="math_toolkit.special.factorials.sf_double_factorial.accuracy"></a><h5>
-<a name="id636311"></a>
+<a name="id635767"></a>
           <a href="sf_double_factorial.html#math_toolkit.special.factorials.sf_double_factorial.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -74,14 +72,14 @@
           so error rates should be no more than a couple of epsilon higher.
         </p>
 <a name="math_toolkit.special.factorials.sf_double_factorial.testing"></a><h5>
-<a name="id636342"></a>
+<a name="id635798"></a>
           <a href="sf_double_factorial.html#math_toolkit.special.factorials.sf_double_factorial.testing">Testing</a>
         </h5>
 <p>
           The spot tests for the double factorial use data generated by functions.wolfram.com.
         </p>
 <a name="math_toolkit.special.factorials.sf_double_factorial.implementation"></a><h5>
-<a name="id636374"></a>
+<a name="id635830"></a>
           <a href="sf_double_factorial.html#math_toolkit.special.factorials.sf_double_factorial.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.factorials.sf_factorial"></a> Factorial
 </h4></div></div></div>
 <a name="math_toolkit.special.factorials.sf_factorial.synopsis"></a><h5>
-<a name="id634848"></a>
+<a name="id634309"></a>
           <a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
@@ -56,11 +54,10 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.factorials.sf_factorial.description"></a><h5>
-<a name="id635273"></a>
+<a name="id634733"></a>
           <a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -88,8 +85,7 @@
           If <code class="literal">i</code> is so large that the result can not be represented
           in type T, then calls overflow_error.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">unchecked_factorial</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
 </pre>
 <p>
@@ -103,8 +99,7 @@
           lookup of factorials, but requires care to ensure that argument <code class="literal">i</code>
           never grows too large.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">max_factorial</span>
 <span class="special">{</span>
    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">unsigned</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">X</span><span class="special">;</span>
@@ -117,7 +112,7 @@
           the size of further tables that depend on the factorials.
         </p>
 <a name="math_toolkit.special.factorials.sf_factorial.accuracy"></a><h5>
-<a name="id635790"></a>
+<a name="id635246"></a>
           <a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -126,7 +121,7 @@
           will be the same as for tgamma.
         </p>
 <a name="math_toolkit.special.factorials.sf_factorial.testing"></a><h5>
-<a name="id635862"></a>
+<a name="id635319"></a>
           <a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.testing">Testing</a>
         </h5>
 <p>
@@ -135,7 +130,7 @@
           function handle those cases already.
         </p>
 <a name="math_toolkit.special.factorials.sf_factorial.implementation"></a><h5>
-<a name="id635900"></a>
+<a name="id635359"></a>
           <a href="sf_factorial.html#math_toolkit.special.factorials.sf_factorial.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,13 +30,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">falling_factorial</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">i</span><span class="special">);</span>
@@ -78,7 +76,7 @@
           the type of the result is T.
         </p>
 <a name="math_toolkit.special.factorials.sf_falling_factorial.accuracy"></a><h5>
-<a name="id637478"></a>
+<a name="id636930"></a>
           <a href="sf_falling_factorial.html#math_toolkit.special.factorials.sf_falling_factorial.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -86,14 +84,14 @@
           function.
         </p>
 <a name="math_toolkit.special.factorials.sf_falling_factorial.testing"></a><h5>
-<a name="id637517"></a>
+<a name="id636968"></a>
           <a href="sf_falling_factorial.html#math_toolkit.special.factorials.sf_falling_factorial.testing">Testing</a>
         </h5>
 <p>
           The spot tests for the falling factorials use data generated by functions.wolfram.com.
         </p>
 <a name="math_toolkit.special.factorials.sf_falling_factorial.implementation"></a><h5>
-<a name="id637549"></a>
+<a name="id637000"></a>
           <a href="sf_falling_factorial.html#math_toolkit.special.factorials.sf_falling_factorial.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,13 +30,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">factorials</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">rising_factorial</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">);</span>
@@ -82,7 +80,7 @@
           the type of the result is T.
         </p>
 <a name="math_toolkit.special.factorials.sf_rising_factorial.accuracy"></a><h5>
-<a name="id636899"></a>
+<a name="id636353"></a>
           <a href="sf_rising_factorial.html#math_toolkit.special.factorials.sf_rising_factorial.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -90,14 +88,14 @@
           function.
         </p>
 <a name="math_toolkit.special.factorials.sf_rising_factorial.testing"></a><h5>
-<a name="id636937"></a>
+<a name="id636390"></a>
           <a href="sf_rising_factorial.html#math_toolkit.special.factorials.sf_rising_factorial.testing">Testing</a>
         </h5>
 <p>
           The spot tests for the rising factorials use data generated by functions.wolfram.com.
         </p>
 <a name="math_toolkit.special.factorials.sf_rising_factorial.implementation"></a><h5>
-<a name="id636968"></a>
+<a name="id636422"></a>
           <a href="sf_rising_factorial.html#math_toolkit.special.factorials.sf_rising_factorial.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/fpclass.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,11 +28,10 @@
       Infinities and NaN's</a>
 </h3></div></div></div>
 <a name="math_toolkit.special.fpclass.synopsis"></a><h5>
-<a name="id697468"></a>
+<a name="id696787"></a>
         <a href="fpclass.html#math_toolkit.special.fpclass.synopsis">Synopsis</a>
       </h5>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">FP_ZERO</span> <span class="comment">/* implementation specific value */</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">FP_ZERO</span> <span class="comment">/* implementation specific value */</span>
 <span class="preprocessor">#define</span> <span class="identifier">FP_NORMAL</span> <span class="comment">/* implementation specific value */</span>
 <span class="preprocessor">#define</span> <span class="identifier">FP_INFINITE</span> <span class="comment">/* implementation specific value */</span>
 <span class="preprocessor">#define</span> <span class="identifier">FP_NAN</span> <span class="comment">/* implementation specific value */</span>
@@ -54,7 +53,7 @@
 <span class="keyword">bool</span> <span class="identifier">isnormal</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
 </pre>
 <a name="math_toolkit.special.fpclass.description"></a><h5>
-<a name="id697908"></a>
+<a name="id697227"></a>
         <a href="fpclass.html#math_toolkit.special.fpclass.description">Description</a>
       </h5>
 <p>
@@ -69,8 +68,7 @@
         that already provide these as macros. That mean that the following have differing
         meanings:
       </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">;</span>
 
 <span class="comment">// This might call a global macro if defined,
 </span><span class="comment">// but might not work if the type of z is unsupported
@@ -92,8 +90,7 @@
 <p>
         Detailed descriptions for each of these functions follows:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">int</span> <span class="identifier">fpclassify</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
 </pre>
 <p>
@@ -180,29 +177,25 @@
 </tr>
 </tbody>
 </table></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">isfinite</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
         Returns true only if <span class="emphasis"><em>z</em></span> is not an infinity or a NaN.
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">isinf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
 </pre>
 <p>
         Returns true only if <span class="emphasis"><em>z</em></span> is plus or minus infinity.
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">isnan</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
 </pre>
 <p>
         Returns true only if <span class="emphasis"><em>z</em></span> is a NaN.
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">isnormal</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">t</span><span class="special">);</span>
 </pre>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">acosh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">acosh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">asinh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">asinh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">asinh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">atanh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">atanh</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">atanh</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">cbrt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">cbrt</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -67,7 +65,7 @@
           Implemented using Halley iteration.
         </p>
 <a name="math_toolkit.special.powers.cbrt.accuracy"></a><h5>
-<a name="id692474"></a>
+<a name="id691813"></a>
           <a href="cbrt.html#math_toolkit.special.powers.cbrt.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -75,7 +73,7 @@
           should have approximately 2 epsilon accuracy.
         </p>
 <a name="math_toolkit.special.powers.cbrt.testing"></a><h5>
-<a name="id692515"></a>
+<a name="id691854"></a>
           <a href="cbrt.html#math_toolkit.special.powers.cbrt.testing">Testing</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">expm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">expm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -76,7 +74,7 @@
           (POSIX) implementation of this function.
         </p>
 <a name="math_toolkit.special.powers.expm1.accuracy"></a><h5>
-<a name="id692010"></a>
+<a name="id691352"></a>
           <a href="expm1.html#math_toolkit.special.powers.expm1.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -84,7 +82,7 @@
           should have approximately 1 epsilon accuracy.
         </p>
 <a name="math_toolkit.special.powers.expm1.testing"></a><h5>
-<a name="id692051"></a>
+<a name="id691393"></a>
           <a href="expm1.html#math_toolkit.special.powers.expm1.testing">Testing</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.hypot"></a> hypot
 </h4></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hypot</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -59,7 +58,7 @@
           representable.
         </p>
 <a name="math_toolkit.special.powers.hypot.implementation"></a><h5>
-<a name="id693984"></a>
+<a name="id693317"></a>
           <a href="hypot.html#math_toolkit.special.powers.hypot.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">log1p</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">log1p</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">log1p</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -74,8 +72,7 @@
           (less than 2&#603;). Alternatively note that there are faster methods available,
           for example using the equivalence:
         </p>
-<pre class="programlisting">
-<span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="special">((</span><span class="number">1</span><span class="special">-</span><span class="identifier">x</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span>
+<pre class="programlisting"><span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="number">1</span><span class="special">+</span><span class="identifier">x</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="special">((</span><span class="number">1</span><span class="special">-</span><span class="identifier">x</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">)</span>
 </pre>
 <p>
           However, experience has shown that these methods tend to fail quite spectacularly
@@ -90,7 +87,7 @@
           (POSIX) implementation of this function.
         </p>
 <a name="math_toolkit.special.powers.log1p.accuracy"></a><h5>
-<a name="id691451"></a>
+<a name="id690796"></a>
           <a href="log1p.html#math_toolkit.special.powers.log1p.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -98,7 +95,7 @@
           should have approximately 1 epsilon accuracy.
         </p>
 <a name="math_toolkit.special.powers.log1p.testing"></a><h5>
-<a name="id691492"></a>
+<a name="id690836"></a>
           <a href="log1p.html#math_toolkit.special.powers.log1p.testing">Testing</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">powm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">powm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">powm1</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">y</span><span class="special">);</span>
@@ -70,14 +68,14 @@
           Implemented in terms of <code class="computeroutput"><span class="identifier">expm1</span></code>.
         </p>
 <a name="math_toolkit.special.powers.powm1.accuracy"></a><h5>
-<a name="id693543"></a>
+<a name="id692877"></a>
           <a href="powm1.html#math_toolkit.special.powers.powm1.accuracy">Accuracy</a>
         </h5>
 <p>
           Should have approximately 2-3 epsilon accuracy.
         </p>
 <a name="math_toolkit.special.powers.powm1.testing"></a><h5>
-<a name="id693572"></a>
+<a name="id692906"></a>
           <a href="powm1.html#math_toolkit.special.powers.powm1.testing">Testing</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sqrt1pm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sqrt1pm1</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sqrt1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -72,7 +70,7 @@
           and <code class="computeroutput"><span class="identifier">expm1</span></code>.
         </p>
 <a name="math_toolkit.special.powers.sqrt1pm1.accuracy"></a><h5>
-<a name="id693011"></a>
+<a name="id692348"></a>
           <a href="sqrt1pm1.html#math_toolkit.special.powers.sqrt1pm1.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -80,7 +78,7 @@
           should have approximately 3 epsilon accuracy.
         </p>
 <a name="math_toolkit.special.powers.sqrt1pm1.testing"></a><h5>
-<a name="id693053"></a>
+<a name="id692390"></a>
           <a href="sqrt1pm1.html#math_toolkit.special.powers.sqrt1pm1.testing">Testing</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         of the Incomplete Beta Function</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_beta.beta_derivative.synopsis"></a><h5>
-<a name="id651698"></a>
+<a name="id651128"></a>
           <a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_derivative</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
@@ -51,7 +49,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_beta.beta_derivative.description"></a><h5>
-<a name="id652160"></a>
+<a name="id651587"></a>
           <a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.description">Description</a>
         </h5>
 <p>
@@ -78,14 +76,14 @@
 <p>
         </p>
 <a name="math_toolkit.special.sf_beta.beta_derivative.accuracy"></a><h5>
-<a name="id652276"></a>
+<a name="id651704"></a>
           <a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.accuracy">Accuracy</a>
         </h5>
 <p>
           Almost identical to the incomplete beta function ibeta.
         </p>
 <a name="math_toolkit.special.sf_beta.beta_derivative.implementation"></a><h5>
-<a name="id652314"></a>
+<a name="id651742"></a>
           <a href="beta_derivative.html#math_toolkit.special.sf_beta.beta_derivative.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.sf_beta.beta_function"></a> Beta
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_beta.beta_function.synopsis"></a><h5>
-<a name="id638198"></a>
+<a name="id637647"></a>
           <a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">);</span>
@@ -50,7 +48,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_beta.beta_function.description"></a><h5>
-<a name="id638590"></a>
+<a name="id638037"></a>
           <a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.description">Description</a>
         </h5>
 <p>
@@ -88,7 +86,7 @@
           type calculation rules</em></span></a> when T1 and T2 are different types.
         </p>
 <a name="math_toolkit.special.sf_beta.beta_function.accuracy"></a><h5>
-<a name="id638752"></a>
+<a name="id638199"></a>
           <a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -100,7 +98,7 @@
           zero error</a>.
         </p>
 <div class="table">
-<a name="id638800"></a><p class="title"><b>Table 17. Peak Errors In the Beta Function</b></p>
+<a name="id638246"></a><p class="title"><b>Table 17. Peak Errors In the Beta Function</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Beta Function">
 <colgroup>
 <col>
@@ -246,7 +244,7 @@
           very small.
         </p>
 <a name="math_toolkit.special.sf_beta.beta_function.testing"></a><h5>
-<a name="id639045"></a>
+<a name="id638491"></a>
           <a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.testing">Testing</a>
         </h5>
 <p>
@@ -255,7 +253,7 @@
           at 1000-bit precision.
         </p>
 <a name="math_toolkit.special.sf_beta.beta_function.implementation"></a><h5>
-<a name="id639083"></a>
+<a name="id638529"></a>
           <a href="beta_function.html#math_toolkit.special.sf_beta.beta_function.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Beta Functions</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_beta.ibeta_function.synopsis"></a><h5>
-<a name="id639406"></a>
+<a name="id638852"></a>
           <a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
@@ -69,7 +67,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_beta.ibeta_function.description"></a><h5>
-<a name="id640790"></a>
+<a name="id640235"></a>
           <a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.description">Description</a>
         </h5>
 <p>
@@ -100,8 +98,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -116,8 +113,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/ibeta.png" alt="ibeta"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -130,8 +126,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../equations/ibeta4.png"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">beta</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -144,8 +139,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../equations/ibeta1.png"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">betac</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -159,7 +153,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/ibeta2.png"></span>
         </p>
 <a name="math_toolkit.special.sf_beta.ibeta_function.accuracy"></a><h5>
-<a name="id642335"></a>
+<a name="id641774"></a>
           <a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -178,7 +172,7 @@
           with the wider exponent range of the long double types.
         </p>
 <div class="table">
-<a name="id642393"></a><p class="title"><b>Table 18. Errors In the Function ibeta(a,b,x)</b></p>
+<a name="id641832"></a><p class="title"><b>Table 18. Errors In the Function ibeta(a,b,x)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function ibeta(a,b,x)">
 <colgroup>
 <col>
@@ -365,7 +359,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id642742"></a><p class="title"><b>Table 19. Errors In the Function ibetac(a,b,x)</b></p>
+<a name="id642180"></a><p class="title"><b>Table 19. Errors In the Function ibetac(a,b,x)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function ibetac(a,b,x)">
 <colgroup>
 <col>
@@ -532,7 +526,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id643026"></a><p class="title"><b>Table 20. Errors In the Function beta(a, b, x)</b></p>
+<a name="id642465"></a><p class="title"><b>Table 20. Errors In the Function beta(a, b, x)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function beta(a, b, x)">
 <colgroup>
 <col>
@@ -699,7 +693,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id643307"></a><p class="title"><b>Table 21. Errors In the Function betac(a,b,x)</b></p>
+<a name="id642746"></a><p class="title"><b>Table 21. Errors In the Function betac(a,b,x)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function betac(a,b,x)">
 <colgroup>
 <col>
@@ -866,7 +860,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.sf_beta.ibeta_function.testing"></a><h5>
-<a name="id643601"></a>
+<a name="id643040"></a>
           <a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.testing">Testing</a>
         </h5>
 <p>
@@ -884,7 +878,7 @@
           have test data that is fully independent of the code.
         </p>
 <a name="math_toolkit.special.sf_beta.ibeta_function.implementation"></a><h5>
-<a name="id643664"></a>
+<a name="id643103"></a>
           <a href="ibeta_function.html#math_toolkit.special.sf_beta.ibeta_function.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,13 +30,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
@@ -89,7 +87,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_beta.ibeta_inv_function.description"></a><h5>
-<a name="id646813"></a>
+<a name="id646250"></a>
           <a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.description">Description</a>
         </h5>
 <p>
@@ -134,8 +132,7 @@
           type calculation rules</em></span></a> when called with arguments T1...TN
           of different types.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -178,8 +175,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">q</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -222,8 +218,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -249,8 +244,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -276,8 +270,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -303,8 +296,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">ibetac_invb</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">b</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -331,7 +323,7 @@
 <p>
         </p>
 <a name="math_toolkit.special.sf_beta.ibeta_inv_function.accuracy"></a><h5>
-<a name="id650539"></a>
+<a name="id649969"></a>
           <a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -343,7 +335,7 @@
           or <code class="computeroutput"><span class="number">1</span></code>.
         </p>
 <a name="math_toolkit.special.sf_beta.ibeta_inv_function.testing"></a><h5>
-<a name="id650605"></a>
+<a name="id650035"></a>
           <a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.testing">Testing</a>
         </h5>
 <p>
@@ -367,7 +359,7 @@
           </li>
 </ul></div>
 <a name="math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_ibetac_inv"></a><h5>
-<a name="id650682"></a>
+<a name="id650112"></a>
           <a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_ibeta_inv_and_ibetac_inv">Implementation
           of ibeta_inv and ibetac_inv</a>
         </h5>
@@ -535,7 +527,7 @@
           rapidly converges on the true value.
         </p>
 <a name="math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_inverses_on_the_a_and_b_parameters"></a><h5>
-<a name="id651596"></a>
+<a name="id651026"></a>
           <a href="ibeta_inv_function.html#math_toolkit.special.sf_beta.ibeta_inv_function.implementation_of_inverses_on_the_a_and_b_parameters">Implementation
           of inverses on the a and b parameters</a>
         </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Functions</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_erf.error_function.synopsis"></a><h5>
-<a name="id652391"></a>
+<a name="id651818"></a>
           <a href="error_function.html#math_toolkit.special.sf_erf.error_function.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">erf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">erf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
@@ -71,11 +69,10 @@
 <p>
         </p>
 <a name="math_toolkit.special.sf_erf.error_function.description"></a><h5>
-<a name="id652940"></a>
+<a name="id652366"></a>
           <a href="error_function.html#math_toolkit.special.sf_erf.error_function.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -92,8 +89,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/erf1.png" alt="erf1"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -110,7 +106,7 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/erf2.png" alt="erf2"></span>
         </p>
 <a name="math_toolkit.special.sf_erf.error_function.accuracy"></a><h5>
-<a name="id653450"></a>
+<a name="id652873"></a>
           <a href="error_function.html#math_toolkit.special.sf_erf.error_function.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -123,7 +119,7 @@
           the one shown will have effectively zero error.
         </p>
 <div class="table">
-<a name="id653511"></a><p class="title"><b>Table 22. Errors In the Function erf(z)</b></p>
+<a name="id652935"></a><p class="title"><b>Table 22. Errors In the Function erf(z)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function erf(z)">
 <colgroup>
 <col>
@@ -329,7 +325,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id653884"></a><p class="title"><b>Table 23. Errors In the Function erfc(z)</b></p>
+<a name="id653308"></a><p class="title"><b>Table 23. Errors In the Function erfc(z)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function erfc(z)">
 <colgroup>
 <col>
@@ -535,7 +531,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.sf_erf.error_function.testing"></a><h5>
-<a name="id654267"></a>
+<a name="id653690"></a>
           <a href="error_function.html#math_toolkit.special.sf_erf.error_function.testing">Testing</a>
         </h5>
 <p>
@@ -550,15 +546,14 @@
           check.
         </p>
 <a name="math_toolkit.special.sf_erf.error_function.implementation"></a><h5>
-<a name="id654320"></a>
+<a name="id653743"></a>
           <a href="error_function.html#math_toolkit.special.sf_erf.error_function.implementation">Implementation</a>
         </h5>
 <p>
           All versions of these functions first use the usual reflection formulas
           to make their arguments positive:
         </p>
-<pre class="programlisting">
-<span class="identifier">erf</span><span class="special">(-</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">erf</span><span class="special">(-</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="number">1</span> <span class="special">-</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
 
 <span class="identifier">erfc</span><span class="special">(-</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="number">2</span> <span class="special">-</span> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span> <span class="comment">// preferred when -z &lt; -0.5
 </span>
@@ -579,14 +574,12 @@
           <span class="number">0.5</span></code> then a rational approximation
           to erf is used, based on the observation that:
         </p>
-<pre class="programlisting">
-<span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">)/</span><span class="identifier">z</span> <span class="special">~</span> <span class="number">1.12</span><span class="special">....</span>
+<pre class="programlisting"><span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">)/</span><span class="identifier">z</span> <span class="special">~</span> <span class="number">1.12</span><span class="special">....</span>
 </pre>
 <p>
           Therefore erf is calculated using:
         </p>
-<pre class="programlisting">
-<span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">z</span> <span class="special">*</span> <span class="special">(</span><span class="number">1.125F</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">erf</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">z</span> <span class="special">*</span> <span class="special">(</span><span class="number">1.125F</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">));</span>
 </pre>
 <p>
           where the rational approximation R(z) is optimised for absolute error:
@@ -601,8 +594,7 @@
           <span class="number">0.5</span></code> we observe that over a small
           interval [a, b) then:
         </p>
-<pre class="programlisting">
-<span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">z</span> <span class="special">~</span> <span class="identifier">c</span>
+<pre class="programlisting"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">exp</span><span class="special">(</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">z</span> <span class="special">~</span> <span class="identifier">c</span>
 </pre>
 <p>
           for some constant c.
@@ -611,8 +603,7 @@
           Therefore for <code class="computeroutput"><span class="identifier">z</span> <span class="special">&gt;</span>
           <span class="number">0.5</span></code> we calculate erfc using:
         </p>
-<pre class="programlisting">
-<span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">exp</span><span class="special">(-</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">c</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">z</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">exp</span><span class="special">(-</span><span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">)</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">c</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">))</span> <span class="special">/</span> <span class="identifier">z</span><span class="special">;</span>
 </pre>
 <p>
           Again R(z) is optimised for absolute error, and the constant <code class="computeroutput"><span class="identifier">c</span></code> is the average of <code class="computeroutput"><span class="identifier">erfc</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Inverses</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_erf.error_inv.synopsis"></a><h5>
-<a name="id655190"></a>
+<a name="id654607"></a>
           <a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">erf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">erf</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">p</span><span class="special">);</span>
@@ -71,11 +69,10 @@
 <p>
         </p>
 <a name="math_toolkit.special.sf_erf.error_inv.description"></a><h5>
-<a name="id655739"></a>
+<a name="id655154"></a>
           <a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erf_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -85,14 +82,12 @@
           Returns the <a href="http://functions.wolfram.com/GammaBetaErf/InverseErf/" target="_top">inverse
           error function</a> of z, that is a value x such that:
         </p>
-<pre class="programlisting">
-<span class="identifier">p</span> <span class="special">=</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">erf</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/erf_inv.png" alt="erf_inv"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">erfc_inv</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -102,14 +97,13 @@
           Returns the inverse of the complement of the error function of z, that
           is a value x such that:
         </p>
-<pre class="programlisting">
-<span class="identifier">p</span> <span class="special">=</span> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">p</span> <span class="special">=</span> <span class="identifier">erfc</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/erfc_inv.png" alt="erfc_inv"></span>
         </p>
 <a name="math_toolkit.special.sf_erf.error_inv.accuracy"></a><h5>
-<a name="id656260"></a>
+<a name="id655670"></a>
           <a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -119,7 +113,7 @@
           error functions</a>.
         </p>
 <a name="math_toolkit.special.sf_erf.error_inv.testing"></a><h5>
-<a name="id656300"></a>
+<a name="id655711"></a>
           <a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.testing">Testing</a>
         </h5>
 <p>
@@ -141,7 +135,7 @@
           </li>
 </ul></div>
 <a name="math_toolkit.special.sf_erf.error_inv.implementation"></a><h5>
-<a name="id656368"></a>
+<a name="id655778"></a>
           <a href="error_inv.html#math_toolkit.special.sf_erf.error_inv.implementation">Implementation</a>
         </h5>
 <p>
@@ -166,8 +160,7 @@
           For <span class="emphasis"><em>p &lt; 0.5</em></span> the inverse erf function is reasonably
           smooth and the approximation:
         </p>
-<pre class="programlisting">
-<span class="identifier">x</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">(</span><span class="identifier">p</span> <span class="special">+</span> <span class="number">10</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">p</span><span class="special">))</span>
+<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">(</span><span class="identifier">p</span> <span class="special">+</span> <span class="number">10</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">p</span><span class="special">))</span>
 </pre>
 <p>
           Gives a good result for a constant Y, and R(p) optimised for low absolute
@@ -177,20 +170,17 @@
           For q &lt; 0.5 things get trickier, over the interval <span class="emphasis"><em>0.5 &gt;
           q &gt; 0.25</em></span> the following approximation works well:
         </p>
-<pre class="programlisting">
-<span class="identifier">x</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(-</span><span class="number">2l</span><span class="identifier">og</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span>
+<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(-</span><span class="number">2l</span><span class="identifier">og</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span> <span class="special">/</span> <span class="special">(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span>
 </pre>
 <p>
           While for q &lt; 0.25, let
         </p>
-<pre class="programlisting">
-<span class="identifier">z</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(-</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span>
+<pre class="programlisting"><span class="identifier">z</span> <span class="special">=</span> <span class="identifier">sqrt</span><span class="special">(-</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">q</span><span class="special">))</span>
 </pre>
 <p>
           Then the result is given by:
         </p>
-<pre class="programlisting">
-<span class="identifier">x</span> <span class="special">=</span> <span class="identifier">z</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span> <span class="special">-</span> <span class="identifier">B</span><span class="special">))</span>
+<pre class="programlisting"><span class="identifier">x</span> <span class="special">=</span> <span class="identifier">z</span><span class="special">(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span> <span class="special">-</span> <span class="identifier">B</span><span class="special">))</span>
 </pre>
 <p>
           As before Y is a constant and the rational function R is optimised for

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.sf_gamma.digamma"></a> Digamma
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_gamma.digamma.synopsis"></a><h5>
-<a name="id623307"></a>
+<a name="id622800"></a>
           <a href="digamma.html#math_toolkit.special.sf_gamma.digamma.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">digamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">digamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
@@ -50,7 +48,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.digamma.description"></a><h5>
-<a name="id623630"></a>
+<a name="id623121"></a>
           <a href="digamma.html#math_toolkit.special.sf_gamma.digamma.description">Description</a>
         </h5>
 <p>
@@ -84,7 +82,7 @@
           T otherwise.
         </p>
 <a name="math_toolkit.special.sf_gamma.digamma.accuracy"></a><h5>
-<a name="id623776"></a>
+<a name="id623267"></a>
           <a href="digamma.html#math_toolkit.special.sf_gamma.digamma.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -272,7 +270,7 @@
           absolute error will remain very low.
         </p>
 <a name="math_toolkit.special.sf_gamma.digamma.testing"></a><h5>
-<a name="id624080"></a>
+<a name="id623570"></a>
           <a href="digamma.html#math_toolkit.special.sf_gamma.digamma.testing">Testing</a>
         </h5>
 <p>
@@ -282,7 +280,7 @@
           see below).
         </p>
 <a name="math_toolkit.special.sf_gamma.digamma.implementation"></a><h5>
-<a name="id624122"></a>
+<a name="id623613"></a>
           <a href="digamma.html#math_toolkit.special.sf_gamma.digamma.implementation">Implementation</a>
         </h5>
 <p>
@@ -291,8 +289,7 @@
 <p>
           For Negative arguments the reflection formula:
         </p>
-<pre class="programlisting">
-<span class="identifier">digamma</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pi</span><span class="special">/</span><span class="identifier">tan</span><span class="special">(</span><span class="identifier">pi</span><span class="special">*</span><span class="identifier">x</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="number">1</span><span class="special">-</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pi</span><span class="special">/</span><span class="identifier">tan</span><span class="special">(</span><span class="identifier">pi</span><span class="special">*</span><span class="identifier">x</span><span class="special">);</span>
 </pre>
 <p>
           is used to make <span class="emphasis"><em>x</em></span> positive.
@@ -300,8 +297,7 @@
 <p>
           For arguments in the range [0,1] the recurrence relation:
         </p>
-<pre class="programlisting">
-<span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span>
 </pre>
 <p>
           is used to shift the evaluation to [1,2].
@@ -313,8 +309,7 @@
 <p>
           For arguments in the range [2,BIG] the recurrence relation:
         </p>
-<pre class="programlisting">
-<span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">/</span><span class="identifier">x</span><span class="special">;</span>
 </pre>
 <p>
           is used to shift the evaluation to the range [1,2].
@@ -370,8 +365,7 @@
           The rational approximation <a href="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised
           by JM</a> was optimised for absolute error using the form:
         </p>
-<pre class="programlisting">
-<span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">X0</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="number">1</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">digamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="identifier">X0</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span> <span class="special">-</span> <span class="number">1</span><span class="special">));</span>
 </pre>
 <p>
           Where X0 is the positive root of digamma, Y is a constant, and R(x - 1)

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         of the Incomplete Gamma Function</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_gamma.gamma_derivatives.synopsis"></a><h5>
-<a name="id634206"></a>
+<a name="id633672"></a>
           <a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_derivative</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">x</span><span class="special">);</span>
@@ -51,7 +49,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.gamma_derivatives.description"></a><h5>
-<a name="id634599"></a>
+<a name="id634063"></a>
           <a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.description">Description</a>
         </h5>
 <p>
@@ -82,7 +80,7 @@
           otherwise the return type is simply T1.
         </p>
 <a name="math_toolkit.special.sf_gamma.gamma_derivatives.accuracy"></a><h5>
-<a name="id634724"></a>
+<a name="id634187"></a>
           <a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -90,7 +88,7 @@
           refer to the documentation for that function for more information.
         </p>
 <a name="math_toolkit.special.sf_gamma.gamma_derivatives.implementation"></a><h5>
-<a name="id634765"></a>
+<a name="id634228"></a>
           <a href="gamma_derivatives.html#math_toolkit.special.sf_gamma.gamma_derivatives.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,13 +30,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">);</span>
@@ -53,11 +51,10 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.gamma_ratios.description"></a><h5>
-<a name="id625511"></a>
+<a name="id624984"></a>
           <a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">b</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -83,8 +80,7 @@
           Internally this just calls <code class="computeroutput"><span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">a</span><span class="special">,</span>
           <span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span></code>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_delta_ratio</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">delta</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -118,7 +114,7 @@
           otherwise the result type is simple T1.
         </p>
 <a name="math_toolkit.special.sf_gamma.gamma_ratios.accuracy"></a><h5>
-<a name="id626249"></a>
+<a name="id625720"></a>
           <a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -128,7 +124,7 @@
           <a href="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
         </p>
 <div class="table">
-<a name="id626282"></a><p class="title"><b>Table 11. Errors In the Function tgamma_delta_ratio(a, delta)</b></p>
+<a name="id625753"></a><p class="title"><b>Table 11. Errors In the Function tgamma_delta_ratio(a, delta)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function tgamma_delta_ratio(a, delta)">
 <colgroup>
 <col>
@@ -231,7 +227,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id626442"></a><p class="title"><b>Table 12. Errors In the Function tgamma_ratio(a,
+<a name="id625914"></a><p class="title"><b>Table 12. Errors In the Function tgamma_ratio(a,
         b)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function tgamma_ratio(a,
         b)">
@@ -330,7 +326,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.sf_gamma.gamma_ratios.testing"></a><h5>
-<a name="id626604"></a>
+<a name="id626076"></a>
           <a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.testing">Testing</a>
         </h5>
 <p>
@@ -339,7 +335,7 @@
           a deliberately naive calculation of &#915;(x)/&#915;(y).
         </p>
 <a name="math_toolkit.special.sf_gamma.gamma_ratios.implementation"></a><h5>
-<a name="id626644"></a>
+<a name="id626116"></a>
           <a href="gamma_ratios.html#math_toolkit.special.sf_gamma.gamma_ratios.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Functions</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_gamma.igamma.synopsis"></a><h5>
-<a name="id626718"></a>
+<a name="id626189"></a>
           <a href="igamma.html#math_toolkit.special.sf_gamma.igamma.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
@@ -69,7 +67,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.igamma.description"></a><h5>
-<a name="id627827"></a>
+<a name="id627295"></a>
           <a href="igamma.html#math_toolkit.special.sf_gamma.igamma.description">Description</a>
         </h5>
 <p>
@@ -99,8 +97,7 @@
           type calculation rules</em></span></a> when T1 and T2 are different types,
           otherwise the return type is simply T1.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Policy</span><span class="special">&gt;</span>
@@ -118,8 +115,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/gamma_p.png" alt="gamma_p"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -137,8 +133,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/gamma_q.png" alt="gamma_q"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma_lower</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -151,8 +146,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../equations/igamma2.png"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -166,7 +160,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/igamma1.png"></span>
         </p>
 <a name="math_toolkit.special.sf_gamma.igamma.accuracy"></a><h5>
-<a name="id629126"></a>
+<a name="id628590"></a>
           <a href="igamma.html#math_toolkit.special.sf_gamma.igamma.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -191,7 +185,7 @@
           All values are in units of epsilon.
         </p>
 <div class="table">
-<a name="id629195"></a><p class="title"><b>Table 13. Errors In the Function gamma_p(a,z)</b></p>
+<a name="id628660"></a><p class="title"><b>Table 13. Errors In the Function gamma_p(a,z)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function gamma_p(a,z)">
 <colgroup>
 <col>
@@ -378,7 +372,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id629514"></a><p class="title"><b>Table 14. Errors In the Function gamma_q(a,z)</b></p>
+<a name="id628979"></a><p class="title"><b>Table 14. Errors In the Function gamma_q(a,z)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function gamma_q(a,z)">
 <colgroup>
 <col>
@@ -564,7 +558,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id629852"></a><p class="title"><b>Table 15. Errors In the Function tgamma_lower(a,z)</b></p>
+<a name="id629316"></a><p class="title"><b>Table 15. Errors In the Function tgamma_lower(a,z)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function tgamma_lower(a,z)">
 <colgroup>
 <col>
@@ -699,7 +693,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id630065"></a><p class="title"><b>Table 16. Errors In the Function tgamma(a,z)</b></p>
+<a name="id629529"></a><p class="title"><b>Table 16. Errors In the Function tgamma(a,z)</b></p>
 <div class="table-contents"><table class="table" summary="Errors In the Function tgamma(a,z)">
 <colgroup>
 <col>
@@ -834,7 +828,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="math_toolkit.special.sf_gamma.igamma.testing"></a><h5>
-<a name="id630286"></a>
+<a name="id629750"></a>
           <a href="igamma.html#math_toolkit.special.sf_gamma.igamma.testing">Testing</a>
         </h5>
 <p>
@@ -850,7 +844,7 @@
           fraction (see below) is unstable for small a and z.
         </p>
 <a name="math_toolkit.special.sf_gamma.igamma.implementation"></a><h5>
-<a name="id630344"></a>
+<a name="id629808"></a>
           <a href="igamma.html#math_toolkit.special.sf_gamma.igamma.implementation">Implementation</a>
         </h5>
 <p>
@@ -966,14 +960,12 @@
           computed in advance using the recurrence relations given by Temme. The
           zone where these expansions are used is
         </p>
-<pre class="programlisting">
-<span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span> <span class="number">20</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">200</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">-</span><span class="identifier">a</span><span class="special">)/</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">0.4</span>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span> <span class="number">20</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">200</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">-</span><span class="identifier">a</span><span class="special">)/</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">0.4</span>
 </pre>
 <p>
           And:
         </p>
-<pre class="programlisting">
-<span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span> <span class="number">200</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">-</span><span class="identifier">a</span><span class="special">)/</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">4.5</span><span class="special">/</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span> <span class="number">200</span><span class="special">)</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">x</span><span class="special">-</span><span class="identifier">a</span><span class="special">)/</span><span class="identifier">a</span> <span class="special">&lt;</span> <span class="number">4.5</span><span class="special">/</span><span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span>
 </pre>
 <p>
           The latter range is valid for all types up to 128-bit long doubles, and
@@ -1021,7 +1013,7 @@
           by Temme (see references below).
         </p>
 <a name="math_toolkit.special.sf_gamma.igamma.references"></a><h5>
-<a name="id631372"></a>
+<a name="id630838"></a>
           <a href="igamma.html#math_toolkit.special.sf_gamma.igamma.references">References</a>
         </h5>
 <div class="itemizedlist"><ul type="disc">

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Gamma Function Inverses</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_gamma.igamma_inv.synopsis"></a><h5>
-<a name="id631455"></a>
+<a name="id630921"></a>
           <a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
@@ -69,7 +67,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.igamma_inv.description"></a><h5>
-<a name="id632565"></a>
+<a name="id632028"></a>
           <a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.description">Description</a>
         </h5>
 <p>
@@ -114,8 +112,7 @@
           </p>
 </td></tr>
 </table></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -130,8 +127,7 @@
           Requires: <span class="emphasis"><em>a &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
           0</em></span>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inv</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -146,8 +142,7 @@
           Requires: <span class="emphasis"><em>a &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
           0</em></span>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_q_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">q</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -162,8 +157,7 @@
           Requires: <span class="emphasis"><em>x &gt; 0</em></span> and <span class="emphasis"><em>1 &gt;= p,q &gt;=
           0</em></span>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">gamma_p_inva</span><span class="special">(</span><span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">p</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -179,7 +173,7 @@
           0</em></span>.
         </p>
 <a name="math_toolkit.special.sf_gamma.igamma_inv.accuracy"></a><h5>
-<a name="id633961"></a>
+<a name="id633420"></a>
           <a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -193,7 +187,7 @@
           functions.
         </p>
 <a name="math_toolkit.special.sf_gamma.igamma_inv.testing"></a><h5>
-<a name="id634015"></a>
+<a name="id633474"></a>
           <a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.testing">Testing</a>
         </h5>
 <p>
@@ -216,7 +210,7 @@
           </li>
 </ul></div>
 <a name="math_toolkit.special.sf_gamma.igamma_inv.implementation"></a><h5>
-<a name="id634090"></a>
+<a name="id633549"></a>
           <a href="igamma_inv.html#math_toolkit.special.sf_gamma.igamma_inv.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.sf_gamma.lgamma"></a> Log Gamma
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_gamma.lgamma.synopsis"></a><h5>
-<a name="id620952"></a>
+<a name="id620453"></a>
           <a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
@@ -56,7 +54,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.lgamma.description"></a><h5>
-<a name="id621488"></a>
+<a name="id620987"></a>
           <a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.description">Description</a>
         </h5>
 <p>
@@ -100,7 +98,7 @@
           T otherwise.
         </p>
 <a name="math_toolkit.special.sf_gamma.lgamma.accuracy"></a><h5>
-<a name="id621676"></a>
+<a name="id621174"></a>
           <a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -351,7 +349,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.special.sf_gamma.lgamma.testing"></a><h5>
-<a name="id622200"></a>
+<a name="id621698"></a>
           <a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.testing">Testing</a>
         </h5>
 <p>
@@ -362,7 +360,7 @@
           Random tests in key problem areas are also used.
         </p>
 <a name="math_toolkit.special.sf_gamma.lgamma.implementation"></a><h5>
-<a name="id622235"></a>
+<a name="id621734"></a>
           <a href="lgamma.html#math_toolkit.special.sf_gamma.lgamma.implementation">Implementation</a>
         </h5>
 <p>
@@ -409,8 +407,7 @@
           by JM</a> are used over the intervals [1,2] and [2,3]. Over the interval
           [2,3] the approximation form used is:
         </p>
-<pre class="programlisting">
-<span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">)(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">)(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">));</span>
 </pre>
 <p>
           Where Y is a constant, and R(z-2) is the rational approximation: optimised
@@ -418,30 +415,26 @@
           of z greater than 3 can handled by argument reduction using the recurrence
           relation:
         </p>
-<pre class="programlisting">
-<span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
           Over the interval [1,2] two approximations have to be used, one for small
           z uses:
         </p>
-<pre class="programlisting">
-<span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">1</span><span class="special">)(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">1</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">1</span><span class="special">)(</span><span class="identifier">z</span><span class="special">-</span><span class="number">2</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">z</span><span class="special">-</span><span class="number">1</span><span class="special">));</span>
 </pre>
 <p>
           Once again Y is a constant, and R(z-1) is optimised for low absolute error
           compared to Y. For z &gt; 1.5 the above form wouldn't converge to a minimax
           solution but this similar form does:
         </p>
-<pre class="programlisting">
-<span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="number">2</span><span class="special">-</span><span class="identifier">z</span><span class="special">)(</span><span class="number">1</span><span class="special">-</span><span class="identifier">z</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="number">2</span><span class="special">-</span><span class="identifier">z</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="special">(</span><span class="number">2</span><span class="special">-</span><span class="identifier">z</span><span class="special">)(</span><span class="number">1</span><span class="special">-</span><span class="identifier">z</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="number">2</span><span class="special">-</span><span class="identifier">z</span><span class="special">));</span>
 </pre>
 <p>
           Finally for z &lt; 1 the recurrence relation can be used to move to z &gt;
           1:
         </p>
-<pre class="programlisting">
-<span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">lgamma</span><span class="special">(</span><span class="identifier">z</span><span class="special">+</span><span class="number">1</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">z</span><span class="special">);</span>
 </pre>
 <p>
           Note that while this involves a subtraction, it appears not to suffer from

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.sf_gamma.tgamma"></a> Gamma
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_gamma.tgamma.synopsis"></a><h5>
-<a name="id618544"></a>
+<a name="id618050"></a>
           <a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
@@ -56,11 +54,10 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_gamma.tgamma.description"></a><h5>
-<a name="id619036"></a>
+<a name="id618540"></a>
           <a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -101,8 +98,7 @@
           type calculation rules</em></span></a>: the result is <code class="computeroutput"><span class="keyword">double</span></code>
           when T is an integer type, and T otherwise.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">tgamma1pm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">dz</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -133,7 +129,7 @@
 <p>
         </p>
 <a name="math_toolkit.special.sf_gamma.tgamma.accuracy"></a><h5>
-<a name="id619710"></a>
+<a name="id619211"></a>
           <a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -388,7 +384,7 @@
 </tbody>
 </table></div>
 <a name="math_toolkit.special.sf_gamma.tgamma.testing"></a><h5>
-<a name="id620247"></a>
+<a name="id619748"></a>
           <a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.testing">Testing</a>
         </h5>
 <p>
@@ -403,7 +399,7 @@
           a lanczos approximation accurate to around 100 decimal digits.
         </p>
 <a name="math_toolkit.special.sf_gamma.tgamma.implementation"></a><h5>
-<a name="id620340"></a>
+<a name="id619841"></a>
           <a href="tgamma.html#math_toolkit.special.sf_gamma.tgamma.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.sf_poly.hermite"></a> Hermite Polynomials
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_poly.hermite.synopsis"></a><h5>
-<a name="id664623"></a>
+<a name="id664008"></a>
           <a href="hermite.html#math_toolkit.special.sf_poly.hermite.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">hermite</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">hermite</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -53,7 +51,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_poly.hermite.description"></a><h5>
-<a name="id665132"></a>
+<a name="id664514"></a>
           <a href="hermite.html#math_toolkit.special.sf_poly.hermite.description">Description</a>
         </h5>
 <p>
@@ -62,8 +60,7 @@
           template argument the result is the same type as that argument or <code class="computeroutput"><span class="keyword">double</span></code> if the template argument is an integer
           type.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -93,8 +90,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/hermite.png" alt="hermite"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">hermite_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Hn</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Hnm1</span><span class="special">);</span>
 </pre>
 <p>
@@ -109,8 +105,7 @@
           For example we could produce a vector of the first 10 polynomial values
           using:
         </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
 </span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">;</span>
 <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">hermite</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">hermite</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
 <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special">&lt;</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
@@ -141,7 +136,7 @@
 </dl>
 </div>
 <a name="math_toolkit.special.sf_poly.hermite.accuracy"></a><h5>
-<a name="id666133"></a>
+<a name="id665512"></a>
           <a href="hermite.html#math_toolkit.special.sf_poly.hermite.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -151,7 +146,7 @@
           zero error</a>.
         </p>
 <div class="table">
-<a name="id666164"></a><p class="title"><b>Table 29. Peak Errors In the Hermite Polynomial</b></p>
+<a name="id665543"></a><p class="title"><b>Table 29. Peak Errors In the Hermite Polynomial</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Hermite Polynomial">
 <colgroup>
 <col>
@@ -258,7 +253,7 @@
           is very close to a root.
         </p>
 <a name="math_toolkit.special.sf_poly.hermite.testing"></a><h5>
-<a name="id666340"></a>
+<a name="id665719"></a>
           <a href="hermite.html#math_toolkit.special.sf_poly.hermite.testing">Testing</a>
         </h5>
 <p>
@@ -268,7 +263,7 @@
           precision.
         </p>
 <a name="math_toolkit.special.sf_poly.hermite.implementation"></a><h5>
-<a name="id666379"></a>
+<a name="id665758"></a>
           <a href="hermite.html#math_toolkit.special.sf_poly.hermite.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Associated) Polynomials</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_poly.laguerre.synopsis"></a><h5>
-<a name="id661206"></a>
+<a name="id660601"></a>
           <a href="laguerre.html#math_toolkit.special.sf_poly.laguerre.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">laguerre</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">laguerre</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -64,7 +62,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_poly.laguerre.description"></a><h5>
-<a name="id662126"></a>
+<a name="id661518"></a>
           <a href="laguerre.html#math_toolkit.special.sf_poly.laguerre.description">Description</a>
         </h5>
 <p>
@@ -83,8 +81,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -104,8 +101,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/laguerre.png" alt="laguerre"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -118,8 +114,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../equations/laguerre_1.png"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Ln</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Lnm1</span><span class="special">);</span>
 </pre>
 <p>
@@ -134,8 +129,7 @@
           For example we could produce a vector of the first 10 polynomial values
           using:
         </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
 </span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">;</span>
 <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
 <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special">&lt;</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
@@ -165,8 +159,7 @@
             </p></dd>
 </dl>
 </div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">laguerre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Ln</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Lnm1</span><span class="special">);</span>
 </pre>
 <p>
@@ -181,8 +174,7 @@
           For example we could produce a vector of the first 10 polynomial values
           using:
         </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
 </span><span class="keyword">int</span> <span class="identifier">m</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span> <span class="comment">// order
 </span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">;</span>
 <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">laguerre</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
@@ -218,7 +210,7 @@
 </dl>
 </div>
 <a name="math_toolkit.special.sf_poly.laguerre.accuracy"></a><h5>
-<a name="id664157"></a>
+<a name="id663541"></a>
           <a href="laguerre.html#math_toolkit.special.sf_poly.laguerre.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -228,7 +220,7 @@
           zero error</a>.
         </p>
 <div class="table">
-<a name="id664188"></a><p class="title"><b>Table 27. Peak Errors In the Laguerre Polynomial</b></p>
+<a name="id663572"></a><p class="title"><b>Table 27. Peak Errors In the Laguerre Polynomial</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Laguerre Polynomial">
 <colgroup>
 <col>
@@ -328,7 +320,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id664353"></a><p class="title"><b>Table 28. Peak Errors In the Associated Laguerre
+<a name="id663738"></a><p class="title"><b>Table 28. Peak Errors In the Associated Laguerre
         Polynomial</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Associated Laguerre
         Polynomial">
@@ -437,7 +429,7 @@
           is very close to a root.
         </p>
 <a name="math_toolkit.special.sf_poly.laguerre.testing"></a><h5>
-<a name="id664530"></a>
+<a name="id663915"></a>
           <a href="laguerre.html#math_toolkit.special.sf_poly.laguerre.testing">Testing</a>
         </h5>
 <p>
@@ -447,7 +439,7 @@
           precision.
         </p>
 <a name="math_toolkit.special.sf_poly.laguerre.implementation"></a><h5>
-<a name="id664569"></a>
+<a name="id663954"></a>
           <a href="laguerre.html#math_toolkit.special.sf_poly.laguerre.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Associated) Polynomials</a>
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_poly.legendre.synopsis"></a><h5>
-<a name="id656893"></a>
+<a name="id656299"></a>
           <a href="legendre.html#math_toolkit.special.sf_poly.legendre.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">legendre</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">legendre</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
@@ -86,11 +84,10 @@
 <p>
         </p>
 <a name="math_toolkit.special.sf_poly.legendre.description"></a><h5>
-<a name="id658073"></a>
+<a name="id657476"></a>
           <a href="legendre.html#math_toolkit.special.sf_poly.legendre.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -118,8 +115,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/legendre_p1.png" alt="legendre_p1"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_p</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -174,8 +170,7 @@
           </p>
 </td></tr>
 </table></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_q</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -199,8 +194,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../graphs/legendre_q.png" alt="legendre_q"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Pl</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Plm1</span><span class="special">);</span>
 </pre>
 <p>
@@ -217,8 +211,7 @@
           For example we could produce a vector of the first 10 polynomial values
           using:
         </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
 </span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">;</span>
 <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
 <span class="keyword">for</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span> <span class="special">=</span> <span class="number">1</span><span class="special">;</span> <span class="identifier">l</span> <span class="special">&lt;</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">l</span><span class="special">)</span>
@@ -248,8 +241,7 @@
             </p></dd>
 </dl>
 </div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T3</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">legendre_next</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">l</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">Pl</span><span class="special">,</span> <span class="identifier">T3</span> <span class="identifier">Plm1</span><span class="special">);</span>
 </pre>
 <p>
@@ -264,8 +256,7 @@
           For example we could produce a vector of the first m+10 polynomial values
           using:
         </p>
-<pre class="programlisting">
-<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
+<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// Abscissa value
 </span><span class="keyword">int</span> <span class="identifier">m</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span> <span class="comment">// order
 </span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">v</span><span class="special">;</span>
 <span class="identifier">v</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="identifier">m</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)).</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">legendre_p</span><span class="special">(</span><span class="number">1</span> <span class="special">+</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">x</span><span class="special">));</span>
@@ -301,7 +292,7 @@
 </dl>
 </div>
 <a name="math_toolkit.special.sf_poly.legendre.accuracy"></a><h5>
-<a name="id660500"></a>
+<a name="id659894"></a>
           <a href="legendre.html#math_toolkit.special.sf_poly.legendre.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -311,7 +302,7 @@
           zero error</a>.
         </p>
 <div class="table">
-<a name="id660531"></a><p class="title"><b>Table 24. Peak Errors In the Legendre P Function</b></p>
+<a name="id659925"></a><p class="title"><b>Table 24. Peak Errors In the Legendre P Function</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Legendre P Function">
 <colgroup>
 <col>
@@ -440,7 +431,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id660729"></a><p class="title"><b>Table 25. Peak Errors In the Associated Legendre
+<a name="id660124"></a><p class="title"><b>Table 25. Peak Errors In the Associated Legendre
         P Function</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Associated Legendre
         P Function">
@@ -542,7 +533,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id660887"></a><p class="title"><b>Table 26. Peak Errors In the Legendre Q Function</b></p>
+<a name="id660282"></a><p class="title"><b>Table 26. Peak Errors In the Legendre Q Function</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Legendre Q Function">
 <colgroup>
 <col>
@@ -684,7 +675,7 @@
           given here.
         </p>
 <a name="math_toolkit.special.sf_poly.legendre.testing"></a><h5>
-<a name="id661113"></a>
+<a name="id660508"></a>
           <a href="legendre.html#math_toolkit.special.sf_poly.legendre.testing">Testing</a>
         </h5>
 <p>
@@ -694,7 +685,7 @@
           precision.
         </p>
 <a name="math_toolkit.special.sf_poly.legendre.implementation"></a><h5>
-<a name="id661152"></a>
+<a name="id660546"></a>
           <a href="legendre.html#math_toolkit.special.sf_poly.legendre.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.special.sf_poly.sph_harm"></a> Spherical Harmonics
 </h4></div></div></div>
 <a name="math_toolkit.special.sf_poly.sph_harm.synopsis"></a><h5>
-<a name="id666433"></a>
+<a name="id665812"></a>
           <a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">spheric_harmonic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">spheric_harmonic</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span>calculated-result-type<span class="special">&gt;</span> <span class="identifier">spherical_harmonic</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
@@ -62,7 +60,7 @@
 <span class="special">}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.special.sf_poly.sph_harm.description"></a><h5>
-<a name="id667562"></a>
+<a name="id666937"></a>
           <a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.description">Description</a>
         </h5>
 <p>
@@ -79,8 +77,7 @@
           </p>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span>calculated-result-type<span class="special">&gt;</span> <span class="identifier">spherical_harmonic</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -133,8 +130,7 @@
           </p>
 </td></tr>
 </table></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_r</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -146,8 +142,7 @@
 <p>
           <span class="inlinemediaobject"><img src="../../../../equations/spherical_1.png"></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">spherical_harmonic_i</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">T1</span> <span class="identifier">theta</span><span class="special">,</span> <span class="identifier">T2</span> <span class="identifier">phi</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -160,7 +155,7 @@
           <span class="inlinemediaobject"><img src="../../../../equations/spherical_2.png"></span>
         </p>
 <a name="math_toolkit.special.sf_poly.sph_harm.accuracy"></a><h5>
-<a name="id668837"></a>
+<a name="id668210"></a>
           <a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.accuracy">Accuracy</a>
         </h5>
 <p>
@@ -175,7 +170,7 @@
           All values are in units of epsilon.
         </p>
 <div class="table">
-<a name="id668877"></a><p class="title"><b>Table 30. Peak Errors In the Sperical Harmonic Functions</b></p>
+<a name="id668249"></a><p class="title"><b>Table 30. Peak Errors In the Sperical Harmonic Functions</b></p>
 <div class="table-contents"><table class="table" summary="Peak Errors In the Sperical Harmonic Functions">
 <colgroup>
 <col>
@@ -281,7 +276,7 @@
           arbitrarily large when the function is very close to a root.
         </p>
 <a name="math_toolkit.special.sf_poly.sph_harm.testing"></a><h5>
-<a name="id669056"></a>
+<a name="id668429"></a>
           <a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.testing">Testing</a>
         </h5>
 <p>
@@ -291,7 +286,7 @@
           precision.
         </p>
 <a name="math_toolkit.special.sf_poly.sph_harm.implementation"></a><h5>
-<a name="id669095"></a>
+<a name="id668468"></a>
           <a href="sph_harm.html#math_toolkit.special.sf_poly.sph_harm.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sinc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sinc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sinc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -51,8 +49,7 @@
           Computes <a href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">the Sinus
           Cardinal</a> of x:
         </p>
-<pre class="programlisting">
-<span class="identifier">sinc_pi</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">x</span>
+<pre class="programlisting"><span class="identifier">sinc_pi</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">sin</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">x</span>
 </pre>
 <p>
           The second form is for complex numbers, quaternions, octonions etc. Taylor

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -29,13 +29,11 @@
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sinhc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">sinhc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <a href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">sinhc_pi</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">);</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> Policy<span class="special">&gt;</span>
@@ -51,8 +49,7 @@
           Computes http://mathworld.wolfram.com/SinhcFunction.html <a href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">the
           Hyperbolic Sinus Cardinal</a> of x:
         </p>
-<pre class="programlisting">
-<span class="identifier">sinhc_pi</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">x</span>
+<pre class="programlisting"><span class="identifier">sinhc_pi</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">sinh</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">/</span> <span class="identifier">x</span>
 </pre>
 <p>
           The second form is for complex numbers, quaternions, octonions etc. Taylor

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/compilers.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/compilers.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/compilers.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -37,7 +37,7 @@
 <p>
         </p>
 <div class="table">
-<a name="id790470"></a><p class="title"><b>Table 47. Supported/Tested Compilers</b></p>
+<a name="id789585"></a><p class="title"><b>Table 47. Supported/Tested Compilers</b></p>
 <div class="table-contents"><table class="table" summary="Supported/Tested Compilers">
 <colgroup>
 <col>
@@ -539,7 +539,7 @@
 </div>
 <p><br class="table-break"> </p>
 <div class="table">
-<a name="id791262"></a><p class="title"><b>Table 48. Unsupported Compilers</b></p>
+<a name="id790360"></a><p class="title"><b>Table 48. Unsupported Compilers</b></p>
 <div class="table-contents"><table class="table" summary="Unsupported Compilers">
 <colgroup>
 <col>
@@ -594,8 +594,7 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="identifier">bjam</span> <span class="identifier">mytoolset</span>
+<pre class="programlisting"><span class="identifier">bjam</span> <span class="identifier">mytoolset</span>
 </pre>
 <p>
         </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,10 +11,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -51,12 +51,12 @@
         Professor Nico Temme for advice on the inverse incomplete beta function.
       </p>
 <p>
- Victor Shoup for NTL, without which
+ Victor Shoup for NTL, without which
         it would have much difficult to produce high accuracy constants, and especially
         the tables of accurate values for testing.
       </p>
 <p>
- We are grateful to Joel Guzman for helping us stress-test his Boost.Quickbook
+ We are grateful to Joel Guzman for helping us stress-test his Boost.Quickbook
         program used to generate the html and pdf versions of this document, adding
         several new features en route.
       </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,7 +30,7 @@
         <a name="math_toolkit.status.history1.milestone_5__post_review_first_official_release"></a>
         </p>
 <h5>
-<a name="id790092"></a>
+<a name="id789207"></a>
           <a href="history1.html#math_toolkit.status.history1.milestone_5__post_review_first_official_release">Milestone
           5: Post Review First Official Release</a>
         </h5>
@@ -67,7 +67,7 @@
         <a name="math_toolkit.status.history1.milestone_4__second_review_candidate__1st_march_2007_"></a>
         </p>
 <h5>
-<a name="id790194"></a>
+<a name="id789309"></a>
           <a href="history1.html#math_toolkit.status.history1.milestone_4__second_review_candidate__1st_march_2007_">Milestone
           4: Second Review Candidate (1st March 2007)</a>
         </h5>
@@ -86,7 +86,7 @@
         <a name="math_toolkit.status.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a>
         </p>
 <h5>
-<a name="id790236"></a>
+<a name="id789351"></a>
           <a href="history1.html#math_toolkit.status.history1.milestone_3__first_review_candidate__31st_dec_2006_">Milestone
           3: First Review Candidate (31st Dec 2006)</a>
         </h5>
@@ -119,7 +119,7 @@
         <a name="math_toolkit.status.history1.milestone_2__released_september_10th_2006"></a>
         </p>
 <h5>
-<a name="id790301"></a>
+<a name="id789416"></a>
           <a href="history1.html#math_toolkit.status.history1.milestone_2__released_september_10th_2006">Milestone
           2: Released September 10th 2006</a>
         </h5>
@@ -160,7 +160,7 @@
         <a name="math_toolkit.status.history1.milestone_1__released_march_31st_2006"></a>
         </p>
 <h5>
-<a name="id790378"></a>
+<a name="id789493"></a>
           <a href="history1.html#math_toolkit.status.history1.milestone_1__released_march_31st_2006">Milestone
           1: Released March 31st 2006</a>
         </h5>
@@ -195,7 +195,7 @@
 <p>
         </p>
 <p>
- Sandbox and trunk last synchonised at revision: 40161.
+ Sandbox and trunk last synchonised at revision: 41065.
         </p>
 <p>
       </p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -43,7 +43,7 @@
         with it.
       </p>
 <a name="math_toolkit.status.issues.tgamma"></a><h5>
-<a name="id791446"></a>
+<a name="id790544"></a>
         <a href="issues.html#math_toolkit.status.issues.tgamma">tgamma</a>
       </h5>
 <div class="itemizedlist"><ul type="disc"><li>
@@ -51,7 +51,7 @@
           be optimized any further? (low priority)
         </li></ul></div>
 <a name="math_toolkit.status.issues.incomplete_beta"></a><h5>
-<a name="id791488"></a>
+<a name="id790586"></a>
         <a href="issues.html#math_toolkit.status.issues.incomplete_beta">Incomplete Beta</a>
       </h5>
 <div class="itemizedlist"><ul type="disc"><li>
@@ -59,7 +59,7 @@
           (medium priority).
         </li></ul></div>
 <a name="math_toolkit.status.issues.inverse_gamma"></a><h5>
-<a name="id791521"></a>
+<a name="id790619"></a>
         <a href="issues.html#math_toolkit.status.issues.inverse_gamma">Inverse Gamma</a>
       </h5>
 <div class="itemizedlist"><ul type="disc"><li>
@@ -67,7 +67,7 @@
           is good enough (Medium Priority).
         </li></ul></div>
 <a name="math_toolkit.status.issues.polynomials"></a><h5>
-<a name="id791554"></a>
+<a name="id790651"></a>
         <a href="issues.html#math_toolkit.status.issues.polynomials">Polynomials</a>
       </h5>
 <div class="itemizedlist"><ul type="disc"><li>
@@ -77,7 +77,7 @@
           not (Low Priority).
         </li></ul></div>
 <a name="math_toolkit.status.issues.elliptic_integrals"></a><h5>
-<a name="id791590"></a>
+<a name="id790688"></a>
         <a href="issues.html#math_toolkit.status.issues.elliptic_integrals">Elliptic Integrals</a>
       </h5>
 <div class="itemizedlist"><ul type="disc">
@@ -127,7 +127,7 @@
         </li>
 </ul></div>
 <a name="math_toolkit.status.issues.inverse_hyperbolic_functions"></a><h5>
-<a name="id791748"></a>
+<a name="id790846"></a>
         <a href="issues.html#math_toolkit.status.issues.inverse_hyperbolic_functions">Inverse
         Hyperbolic Functions</a>
       </h5>
@@ -137,7 +137,7 @@
           is probably only an issue for very high precision types (Low Priority).
         </li></ul></div>
 <a name="math_toolkit.status.issues.statistical_distributions"></a><h5>
-<a name="id791794"></a>
+<a name="id790891"></a>
         <a href="issues.html#math_toolkit.status.issues.statistical_distributions">Statistical
         distributions</a>
       </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Evaluation</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals1.cf.synopsis"></a><h5>
-<a name="id700710"></a>
+<a name="id700017"></a>
           <a href="cf.html#math_toolkit.toolkit.internals1.cf.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">fraction</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">fraction</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Gen</span><span class="special">&gt;</span>
 <span class="keyword">typename</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">fraction_traits</span><span class="special">&lt;</span><span class="identifier">Gen</span><span class="special">&gt;::</span><span class="identifier">result_type</span>
@@ -61,7 +59,7 @@
 <span class="special">}}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.toolkit.internals1.cf.description"></a><h5>
-<a name="id701434"></a>
+<a name="id700738"></a>
           <a href="cf.html#math_toolkit.toolkit.internals1.cf.description">Description</a>
         </h5>
 <p>
@@ -159,7 +157,7 @@
           a continued fraction for convergence.
         </p>
 <a name="math_toolkit.toolkit.internals1.cf.implementation"></a><h5>
-<a name="id701712"></a>
+<a name="id701016"></a>
           <a href="cf.html#math_toolkit.toolkit.internals1.cf.implementation">Implementation</a>
         </h5>
 <p>
@@ -169,7 +167,7 @@
           Lentz, W.J. 1976, Applied Optics, vol. 15, pp. 668-671.
         </p>
 <a name="math_toolkit.toolkit.internals1.cf.examples"></a><h5>
-<a name="id701746"></a>
+<a name="id701050"></a>
           <a href="cf.html#math_toolkit.toolkit.internals1.cf.examples">Examples</a>
         </h5>
 <p>
@@ -183,8 +181,7 @@
 <p>
           We begin by defining a generator function:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">golden_ratio_fraction</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">result_type</span><span class="special">;</span>
@@ -198,8 +195,7 @@
 <p>
           The golden ratio can then be computed to double precision using:
         </p>
-<pre class="programlisting">
-<span class="identifier">continued_fraction_a</span><span class="special">(</span>
+<pre class="programlisting"><span class="identifier">continued_fraction_a</span><span class="special">(</span>
    <span class="identifier">golden_ratio_fraction</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(),</span>
    <span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">digits</span><span class="special">);</span>
 </pre>
@@ -214,8 +210,7 @@
 <p>
           So it's generator object would look like:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">tan_fraction</span>
 <span class="special">{</span>
 <span class="keyword">private</span><span class="special">:</span>
@@ -240,8 +235,7 @@
           by the generator will be negative. The tangent function can now be evaluated
           using:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">tan</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="identifier">tan_fraction</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">fract</span><span class="special">(</span><span class="identifier">a</span><span class="special">);</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,26 +28,24 @@
         Minima</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals1.minima.synopsis"></a><h5>
-<a name="id718462"></a>
+<a name="id717723"></a>
           <a href="minima.html#math_toolkit.toolkit.internals1.minima.synopsis">synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">minima</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">minima</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">brent_find_minima</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">brent_find_minima</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uintmax_t</span><span class="special">&amp;</span> <span class="identifier">max_iter</span><span class="special">);</span>
 </pre>
 <a name="math_toolkit.toolkit.internals1.minima.description"></a><h5>
-<a name="id718934"></a>
+<a name="id718192"></a>
           <a href="minima.html#math_toolkit.toolkit.internals1.minima.description">Description</a>
         </h5>
 <p>
@@ -90,7 +88,7 @@
           the abscissa at the minima and the value of f(x) at the minima.
         </p>
 <a name="math_toolkit.toolkit.internals1.minima.implementation"></a><h5>
-<a name="id719074"></a>
+<a name="id718332"></a>
           <a href="minima.html#math_toolkit.toolkit.internals1.minima.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         and Rational Function Evaluation</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals1.rational.synopsis"></a><h5>
-<a name="id702733"></a>
+<a name="id702032"></a>
           <a href="rational.html#math_toolkit.toolkit.internals1.rational.synopsis">synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">rational</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">rational</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="comment">// Polynomials:
+<pre class="programlisting"><span class="comment">// Polynomials:
 </span><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
 <span class="identifier">V</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&amp;</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
 
@@ -81,7 +79,7 @@
 <span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">num</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">*</span> <span class="identifier">denom</span><span class="special">,</span> <span class="identifier">V</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">count</span><span class="special">);</span>
 </pre>
 <a name="math_toolkit.toolkit.internals1.rational.description"></a><h5>
-<a name="id704860"></a>
+<a name="id704156"></a>
           <a href="rational.html#math_toolkit.toolkit.internals1.rational.description">Description</a>
         </h5>
 <p>
@@ -94,8 +92,7 @@
           functions in particular, are specialised for various array sizes, allowing
           for loop unrolling, and one hopes, optimal inline expansion.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
 <span class="identifier">V</span> <span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&amp;</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
@@ -124,8 +121,7 @@
           This allows, for example, for the coefficient table to be a table of integers
           if this is appropriate.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
 <span class="identifier">V</span> <span class="identifier">evaluate_even_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&amp;</span><span class="identifier">poly</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
@@ -138,8 +134,7 @@
           As above, but evaluates an even polynomial: one where all the powers of
           <span class="emphasis"><em>z</em></span> are even numbers. Equivalent to calling <code class="computeroutput"><span class="identifier">evaluate_polynomial</span><span class="special">(</span><span class="identifier">poly</span><span class="special">,</span> <span class="identifier">z</span><span class="special">*</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">count</span><span class="special">)</span></code>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
 <span class="identifier">V</span> <span class="identifier">evaluate_odd_polynomial</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&amp;</span><span class="identifier">a</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
@@ -155,8 +150,7 @@
           <span class="special">*</span> <span class="identifier">z</span>
           <span class="special">+</span> <span class="identifier">poly</span><span class="special">[</span><span class="number">0</span><span class="special">]</span></code>.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
 <span class="identifier">V</span> <span class="identifier">evaluate_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">(&amp;</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">U</span><span class="special">(&amp;</span><span class="identifier">denom</span><span class="special">)[</span><span class="identifier">N</span><span class="special">],</span> <span class="keyword">const</span> <span class="identifier">V</span><span class="special">&amp;</span> <span class="identifier">z</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">&gt;</span>
@@ -199,7 +193,7 @@
           evaluation with compile-time array sizes may offer slightly better performance.
         </p>
 <a name="math_toolkit.toolkit.internals1.rational.implementation"></a><h5>
-<a name="id707329"></a>
+<a name="id706618"></a>
           <a href="rational.html#math_toolkit.toolkit.internals1.rational.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         With Derivatives</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals1.roots.synopsis"></a><h5>
-<a name="id707447"></a>
+<a name="id706736"></a>
           <a href="roots.html#math_toolkit.toolkit.internals1.roots.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">newton_raphson_iterate</span><span class="special">(</span><span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">guess</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">min</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">max</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">digits</span><span class="special">);</span>
@@ -63,7 +61,7 @@
 <span class="special">}}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.toolkit.internals1.roots.description"></a><h5>
-<a name="id708605"></a>
+<a name="id707891"></a>
           <a href="roots.html#math_toolkit.toolkit.internals1.roots.description">Description</a>
         </h5>
 <p>
@@ -178,7 +176,7 @@
 <a name="newton"></a><p>
         </p>
 <a name="math_toolkit.toolkit.internals1.roots.newton_raphson_method"></a><h5>
-<a name="id708926"></a>
+<a name="id708212"></a>
           <a href="roots.html#math_toolkit.toolkit.internals1.roots.newton_raphson_method">Newton
           Raphson Method</a>
         </h5>
@@ -198,7 +196,7 @@
 <a name="halley"></a><p>
         </p>
 <a name="math_toolkit.toolkit.internals1.roots.halley_s_method"></a><h5>
-<a name="id709007"></a>
+<a name="id708293"></a>
           <a href="roots.html#math_toolkit.toolkit.internals1.roots.halley_s_method">Halley's
           Method</a>
         </h5>
@@ -222,7 +220,7 @@
 <a name="schroeder"></a><p>
         </p>
 <a name="math_toolkit.toolkit.internals1.roots.schroeder_s_method"></a><h5>
-<a name="id709094"></a>
+<a name="id708380"></a>
           <a href="roots.html#math_toolkit.toolkit.internals1.roots.schroeder_s_method">Schroeder's
           Method</a>
         </h5>
@@ -246,7 +244,7 @@
           iteration.
         </p>
 <a name="math_toolkit.toolkit.internals1.roots.example"></a><h5>
-<a name="id709174"></a>
+<a name="id708460"></a>
           <a href="roots.html#math_toolkit.toolkit.internals1.roots.example">Example</a>
         </h5>
 <p>
@@ -261,8 +259,7 @@
           begin be defining a function object that returns the evaluation of the
           function to solve, along with its first derivative:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">cbrt_functor</span>
 <span class="special">{</span>
    <span class="identifier">cbrt_functor</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">target</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">a</span><span class="special">(</span><span class="identifier">target</span><span class="special">){}</span>
@@ -280,8 +277,7 @@
           a good approximation to begin with: in this case we'll just divide the
           exponent by three:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>
@@ -316,8 +312,7 @@
           Now lets adapt the functor slightly to return the second derivative as
           well:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">cbrt_functor</span>
 <span class="special">{</span>
    <span class="identifier">cbrt_functor</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">target</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">a</span><span class="special">(</span><span class="identifier">target</span><span class="special">){}</span>
@@ -334,8 +329,7 @@
           And then adapt the <code class="computeroutput"><span class="identifier">cbrt</span></code>
           function to use Halley iterations:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">cbrt</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">std</span><span class="special">;</span>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Without Derivatives</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals1.roots2.synopsis"></a><h5>
-<a name="id711288"></a>
+<a name="id710569"></a>
           <a href="roots2.html#math_toolkit.toolkit.internals1.roots2.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">roots</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -143,7 +141,7 @@
 <span class="special">}}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.toolkit.internals1.roots2.description"></a><h5>
-<a name="id713932"></a>
+<a name="id713211"></a>
           <a href="roots2.html#math_toolkit.toolkit.internals1.roots2.description">Description</a>
         </h5>
 <p>
@@ -176,8 +174,7 @@
           to be an integer. Other user-defined termination conditions are likely
           to be used only rarely, but may be useful in some specific circumstances.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span>
    <span class="identifier">bisect</span><span class="special">(</span>
       <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
@@ -253,20 +250,17 @@
           Returns: a pair of values <span class="emphasis"><em>r</em></span> that bracket the root
           so that:
         </p>
-<pre class="programlisting">
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0</span>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0</span>
 </pre>
 <p>
           and either
         </p>
-<pre class="programlisting">
-<span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
+<pre class="programlisting"><span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
 </pre>
 <p>
           or
         </p>
-<pre class="programlisting">
-<span class="identifier">max_iter</span> <span class="special">&gt;=</span> <span class="identifier">m</span>
+<pre class="programlisting"><span class="identifier">max_iter</span> <span class="special">&gt;=</span> <span class="identifier">m</span>
 </pre>
 <p>
           where <span class="emphasis"><em>m</em></span> is the initial value of <span class="emphasis"><em>max_iter</em></span>
@@ -279,8 +273,7 @@
           the function returns), rather than because the termination condition <span class="emphasis"><em>tol</em></span>
           was satisfied.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span>
    <span class="identifier">bracket_and_solve_root</span><span class="special">(</span>
       <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
@@ -364,20 +357,17 @@
           Returns: a pair of values <span class="emphasis"><em>r</em></span> that bracket the root
           so that:
         </p>
-<pre class="programlisting">
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0</span>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0</span>
 </pre>
 <p>
           and either
         </p>
-<pre class="programlisting">
-<span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
+<pre class="programlisting"><span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
 </pre>
 <p>
           or
         </p>
-<pre class="programlisting">
-<span class="identifier">max_iter</span> <span class="special">&gt;=</span> <span class="identifier">m</span>
+<pre class="programlisting"><span class="identifier">max_iter</span> <span class="special">&gt;=</span> <span class="identifier">m</span>
 </pre>
 <p>
           where <span class="emphasis"><em>m</em></span> is the initial value of <span class="emphasis"><em>max_iter</em></span>
@@ -390,8 +380,7 @@
           the function returns), rather than because the termination condition <span class="emphasis"><em>tol</em></span>
           was satisfied.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tol</span><span class="special">&gt;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;</span>
    <span class="identifier">toms748_solve</span><span class="special">(</span>
       <span class="identifier">F</span> <span class="identifier">f</span><span class="special">,</span>
@@ -497,20 +486,17 @@
           Returns: a pair of values <span class="emphasis"><em>r</em></span> that bracket the root
           so that:
         </p>
-<pre class="programlisting">
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0</span>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">&lt;=</span> <span class="number">0</span>
 </pre>
 <p>
           and either
         </p>
-<pre class="programlisting">
-<span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
+<pre class="programlisting"><span class="identifier">tol</span><span class="special">(</span><span class="identifier">r</span><span class="special">.</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">second</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span>
 </pre>
 <p>
           or
         </p>
-<pre class="programlisting">
-<span class="identifier">max_iter</span> <span class="special">&gt;=</span> <span class="identifier">m</span>
+<pre class="programlisting"><span class="identifier">max_iter</span> <span class="special">&gt;=</span> <span class="identifier">m</span>
 </pre>
 <p>
           where <span class="emphasis"><em>m</em></span> is the initial value of <span class="emphasis"><em>max_iter</em></span>
@@ -522,8 +508,7 @@
           (easily done by checking the value of <span class="emphasis"><em>max_iter</em></span>), rather
           than because the termination condition <span class="emphasis"><em>tol</em></span> was satisfied.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">eps_tolerance</span>
 <span class="special">{</span>
    <span class="identifier">eps_tolerance</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
@@ -540,8 +525,7 @@
           we get back a bracketing interval: since this must clearly be at least
           1 epsilon in size.
         </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">equal_floor</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">equal_floor</span>
 <span class="special">{</span>
    <span class="identifier">equal_floor</span><span class="special">();</span>
    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
@@ -552,8 +536,7 @@
           that is the <span class="emphasis"><em>floor</em></span> of the true root. It will terminate
           as soon as both ends of the interval have the same <span class="emphasis"><em>floor</em></span>.
         </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">equal_ceil</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">equal_ceil</span>
 <span class="special">{</span>
    <span class="identifier">equal_ceil</span><span class="special">();</span>
    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
@@ -564,8 +547,7 @@
           that is the <span class="emphasis"><em>ceil</em></span> of the true root. It will terminate
           as soon as both ends of the interval have the same <span class="emphasis"><em>ceil</em></span>.
         </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">equal_nearest_integer</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">equal_nearest_integer</span>
 <span class="special">{</span>
    <span class="identifier">equal_nearest_integer</span><span class="special">();</span>
    <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">b</span><span class="special">)</span><span class="keyword">const</span><span class="special">;</span>
@@ -577,7 +559,7 @@
           as soon as both ends of the interval round to the same nearest integer.
         </p>
 <a name="math_toolkit.toolkit.internals1.roots2.implementation"></a><h5>
-<a name="id718396"></a>
+<a name="id717656"></a>
           <a href="roots2.html#math_toolkit.toolkit.internals1.roots2.implementation">Implementation</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,19 +28,17 @@
         Series Evaluation</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals1.series_evaluation.synopsis"></a><h5>
-<a name="id698850"></a>
+<a name="id698161"></a>
           <a href="series_evaluation.html#math_toolkit.toolkit.internals1.series_evaluation.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">series</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">series</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Functor</span><span class="special">&gt;</span>
 <span class="keyword">typename</span> <span class="identifier">Functor</span><span class="special">::</span><span class="identifier">result_type</span> <span class="identifier">sum_series</span><span class="special">(</span><span class="identifier">Functor</span><span class="special">&amp;</span> <span class="identifier">func</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">bits</span><span class="special">);</span>
@@ -63,7 +61,7 @@
 <span class="special">}}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.toolkit.internals1.series_evaluation.description"></a><h5>
-<a name="id699802"></a>
+<a name="id699111"></a>
           <a href="series_evaluation.html#math_toolkit.toolkit.internals1.series_evaluation.description">Description</a>
         </h5>
 <p>
@@ -119,7 +117,7 @@
           summation in this way.
         </p>
 <a name="math_toolkit.toolkit.internals1.series_evaluation.example"></a><h5>
-<a name="id699949"></a>
+<a name="id699258"></a>
           <a href="series_evaluation.html#math_toolkit.toolkit.internals1.series_evaluation.example">Example</a>
         </h5>
 <p>
@@ -133,8 +131,7 @@
           We begin by writing a small function object to return successive terms
           of the series:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">log1p_series</span>
 <span class="special">{</span>
    <span class="comment">// we must define a result_type typedef:
@@ -162,8 +159,7 @@
 <p>
           Implementing log(1+x) is now fairly trivial:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">log1p</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">x</span><span class="special">)</span>
 <span class="special">{</span>
    <span class="comment">// We really should add some error checking on x here!

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,30 +28,27 @@
         Error and Testing</a>
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals2.error_test.synopsis"></a><h5>
-<a name="id723018"></a>
+<a name="id722264"></a>
           <a href="error_test.html#math_toolkit.toolkit.internals2.error_test.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">relative_error</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">b</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F2</span><span class="special">&gt;</span>
 <span class="identifier">test_result</span><span class="special">&lt;</span><span class="identifier">see</span><span class="special">-</span><span class="identifier">below</span><span class="special">&gt;</span> <span class="identifier">test</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">test_func</span><span class="special">,</span> <span class="identifier">F2</span> <span class="identifier">expect_func</span><span class="special">);</span>
 </pre>
 <a name="math_toolkit.toolkit.internals2.error_test.description"></a><h5>
-<a name="id723372"></a>
+<a name="id722615"></a>
           <a href="error_test.html#math_toolkit.toolkit.internals2.error_test.description">Description</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">T</span> <span class="identifier">relative_error</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">v</span><span class="special">);</span>
 </pre>
 <p>
@@ -77,8 +74,7 @@
           Otherwise if only one of <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>v</em></span>
           is zero then the value returned is 1.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">F2</span><span class="special">&gt;</span>
 <span class="identifier">test_result</span><span class="special">&lt;</span><span class="identifier">see</span><span class="special">-</span><span class="identifier">below</span><span class="special">&gt;</span> <span class="identifier">test</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">F1</span> <span class="identifier">test_func</span><span class="special">,</span> <span class="identifier">F2</span> <span class="identifier">expect_func</span><span class="special">);</span>
 </pre>
 <p>
@@ -169,7 +165,7 @@
           is mainly a debugging/development aid (and a good place for a breakpoint).
         </p>
 <a name="math_toolkit.toolkit.internals2.error_test.example"></a><h5>
-<a name="id724326"></a>
+<a name="id723566"></a>
           <a href="error_test.html#math_toolkit.toolkit.internals2.error_test.example">Example</a>
         </h5>
 <p>
@@ -178,8 +174,7 @@
           three elements: the input value, and the expected results for the tgamma
           and lgamma functions respectively.
         </p>
-<pre class="programlisting">
-<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">TestType</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;,</span> <span class="identifier">NumberOfTests</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">TestType</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;,</span> <span class="identifier">NumberOfTests</span><span class="special">&gt;</span>
    <span class="identifier">factorials</span> <span class="special">=</span> <span class="special">{</span>
       <span class="comment">/* big array of test data goes here */</span>
    <span class="special">};</span>
@@ -187,8 +182,7 @@
 <p>
           Now we can invoke the test function to test tgamma:
         </p>
-<pre class="programlisting">
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">lambda</span><span class="special">;</span>
 
 <span class="comment">// get a pointer to the function under test:

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -68,8 +68,7 @@
           to approximate. The tools supports multiple function approximations within
           the same compiled program: each as a separate variant:
         </p>
-<pre class="programlisting">
-<span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">variant</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">variant</span><span class="special">);</span>
 </pre>
 <p>
           Returns the value of the function <span class="emphasis"><em>variant</em></span> at point
@@ -84,8 +83,7 @@
           part of the approximation: for example if you are approximating a function
           <span class="emphasis"><em>f(x)</em></span> then it is quite common to use:
         </p>
-<pre class="programlisting">
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">x</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span>
+<pre class="programlisting"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">x</span><span class="special">)(</span><span class="identifier">Y</span> <span class="special">+</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span>
 </pre>
 <p>
           where <span class="emphasis"><em>g(x)</em></span> is the dominant part of <span class="emphasis"><em>f(x)</em></span>,

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,19 +27,17 @@
 <a name="math_toolkit.toolkit.internals2.polynomials"></a> Polynomials
 </h4></div></div></div>
 <a name="math_toolkit.toolkit.internals2.polynomials.synopsis"></a><h5>
-<a name="id719163"></a>
+<a name="id718421"></a>
           <a href="polynomials.html#math_toolkit.toolkit.internals2.polynomials.synopsis">Synopsis</a>
         </h5>
 <p>
           
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">polynomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">polynomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
         </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">polynomial</span>
@@ -105,7 +103,7 @@
 <span class="special">}}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.toolkit.internals2.polynomials.description"></a><h5>
-<a name="id721940"></a>
+<a name="id721196"></a>
           <a href="polynomials.html#math_toolkit.toolkit.internals2.polynomials.description">Description</a>
         </h5>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -46,11 +46,10 @@
           </li>
 </ul></div>
 <a name="math_toolkit.toolkit.internals2.test_data.synopsis"></a><h5>
-<a name="id725424"></a>
+<a name="id724666"></a>
           <a href="test_data.html#math_toolkit.toolkit.internals2.test_data.synopsis">Synopsis</a>
         </h5>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tools</span><span class="special">{</span>
 
 <span class="keyword">enum</span> <span class="identifier">parameter_type</span>
 <span class="special">{</span>
@@ -148,7 +147,7 @@
 <span class="special">}}}</span> <span class="comment">// namespaces
 </span></pre>
 <a name="math_toolkit.toolkit.internals2.test_data.description"></a><h5>
-<a name="id728349"></a>
+<a name="id727591"></a>
           <a href="test_data.html#math_toolkit.toolkit.internals2.test_data.description">Description</a>
         </h5>
 <p>
@@ -178,7 +177,7 @@
           </li>
 </ul></div>
 <a name="math_toolkit.toolkit.internals2.test_data.example_1__output_data_for_graph_plotting"></a><h6>
-<a name="id728423"></a>
+<a name="id727665"></a>
           <a href="test_data.html#math_toolkit.toolkit.internals2.test_data.example_1__output_data_for_graph_plotting">Example
           1: Output Data for Graph Plotting</a>
         </h6>
@@ -186,8 +185,7 @@
           For example, lets say we want to graph the lgamma function between -3 and
           100, one could do this like so:
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
@@ -213,7 +211,7 @@
           <span class="inlinemediaobject"><img src="../../../../graphs/lgamma.png" alt="lgamma"></span>
         </p>
 <a name="math_toolkit.toolkit.internals2.test_data.example_2__creating_test_data"></a><h6>
-<a name="id728967"></a>
+<a name="id728208"></a>
           <a href="test_data.html#math_toolkit.toolkit.internals2.test_data.example_2__creating_test_data">Example
           2: Creating Test Data</a>
         </h6>
@@ -237,8 +235,7 @@
 <p>
           To start with then, here's the function object that creates the test data:
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">ntl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">ntl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">fstream</span><span class="special">&gt;</span>
@@ -279,8 +276,7 @@
           is designed for just that purpose. The start of main will look something
           like:
         </p>
-<pre class="programlisting">
-<span class="comment">// Set the precision on RR:
+<pre class="programlisting"><span class="comment">// Set the precision on RR:
 </span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">::</span><span class="identifier">SetPrecision</span><span class="special">(</span><span class="number">1000</span><span class="special">);</span> <span class="comment">// bits.
 </span><span class="identifier">NTL</span><span class="special">::</span><span class="identifier">RR</span><span class="special">::</span><span class="identifier">SetOutputPrecision</span><span class="special">(</span><span class="number">40</span><span class="special">);</span> <span class="comment">// decimal digits.
 </span>
@@ -325,8 +321,7 @@
 <p>
           There's just one final step now, and that's to write the test data to file:
         </p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Enter name of test data file [default=beta_data.ipp]"</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Enter name of test data file [default=beta_data.ipp]"</span><span class="special">;</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">getline</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cin</span><span class="special">,</span> <span class="identifier">line</span><span class="special">);</span>
 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">trim</span><span class="special">(</span><span class="identifier">line</span><span class="special">);</span>
 <span class="keyword">if</span><span class="special">(</span><span class="identifier">line</span> <span class="special">==</span> <span class="string">""</span><span class="special">)</span>
@@ -337,8 +332,7 @@
 <p>
           The format of the test data looks something like:
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">SC_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">BOOST_JOIN</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">L</span><span class="special">))</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">SC_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="keyword">static_cast</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;(</span><span class="identifier">BOOST_JOIN</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">L</span><span class="special">))</span>
    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">3</span><span class="special">&gt;,</span> <span class="number">1830</span><span class="special">&gt;</span>
    <span class="identifier">beta_med_data</span> <span class="special">=</span> <span class="special">{</span>
       <span class="identifier">SC_</span><span class="special">(</span><span class="number">0.4883005917072296142578125</span><span class="special">),</span>
@@ -381,7 +375,7 @@
           used by default as it's rather hard on the compiler when the table is large.
         </p>
 <a name="math_toolkit.toolkit.internals2.test_data.example_3__profiling_a_continued_fraction_for_convergence_and_accuracy"></a><h6>
-<a name="id731459"></a>
+<a name="id730702"></a>
           <a href="test_data.html#math_toolkit.toolkit.internals2.test_data.example_3__profiling_a_continued_fraction_for_convergence_and_accuracy">Example
           3: Profiling a Continued Fraction for Convergence and Accuracy</a>
         </h6>
@@ -391,8 +385,7 @@
           incomplete gamma function, the following function object returns the next
           a<sub>N </sub> and b<sub>N </sub> of the continued fraction each time it's invoked:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">upper_incomplete_gamma_fract</span>
 <span class="special">{</span>
 <span class="keyword">private</span><span class="special">:</span>
@@ -420,8 +413,7 @@
           class test_data will unpack the tuple for us, and create one column of
           data for each element in the tuple (in addition to the input parameters):
         </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test_data</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">gamma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">ntl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -460,8 +452,7 @@
           whatever type <code class="computeroutput"><span class="identifier">T</span></code> we may
           be interested in:
         </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
    <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">tools</span><span class="special">;</span>
    <span class="comment">// create an object to hold the data:
@@ -476,8 +467,7 @@
 <p>
           This time there's no need to plot a graph, the first few rows are:
         </p>
-<pre class="programlisting">
-<span class="identifier">a</span> <span class="keyword">and</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">Error</span><span class="special">/</span><span class="identifier">epsilon</span><span class="special">,</span> <span class="identifier">Iterations</span> <span class="identifier">required</span>
+<pre class="programlisting"><span class="identifier">a</span> <span class="keyword">and</span> <span class="identifier">z</span><span class="special">,</span> <span class="identifier">Error</span><span class="special">/</span><span class="identifier">epsilon</span><span class="special">,</span> <span class="identifier">Iterations</span> <span class="identifier">required</span>
 
 <span class="number">0.01</span><span class="special">,</span> <span class="number">9723.14</span><span class="special">,</span> <span class="number">4726</span>
 <span class="number">1.0099</span><span class="special">,</span> <span class="number">9.54818</span><span class="special">,</span> <span class="number">87</span>
@@ -491,7 +481,7 @@
           of a and z.
         </p>
 <a name="math_toolkit.toolkit.internals2.test_data.reference"></a><h5>
-<a name="id733702"></a>
+<a name="id732946"></a>
           <a href="test_data.html#math_toolkit.toolkit.internals2.test_data.reference">reference</a>
         </h5>
 <a name="test_data_reference"></a><p>
@@ -500,24 +490,21 @@
           Most of this tool has been described already in the examples above, we'll
           just add the following notes on the non-member functions:
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">make_random_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">start_range</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">end_range</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n_points</span><span class="special">);</span>
 </pre>
 <p>
           Tells class test_data to test <span class="emphasis"><em>n_points</em></span> random values
           in the range [start_range,end_range].
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">make_periodic_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">start_range</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">end_range</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">n_points</span><span class="special">);</span>
 </pre>
 <p>
           Tells class test_data to test <span class="emphasis"><em>n_points</em></span> evenly spaced
           values in the range [start_range,end_range].
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">make_power_param</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">basis</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">start_exponent</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">end_exponent</span><span class="special">);</span>
 </pre>
 <p>
@@ -525,8 +512,7 @@
           2<sup>expon</sup></em></span> for each <span class="emphasis"><em>expon</em></span> in the range [start_exponent,
           end_exponent], and <span class="emphasis"><em>R</em></span> a random number in [0.5, 1].
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">get_user_parameter_info</span><span class="special">(</span><span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&amp;</span> <span class="identifier">info</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">param_name</span><span class="special">);</span>
 </pre>
 <p>
@@ -536,8 +522,7 @@
           Finally, if we don't want the parameter to be included in the output, we
           can tell test_data by setting it a "dummy parameter":
         </p>
-<pre class="programlisting">
-<span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">make_random_param</span><span class="special">(</span><span class="number">2.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">,</span> <span class="number">10</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">parameter_info</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">p</span> <span class="special">=</span> <span class="identifier">make_random_param</span><span class="special">(</span><span class="number">2.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">,</span> <span class="number">10</span><span class="special">);</span>
 <span class="identifier">p</span><span class="special">.</span><span class="identifier">type</span> <span class="special">|=</span> <span class="identifier">dummy_param</span><span class="special">;</span>
 </pre>
 <p>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,12 +33,10 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">std_real_concept</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">std_real_concept</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">concepts</span><span class="special">{</span>
 
@@ -80,12 +78,10 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">real_concept</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">real_concept</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">concepts</span><span class="special">{</span>
 
@@ -117,12 +113,10 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">distribution</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">/</span><span class="identifier">distribution</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
       </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">concepts</span><span class="special">{</span>
 

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -42,7 +42,7 @@
         behaves just like a built in floating point type.
       </p>
 <a name="math_toolkit.using_udt.concepts.basic_arithmetic_requirements"></a><h5>
-<a name="id734711"></a>
+<a name="id733954"></a>
         <a href="concepts.html#math_toolkit.using_udt.concepts.basic_arithmetic_requirements">Basic
         Arithmetic Requirements</a>
       </h5>
@@ -1034,7 +1034,7 @@
 </td></tr>
 </table></div>
 <a name="math_toolkit.using_udt.concepts.standard_library_support_requirements"></a><h5>
-<a name="id737780"></a>
+<a name="id737022"></a>
         <a href="concepts.html#math_toolkit.using_udt.concepts.standard_library_support_requirements">Standard
         Library Support Requirements</a>
       </h5>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,10 +12,10 @@
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
-<td align="center">Home</td>
+<td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/math.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/math.qbk (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/math.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -265,6 +265,10 @@
 ] [/ caution]
 ] [/ template discrete_quantile_warning]
 
+This manual is also available in
+[@http:svn.boost.org/svn/boost/sandbox/pdf/math/release/math.pdf
+printer friendly PDF format].
+
 [section:main_overview Overview]
 
 [include overview.qbk]

Modified: branches/proto/v3/libs/math/doc/sf_and_dist/references.qbk
==============================================================================
--- branches/proto/v3/libs/math/doc/sf_and_dist/references.qbk (original)
+++ branches/proto/v3/libs/math/doc/sf_and_dist/references.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -50,7 +50,7 @@
 
 [@http://www.csit.fsu.edu/~burkardt/cpp_src/dcdflib/dcdflib.html C++ version].
 
-[@lib.stat.cmu.edu/general/cdflib CDFLIB Library of Fortran Routines for Cumulative Distribution functions.]
+[@http://lib.stat.cmu.edu/general/cdflib CDFLIB Library of Fortran Routines for Cumulative Distribution functions.]
 
 [@http://www.csit.fsu.edu/~burkardt/f_src/dcdflib/dcdflib.html DCDFLIB C++ version]
 DCDFLIB is a library of C++ routines, using double precision arithmetic, for evaluating cumulative probability density functions.

Modified: branches/proto/v3/libs/math/example/policy_eg_8.cpp
==============================================================================
--- branches/proto/v3/libs/math/example/policy_eg_8.cpp (original)
+++ branches/proto/v3/libs/math/example/policy_eg_8.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -25,7 +25,7 @@
 These are forward declared, but not defined in
 boost/math/policies/error_handling.hpp like this:
 
- namespace boost{ namespace math{ namespace policy{
+ namespace boost{ namespace math{ namespace policies{
 
    template <class T>
    T user_domain_error(const char* function, const char* message, const T& val);

Modified: branches/proto/v3/libs/math/test/common_factor_test.cpp
==============================================================================
--- branches/proto/v3/libs/math/test/common_factor_test.cpp (original)
+++ branches/proto/v3/libs/math/test/common_factor_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -129,6 +129,7 @@
 
 } // namespace
 
+#define BOOST_NO_MACRO_EXPAND /**/
 
 // Specialize numeric_limits for _some_ of our types
 namespace std
@@ -143,8 +144,8 @@
 public:
     BOOST_STATIC_CONSTANT(bool, is_specialized = limits_type::is_specialized);
 
- static MyInt1 min() throw() { return limits_type::min(); }
- static MyInt1 max() throw() { return limits_type::max(); }
+ static MyInt1 min BOOST_NO_MACRO_EXPAND() throw() { return (limits_type::min)(); }
+ static MyInt1 max BOOST_NO_MACRO_EXPAND() throw() { return (limits_type::max)(); }
 
     BOOST_STATIC_CONSTANT(int, digits = limits_type::digits);
     BOOST_STATIC_CONSTANT(int, digits10 = limits_type::digits10);
@@ -190,8 +191,8 @@
 public:
     BOOST_STATIC_CONSTANT(bool, is_specialized = limits_type::is_specialized);
 
- static MyUnsigned1 min() throw() { return limits_type::min(); }
- static MyUnsigned1 max() throw() { return limits_type::max(); }
+ static MyUnsigned1 min BOOST_NO_MACRO_EXPAND() throw() { return (limits_type::min)(); }
+ static MyUnsigned1 max BOOST_NO_MACRO_EXPAND() throw() { return (limits_type::max)(); }
 
     BOOST_STATIC_CONSTANT(int, digits = limits_type::digits);
     BOOST_STATIC_CONSTANT(int, digits10 = limits_type::digits10);

Modified: branches/proto/v3/libs/mpi/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/mpi/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/mpi/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -82,6 +82,7 @@
         python/datatypes.cpp
         python/documentation.cpp
         python/py_environment.cpp
+ python/py_nonblocking.cpp
         python/py_exception.cpp
         python/module.cpp
         python/py_request.cpp

Modified: branches/proto/v3/libs/mpi/build/__init__.py
==============================================================================
--- branches/proto/v3/libs/mpi/build/__init__.py (original)
+++ branches/proto/v3/libs/mpi/build/__init__.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,10 +1,10 @@
 import sys
 if sys.platform == 'linux2':
- import dl
+ import DLFCN as dl
     flags = sys.getdlopenflags()
     sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
     import mpi
     sys.setdlopenflags(flags)
 else:
-import mpi
+ import mpi
 

Modified: branches/proto/v3/libs/mpi/doc/mpi.qbk
==============================================================================
--- branches/proto/v3/libs/mpi/doc/mpi.qbk (original)
+++ branches/proto/v3/libs/mpi/doc/mpi.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2025,6 +2025,9 @@
 
 [section:history Revision History]
 
+* *Boost 1.36.0*:
+ * Support for non-blocking operations in Python, from Andreas Klöckner
+
 * *Boost 1.35.0*: Initial release, containing the following post-review changes
   * Support for arrays in all collective operations
   * Support default-construction of [classref boost::mpi::environment environment]

Modified: branches/proto/v3/libs/mpi/example/python/hello_world.py
==============================================================================
--- branches/proto/v3/libs/mpi/example/python/hello_world.py (original)
+++ branches/proto/v3/libs/mpi/example/python/hello_world.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import boost.parallel.mpi as mpi
 

Modified: branches/proto/v3/libs/mpi/src/python/documentation.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/documentation.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/documentation.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -132,10 +132,10 @@
   "\n"
   " Once you have registered your C++ data structures, you can extract\n"
   " the skeleton for an instance of that data structure with skeleton().\n"
- " The resulting skeleton_proxy can be transmitted via the normal send\n"
+ " The resulting SkeletonProxy can be transmitted via the normal send\n"
   " routine, e.g.,\n\n"
   " mpi.world.send(1, 0, skeleton(my_data_structure))\n\n"
- " skeleton_proxy objects can be received on the other end via recv(),\n"
+ " SkeletonProxy objects can be received on the other end via recv(),\n"
   " which stores a newly-created instance of your data structure with the\n"
   " same `shape' as the sender in its `object' attribute:\n\n"
   " shape = mpi.world.recv(0, 0)\n"
@@ -212,6 +212,86 @@
   "Determine if the MPI environment has already been finalized.\n";
 
 /***********************************************************
+ * nonblocking documentation *
+ ***********************************************************/
+const char* request_list_init_docstring=
+ "Without arguments, constructs an empty RequestList.\n"
+ "With one argument `iterable', copies request objects from this\n"
+ "iterable to the new RequestList.\n";
+
+const char* nonblocking_wait_any_docstring =
+ "Waits until any of the given requests has been completed. It provides\n"
+ "functionality equivalent to MPI_Waitany.\n"
+ "\n"
+ "requests must be a RequestList instance.\n"
+ "\n"
+ "Returns a triple (value, status, index) consisting of received value\n"
+ "(or None), the Status object for the completed request, and its index\n"
+ "in the RequestList.\n";
+
+const char* nonblocking_test_any_docstring =
+ "Tests if any of the given requests have been completed, but does not wait\n"
+ "for completion. It provides functionality equivalent to MPI_Testany.\n"
+ "\n"
+ "requests must be a RequestList instance.\n"
+ "\n"
+ "Returns a triple (value, status, index) like wait_any or None if no request\n"
+ "is complete.\n";
+
+const char* nonblocking_wait_all_docstring =
+ "Waits until all of the given requests have been completed. It provides\n"
+ "functionality equivalent to MPI_Waitall.\n"
+ "\n"
+ "requests must be a RequestList instance.\n"
+ "\n"
+ "If the second parameter `callable' is provided, it is called with each\n"
+ "completed request's received value (or None) and it s Status object as\n"
+ "its arguments. The calls occur in the order given by the `requests' list.\n";
+
+const char* nonblocking_test_all_docstring =
+ "Tests if all of the given requests have been completed. It provides\n"
+ "functionality equivalent to MPI_Testall.\n"
+ "\n"
+ "Returns True if all requests have been completed.\n"
+ "\n"
+ "requests must be a RequestList instance.\n"
+ "\n"
+ "If the second parameter `callable' is provided, it is called with each\n"
+ "completed request's received value (or None) and it s Status object as\n"
+ "its arguments. The calls occur in the order given by the `requests' list.\n";
+
+const char* nonblocking_wait_some_docstring =
+ "Waits until at least one of the given requests has completed. It\n"
+ "then completes all of the requests it can, partitioning the input\n"
+ "sequence into pending requests followed by completed requests.\n"
+ "\n"
+ "This routine provides functionality equivalent to MPI_Waitsome.\n"
+ "\n"
+ "Returns the index of the first completed request."
+ "\n"
+ "requests must be a RequestList instance.\n"
+ "\n"
+ "If the second parameter `callable' is provided, it is called with each\n"
+ "completed request's received value (or None) and it s Status object as\n"
+ "its arguments. The calls occur in the order given by the `requests' list.\n";
+
+const char* nonblocking_test_some_docstring =
+ "Tests to see if any of the given requests has completed. It completes\n"
+ "all of the requests it can, partitioning the input sequence into pending\n"
+ "requests followed by completed requests. This routine is similar to\n"
+ "wait_some, but does not wait until any requests have completed.\n"
+ "\n"
+ "This routine provides functionality equivalent to MPI_Testsome.\n"
+ "\n"
+ "Returns the index of the first completed request."
+ "\n"
+ "requests must be a RequestList instance.\n"
+ "\n"
+ "If the second parameter `callable' is provided, it is called with each\n"
+ "completed request's received value (or None) and it s Status object as\n"
+ "its arguments. The calls occur in the order given by the `requests' list.\n";
+
+/***********************************************************
  * exception documentation *
  ***********************************************************/
 const char* exception_docstring =
@@ -310,14 +390,14 @@
  * communicator documentation *
  ***********************************************************/
 const char* communicator_docstring =
- "The communicator class abstracts a set of communicating\n"
+ "The Communicator class abstracts a set of communicating\n"
  "processes in MPI. All of the processes that belong to a certain\n"
  "communicator can determine the size of the communicator, their rank\n"
  "within the communicator, and communicate with any other processes\n"
  "in the communicator.\n";
 
 const char* communicator_default_constructor_docstring =
- "Build a new Boost.MPI communicator for MPI_COMM_WORLD.\n";
+ "Build a new Boost.MPI Communicator instance for MPI_COMM_WORLD.\n";
 
 const char* communicator_rank_docstring =
   "Returns the rank of the process in the communicator, which will be a\n"
@@ -335,10 +415,10 @@
   " - For C++ objects registered via register_serialized(), the value\n"
   " will be serialized and transmitted.\n"
   "\n"
- " - For skeleton_proxy objects, the skeleton of the object will be\n"
+ " - For SkeletonProxy objects, the skeleton of the object will be\n"
   " serialized and transmitted.\n"
   "\n"
- " - For content objects, the content will be transmitted directly.\n"
+ " - For Content objects, the content will be transmitted directly.\n"
   " This content can be received by a matching recv/irecv call that\n"
   " provides a suitable `buffer' argument.\n"
   "\n"
@@ -351,12 +431,12 @@
   "the message can be received from any process. Likewise, if the tag\n"
   "parameter is not specified, a message with any tag can be received.\n"
   "If return_status is True, returns a tuple containing the received\n"
- "object followed by a status object describing the communication.\n"
+ "object followed by a Status object describing the communication.\n"
   "Otherwise, recv() returns just the received object.\n"
   "\n"
   "When receiving the content of a data type that has been sent separately\n"
   "from its skeleton, user code must provide a value for the `buffer'\n"
- "argument. This value should be the content object returned from\n"
+ "argument. This value should be the Content object returned from\n"
   "get_content().\n";
 
 const char* communicator_isend_docstring =
@@ -364,7 +444,7 @@
   "tag to the process with rank dest. It can be received by the\n"
   "destination process with a matching recv call. The value will be\n"
   "transmitted in the same way as with send().\n"
- "This routine returns a request object, which can be used to query\n"
+ "This routine returns a Request object, which can be used to query\n"
   "when the transmission has completed, wait for its completion, or\n"
   "cancel the transmission.\n";
 
@@ -373,15 +453,15 @@
   "source with the given tag. If the source parameter is not specified,\n"
   "the message can be received from any process. Likewise, if the tag\n"
   "parameter is not specified, a message with any tag can be received.\n"
- "This routine returns a request object, which can be used to query\n"
+ "This routine returns a Request object, which can be used to query\n"
   "when the transmission has completed, wait for its completion, or\n"
   "cancel the transmission. The received value be accessible\n"
- "through the `value' attribute of the request object once transmission\n"
+ "through the `value' attribute of the Request object once transmission\n"
   "has completed.\n"
   "\n"
   "As with the recv() routine, when receiving the content of a data type\n"
   "that has been sent separately from its skeleton, user code must provide\n"
- "a value for the `buffer' argument. This value should be the content\n"
+ "a value for the `buffer' argument. This value should be the Content\n"
   "object returned from get_content().\n";
 
  const char* communicator_probe_docstring =
@@ -389,7 +469,7 @@
   "is available to be received. It then returns information about\n"
   "that message. If source is omitted, a message from any process\n"
   "will match. If tag is omitted, a message with any tag will match.\n"
- "The actual source and tag can be retrieved from the returned status\n"
+ "The actual source and tag can be retrieved from the returned Status\n"
   "object. To check if a message is available without blocking, use\n"
   "iprobe.\n";
 
@@ -399,7 +479,7 @@
   "message; otherwise, it returns None. If source is omitted, a message\n"
   "from any process will match. If tag is omitted, a message with any\n"
   "tag will match. The actual source and tag can be retrieved from the\n"
- "returned status object. To wait for a message to become available, use\n"
+ "returned Status object. To wait for a message to become available, use\n"
   "probe.\n";
 
 const char* communicator_barrier_docstring =
@@ -418,8 +498,8 @@
   "the ordering of processes with the same color in the resulting\n"
   "communicator. If omitted, the key will default to the rank of\n"
   "the process in the current communicator.\n\n"
- "Returns a new communicator containing all of the processes in\n"
- "this communicator that have the same color.\n";
+ "Returns a new Communicator instance containing all of the \n"
+ "processes in this communicator that have the same color.\n";
 
 const char* communicator_abort_docstring =
   "Makes a \"best attempt\" to abort all of the tasks in the group of\n"
@@ -435,36 +515,46 @@
  * request documentation *
  ***********************************************************/
 const char* request_docstring =
- "The request class contains information about a non-blocking send\n"
+ "The Request class contains information about a non-blocking send\n"
   "or receive and will be returned from isend or irecv, respectively.\n"
- "When a request object represents a completed irecv, the `value' \n"
+ "When a Request object represents a completed irecv, the `value' \n"
   "attribute will contain the received value.\n";
 
+const char* request_with_value_docstring =
+ "This class is an implementation detail. Any call that accepts a\n"
+ "Request also accepts a RequestWithValue, and vice versa.\n";
+
 const char* request_wait_docstring =
   "Wait until the communication associated with this request has\n"
   "completed. For a request that is associated with an isend(), returns\n"
- "a status object describing the communication. For an irecv()\n"
+ "a Status object describing the communication. For an irecv()\n"
   "operation, returns the received value by default. However, when\n"
- "return_status=True, a (value, status) pair is returned by a.\n"
+ "return_status=True, a (value, status) pair is returned by a\n"
   "completed irecv request.\n";
 
 const char* request_test_docstring =
   "Determine whether the communication associated with this request\n"
- "has completed successfully. If so, returns the status object\n"
+ "has completed successfully. If so, returns the Status object\n"
   "describing the communication (for an isend request) or a tuple\n"
- "containing the received value and a status object (for an irecv\n"
- "request). Note that once test() returns a status object, the\n"
+ "containing the received value and a Status object (for an irecv\n"
+ "request). Note that once test() returns a Status object, the\n"
   "request has completed and wait() should not be called.\n";
 
 const char* request_cancel_docstring =
   "Cancel a pending communication, assuming it has not already been\n"
   "completed.\n";
 
+const char* request_value_docstring =
+ "If this request originated in an irecv(), this property makes the"
+ "sent value accessible once the request completes.\n"
+ "\n"
+ "If no value is available, ValueError is raised.\n";
+
 /***********************************************************
  * skeleton/content documentation *
  ***********************************************************/
 const char* object_without_skeleton_docstring =
- "The object_without_skeleton class is an exception class used only\n"
+ "The ObjectWithoutSkeleton class is an exception class used only\n"
   "when the skeleton() or get_content() function is called with an\n"
   "object that is not supported by the skeleton/content mechanism.\n"
   "All C++ types for which skeletons and content can be transmitted\n"
@@ -475,13 +565,13 @@
   "The object on which skeleton() or get_content() was invoked.\n";
 
 const char* skeleton_proxy_docstring =
- "The skeleton_proxy class is used to represent the skeleton of an\n"
- "object. The skeleton_proxy can be used as the value parameter of\n"
+ "The SkeletonProxy class is used to represent the skeleton of an\n"
+ "object. The SkeletonProxy can be used as the value parameter of\n"
   "send() or isend() operations, but instead of transmitting the\n"
   "entire object, only its skeleton (\"shape\") will be sent, without\n"
   "the actual data. Its content can then be transmitted, separately.\n"
   "\n"
- "User code cannot generate skeleton_proxy instances directly. To\n"
+ "User code cannot generate SkeletonProxy instances directly. To\n"
   "refer to the skeleton of an object, use skeleton(object). Skeletons\n"
   "can also be received with the recv() and irecv() methods.\n"
   "\n"
@@ -503,7 +593,7 @@
   "skeleton/content mechanism.\n";
 
 const char* skeleton_docstring =
- "The skeleton function retrieves the skeleton_proxy for its object\n"
+ "The skeleton function retrieves the SkeletonProxy for its object\n"
   "parameter, allowing the transmission of the skeleton (or \"shape\")\n"
   "of the object separately from its data. The skeleton/content mechanism\n"
   "is useful when a large data structure remains structurally the same\n"
@@ -534,7 +624,7 @@
  * status documentation *
  ***********************************************************/
 const char* status_docstring =
- "The status class stores information about a given message, including\n"
+ "The Status class stores information about a given message, including\n"
   "its source, tag, and whether the message transmission was cancelled\n"
   "or resulted in an error.\n";
 
@@ -554,7 +644,7 @@
  * timer documentation *
  ***********************************************************/
 const char* timer_docstring =
- "The timer class is a simple wrapper around the MPI timing facilities.\n";
+ "The Timer class is a simple wrapper around the MPI timing facilities.\n";
 
 const char* timer_default_constructor_docstring =
   "Initializes the timer. After this call, elapsed == 0.\n";

Modified: branches/proto/v3/libs/mpi/src/python/module.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/module.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/module.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -27,6 +27,7 @@
 extern void export_request();
 extern void export_status();
 extern void export_timer();
+extern void export_nonblocking();
 
 extern const char* module_docstring;
 
@@ -35,7 +36,7 @@
   // Setup module documentation
   scope().attr("__doc__") = module_docstring;
   scope().attr("__author__") = "Douglas Gregor <doug.gregor_at_[hidden]>";
- scope().attr("__date__") = "$LastChangedDate: 2006-07-16 15:25:47 -0400 (Sun, 16 Jul 2006) $";
+ scope().attr("__date__") = "$LastChangedDate$";
   scope().attr("__version__") = "$Revision$";
   scope().attr("__copyright__") = "Copyright (C) 2006 Douglas Gregor";
   scope().attr("__license__") = "http://www.boost.org/LICENSE_1_0.txt";
@@ -48,6 +49,7 @@
   export_request();
   export_status();
   export_timer();
+ export_nonblocking();
 }
 
 } } } // end namespace boost::mpi::python

Modified: branches/proto/v3/libs/mpi/src/python/py_communicator.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/py_communicator.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/py_communicator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,6 +14,7 @@
 #include <boost/python.hpp>
 #include <boost/mpi.hpp>
 #include <boost/mpi/python/serialize.hpp>
+#include "request_with_value.hpp"
 
 using namespace boost::python;
 using namespace boost::mpi;
@@ -49,14 +50,12 @@
     return result;
 }
 
-object
+request_with_value
 communicator_irecv(const communicator& comm, int source, int tag)
 {
- using boost::python::make_tuple;
-
- object result;
- object req(comm.irecv(source, tag, result));
- req.attr("value") = result;
+ boost::shared_ptr<object> result(new object());
+ request_with_value req(comm.irecv(source, tag, *result));
+ req.m_internal_value = result;
   return req;
 }
 
@@ -76,7 +75,7 @@
   using boost::python::arg;
   using boost::python::object;
   
- class_<communicator> comm("communicator", communicator_docstring);
+ class_<communicator> comm("Communicator", communicator_docstring);
   comm
     .def(init<>())
     .add_property("rank", &communicator::rank, communicator_rank_docstring)

Modified: branches/proto/v3/libs/mpi/src/python/py_exception.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/py_exception.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/py_exception.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,9 +30,8 @@
 
 str exception_str(const exception& e)
 {
- return str("MPI routine `" + std::string(e.routine()) +
- "' returned error code " +
- lexical_cast<std::string>(e.result_code()));
+ return str(std::string(e.what()) +
+ " (code " + lexical_cast<std::string>(e.result_code())+")");
 }
 
 void export_exception()
@@ -42,10 +41,10 @@
   
   object type =
     class_<exception>
- ("exception", exception_docstring, no_init)
+ ("Exception", exception_docstring, no_init)
       .add_property("what", &exception::what, exception_what_docstring)
       .add_property("routine", &exception::what, exception_routine_docstring)
- .add_property("result_code", &exception::what,
+ .add_property("result_code", &exception::result_code,
                     exception_result_code_docstring)
       .def("__str__", &exception_str)
     ;

Modified: branches/proto/v3/libs/mpi/src/python/py_request.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/py_request.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/py_request.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,52 +13,90 @@
  */
 #include <boost/python.hpp>
 #include <boost/mpi.hpp>
+#include "request_with_value.hpp"
 
 using namespace boost::python;
 using namespace boost::mpi;
 
-namespace boost { namespace mpi { namespace python {
-
-extern const char* request_docstring;
-extern const char* request_wait_docstring;
-extern const char* request_test_docstring;
-extern const char* request_cancel_docstring;
+const object python::request_with_value::get_value() const
+{
+ if (m_internal_value.get())
+ return *m_internal_value;
+ else if (m_external_value)
+ return *m_external_value;
+ else
+ {
+ PyErr_SetString(PyExc_ValueError, "request value not available");
+ throw boost::python::error_already_set();
+ }
+}
 
-object request_wait(object req_obj)
+const object python::request_with_value::get_value_or_none() const
 {
- request& req = extract<request&>(req_obj)();
- status stat = req.wait();
- if (PyObject_HasAttrString(req_obj.ptr(), "value"))
- return boost::python::make_tuple(stat, req_obj.attr("value"));
+ if (m_internal_value.get())
+ return *m_internal_value;
+ else if (m_external_value)
+ return *m_external_value;
   else
- return object(stat);
+ return object();
 }
 
-object request_test(object req_obj)
+const object python::request_with_value::wrap_wait()
 {
- request& req = extract<request&>(req_obj)();
+ status stat = request::wait();
+ if (m_internal_value.get() || m_external_value)
+ return boost::python::make_tuple(get_value(), stat);
+ else
+ return object(stat);
+}
 
- if (optional<status> stat = req.test())
- {
- if (PyObject_HasAttrString(req_obj.ptr(), "value"))
- return boost::python::make_tuple(stat, req_obj.attr("value"));
- else
- return object(stat);
- }
+const object python::request_with_value::wrap_test()
+{
+ ::boost::optional<status> stat = request::test();
+ if (stat)
+ {
+ if (m_internal_value.get() || m_external_value)
+ return boost::python::make_tuple(get_value(), *stat);
+ else
+ return object(*stat);
+ }
   else
     return object();
 }
 
+
+namespace boost { namespace mpi { namespace python {
+
+extern const char* request_docstring;
+extern const char* request_with_value_docstring;
+extern const char* request_wait_docstring;
+extern const char* request_test_docstring;
+extern const char* request_cancel_docstring;
+extern const char* request_value_docstring;
+
 void export_request()
 {
   using boost::python::arg;
   using boost::python::object;
   
- class_<request>("request", request_docstring, no_init)
- .def("wait", &request_wait, request_wait_docstring)
- .def("test", &request_test, request_test_docstring)
- .def("cancel", &request::cancel, request_cancel_docstring)
- ;
+ {
+ typedef request cl;
+ class_<cl>("Request", request_docstring, no_init)
+ .def("wait", &cl::wait, request_wait_docstring)
+ .def("test", &cl::test, request_test_docstring)
+ .def("cancel", &cl::cancel, request_cancel_docstring)
+ ;
+ }
+ {
+ typedef request_with_value cl;
+ class_<cl, bases<request> >(
+ "RequestWithValue", request_with_value_docstring, no_init)
+ .def("wait", &cl::wrap_wait, request_wait_docstring)
+ .def("test", &cl::wrap_test, request_test_docstring)
+ ;
+ }
+
+ implicitly_convertible<request, request_with_value>();
 }
 
 } } } // end namespace boost::mpi::python

Modified: branches/proto/v3/libs/mpi/src/python/py_timer.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/py_timer.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/py_timer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -32,7 +32,7 @@
   using boost::python::arg;
   using boost::python::object;
   
- class_<timer>("timer", timer_docstring)
+ class_<timer>("Timer", timer_docstring)
     .def(init<>())
     .def("restart", &timer::restart, timer_restart_docstring)
     .add_property("elapsed", &timer::elapsed, timer_elapsed_docstring)

Modified: branches/proto/v3/libs/mpi/src/python/skeleton_and_content.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/skeleton_and_content.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/skeleton_and_content.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,6 +16,7 @@
 #include <typeinfo>
 #include <list>
 #include "utility.hpp"
+#include "request_with_value.hpp"
 
 using namespace boost::python;
 using namespace boost::mpi;
@@ -114,14 +115,12 @@
 /// Receive the content of a Python object. The request object's value
 /// attribute will reference the object whose content is being
 /// received, not the content wrapper.
-object
+request_with_value
 communicator_irecv_content(const communicator& comm, int source, int tag,
- const content& c)
+ content& c)
 {
- using boost::python::make_tuple;
-
- object req(comm.irecv(source, tag, c.base()));
- req.attr("value") = c.object;
+ request_with_value req(comm.irecv(source, tag, c.base()));
+ req.m_external_value = &c.object;
   return req;
 }
 
@@ -140,7 +139,7 @@
   // Expose the object_without_skeleton exception
   object type =
     class_<object_without_skeleton>
- ("object_without_skeleton", object_without_skeleton_docstring, no_init)
+ ("ObjectWithoutSkeleton", object_without_skeleton_docstring, no_init)
       .def_readonly("object", &object_without_skeleton::value,
                     object_without_skeleton_object_docstring)
       .def("__str__", &object_without_skeleton_str)
@@ -150,11 +149,11 @@
   // Expose the Python variants of "skeleton_proxy" and "content", and
   // their generator functions.
   detail::skeleton_proxy_base_type =
- class_<skeleton_proxy_base>("skeleton_proxy", skeleton_proxy_docstring,
+ class_<skeleton_proxy_base>("SkeletonProxy", skeleton_proxy_docstring,
                                 no_init)
       .def_readonly("object", &skeleton_proxy_base::object,
                     skeleton_proxy_object_docstring);
- class_<content>("content", content_docstring, no_init);
+ class_<content>("Content", content_docstring, no_init);
   def("skeleton", &skeleton, arg("object"), skeleton_docstring);
   def("get_content", &get_content, arg("object"), get_content_docstring);
 
@@ -166,7 +165,9 @@
          (arg("source") = any_source, arg("tag") = any_tag, arg("buffer"),
           arg("return_status") = false))
     .def("irecv", communicator_irecv_content,
- (arg("source") = any_source, arg("tag") = any_tag, arg("buffer")));
+ (arg("source") = any_source, arg("tag") = any_tag, arg("buffer")),
+ with_custodian_and_ward_postcall<0, 4>()
+ );
 }
 
 } } } // end namespace boost::mpi::python

Modified: branches/proto/v3/libs/mpi/src/python/status.cpp
==============================================================================
--- branches/proto/v3/libs/mpi/src/python/status.cpp (original)
+++ branches/proto/v3/libs/mpi/src/python/status.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,7 +30,7 @@
   using boost::python::arg;
   using boost::python::object;
   
- class_<status>("status", status_docstring, no_init)
+ class_<status>("Status", status_docstring, no_init)
     .add_property("source", &status::source, status_source_docstring)
     .add_property("tag", &status::tag, status_tag_docstring)
     .add_property("error", &status::error, status_error_docstring)

Modified: branches/proto/v3/libs/mpi/test/python/all_gather_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/all_gather_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/all_gather_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test all_gather() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/all_reduce_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/all_reduce_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/all_reduce_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test all_reduce() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/all_to_all_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/all_to_all_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/all_to_all_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test all_to_all() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/broadcast_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/broadcast_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/broadcast_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test broadcast() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/gather_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/gather_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/gather_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test gather() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/generators.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/generators.py (original)
+++ branches/proto/v3/libs/mpi/test/python/generators.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Value generators used in the Boost.MPI Python regression tests
 def int_generator(p):

Modified: branches/proto/v3/libs/mpi/test/python/reduce_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/reduce_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/reduce_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test reduce() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/ring_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/ring_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/ring_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test basic communication.
 

Modified: branches/proto/v3/libs/mpi/test/python/scan_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/scan_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/scan_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test scan() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/scatter_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/scatter_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/scatter_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test scatter() collective.
 

Modified: branches/proto/v3/libs/mpi/test/python/skeleton_content_test.py
==============================================================================
--- branches/proto/v3/libs/mpi/test/python/skeleton_content_test.py (original)
+++ branches/proto/v3/libs/mpi/test/python/skeleton_content_test.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 
 # Use, modification and distribution is subject to the Boost Software
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 # Test skeleton/content
 

Modified: branches/proto/v3/libs/mpl/doc/refmanual/vector.html
==============================================================================
--- branches/proto/v3/libs/mpl/doc/refmanual/vector.html (original)
+++ branches/proto/v3/libs/mpl/doc/refmanual/vector.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -153,7 +153,7 @@
 </tr>
 <tr><td><tt class="literal"><span class="pre">push_front&lt;v,x&gt;::type</span></tt></td>
 <td>A new <tt class="literal"><span class="pre">vector</span></tt> of following elements:
-[<tt class="literal"><span class="pre">begin&lt;v&gt;::type</span></tt>, <tt class="literal"><span class="pre">end&lt;v&gt;::type</span></tt>), <tt class="literal"><span class="pre">x</span></tt>; see <a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a>.</td>
+<tt class="literal"><span class="pre">x</span></tt>, [<tt class="literal"><span class="pre">begin&lt;v&gt;::type</span></tt>, <tt class="literal"><span class="pre">end&lt;v&gt;::type</span></tt>); see <a class="reference" href="./front-extensible-sequence.html">Front Extensible Sequence</a>.</td>
 </tr>
 <tr><td><tt class="literal"><span class="pre">pop_front&lt;v&gt;::type</span></tt></td>
 <td>A new <tt class="literal"><span class="pre">vector</span></tt> of following elements:

Modified: branches/proto/v3/libs/mpl/doc/tutorial/broken-integral-constant.html
==============================================================================
--- branches/proto/v3/libs/mpl/doc/tutorial/broken-integral-constant.html (original)
+++ branches/proto/v3/libs/mpl/doc/tutorial/broken-integral-constant.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -44,7 +44,7 @@
 for one compiler to break another one and vice-versa. If this
 sounds like a maintenance nightmare to you, it is! If you are
 interested in the specific list of issues, please refer to John
-Maddock's excellent &quot;<a class="reference" href="../../../../more/int_const_guidelines.htm" target="_top">Coding Guidelines for Integral Constant
+Maddock's excellent &quot;<a class="reference" href="http://www.boost.org/more/int_const_guidelines.htm" target="_top">Coding Guidelines for Integral Constant
 Expressions</a>&quot; summary. For the purpose of our discission here, it
 is sufficient to say that if your code has to work on one of the
 compilers listed as problematic in this area, you can safely assume

Modified: branches/proto/v3/libs/multi_array/doc/index.html
==============================================================================
--- branches/proto/v3/libs/multi_array/doc/index.html (original)
+++ branches/proto/v3/libs/multi_array/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,8 +24,8 @@
     width="277" align="middle" height="86"></td>
     <td>Home</td>
     <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
+ <td>People</td>
+ <td>FAQ</td>
     <td>More</td>
   </tr>
 </tbody></table>
@@ -48,7 +48,7 @@
 <a href=http://www.osl.iu.edu/~garcia>Ronald Garcia</a>,
  Indiana University (<a
 HREF="mailto:garcia_at_[hidden]">garcia_at_[hidden]</a>)<br>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<a
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>)<br>
 <a href=http://www.osl.iu.edu/~lums>Andrew Lumsdaine</a>,

Modified: branches/proto/v3/libs/multi_array/doc/test_cases.html
==============================================================================
--- branches/proto/v3/libs/multi_array/doc/test_cases.html (original)
+++ branches/proto/v3/libs/multi_array/doc/test_cases.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -300,10 +300,10 @@
 <table summary="Copyright information">
 <tr valign="top">
 <td nowrap>Copyright &copy; 2001</td>
-<td>Ronald Garcia,
+<td>Ronald Garcia,
 Indiana University (<a href=
 "mailto:garcia_at_[hidden]">garcia_at_[hidden]</a>)<br>
-Jeremy Siek, Indiana
+Jeremy Siek, Indiana
 University (<a href=
 "mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</a>)<br>
 <a href="http://www.lsc.nd.edu/~lums">Andrew Lumsdaine</a>, Indiana

Modified: branches/proto/v3/libs/multi_array/doc/user.html
==============================================================================
--- branches/proto/v3/libs/multi_array/doc/user.html (original)
+++ branches/proto/v3/libs/multi_array/doc/user.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -638,7 +638,7 @@
       <li><a href="mailto:garcia_at_[hidden]">Ronald Garcia</a>
       is the primary author of the library.
 
- <li>Jeremy Siek
+ <li>Jeremy Siek
       helped with the library and provided a sounding board for ideas,
        advice, and assistance porting to Microsoft Visual C++.
 

Modified: branches/proto/v3/libs/multi_index/doc/compiler_specifics.html
==============================================================================
--- branches/proto/v3/libs/multi_index/doc/compiler_specifics.html (original)
+++ branches/proto/v3/libs/multi_index/doc/compiler_specifics.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -50,6 +50,7 @@
   <li>IBM VisualAge C++ V6.0 for AIX</li>
   <li>IBM VisualAge C++ V9.0 for AIX</li>
   <li>Intel C++ Compiler for Linux 8.1 and later</li>
+ <li>Intel C++ Compiler for Mac OS 9.1 and later</li>
   <li>Intel C++ Compiler for Windows 32-bit 7.0/7.1</li>
   <li>Intel C++ Compiler for Windows 32-bit 8.0 and later</li>
   <li>Intel C++ Compiler for Windows 64-bit 10.0</li>
@@ -137,12 +138,13 @@
   <li>GCC 3.4.3 under Linux x86-64,</li>
   <li>GCC 3.4.4 under Linux, (cygming special) under Cygwin 1.5.22,</li>
   <li>GCC 3.4.5 (mingw special) under Win32,</li>
- <li>GCC 3.4.6 under Linux x86-64,</li>
- <li>GCC 4.0.1 under Linux x86-64, (Apple builds 5363 and 5367) under Mac OS,</li>
+ <li>GCC 3.4.6 under Linux x86-64 and Solaris,</li>
+ <li>GCC 4.0.1 under Linux x86-64, (Apple builds 5363, 5367 and 5465) under Mac OS,</li>
   <li>GCC 4.1.1 under Linux x86-64,</li>
   <li>GCC 4.1.2 (OpenPKG-CURRENT) under Solaris,</li>
   <li>GCC 4.2.1 under HP-UX IA64 and Linux x86-64, (mingw32-2) under Win32,</li>
- <li>GCC 4.2.2 under Linux.</li>
+ <li>GCC 4.2.2 under Linux and Linux x86-64,</li>
+ <li>GCC 4.3.0 20080206 (experimental) under Linux.</li>
 </ul>
 Boost.MultiIndex does not work with versions 3.1 and prior of GCC.
 </p>
@@ -242,7 +244,14 @@
 
 <p>
 No problems have been detected with this compiler.
-Tested from version 8.1 to 9.1.
+Tested from version 8.1 to 10.1.
+</p>
+
+<h2><a name="intel_91_mac">Intel C++ Compiler for Mac OS 9.1 and later</a></h2>
+
+<p>
+No problems have been detected with this compiler.
+Last tested for versions 9.1 and 10.0.
 </p>
 
 <h2><a name="intel_7x_win">Intel C++ Compiler for Windows 32-bit 7.0/7.1</a></h2>
@@ -444,7 +453,7 @@
 other unrelated libraries, like the
 <a href="../../../libs/graph/doc/table_of_contents.html">Boost Graph Library</a>,
 <a href="../../../libs/multi_array/doc/index.html">Boost.MultiArray</a>,
-Boost.Regex,
+Boost.Regex,
 <a href="http://www.cgal.org/">CGAL</a> and
 <a href="http://www.mysql.com/downloads/api-mysql++.html">MySQL++</a>.
 The error is triggered, though not in a systematic manner, by the use
@@ -469,7 +478,7 @@
 <p>
 The second workaround has not been confirmed by the author, but it is given
 on the Internet in connection with this error appearing in other libraries.
-Replace line 84 of <code>&lt;xlocnum></code>
+Replace line 84 of <code>&lt;xlocnum&gt;</code>
 
 <blockquote><pre>
  <span class=preprocessor>#define</span> <span class=identifier>_VIRTUAL</span> <span class=keyword>virtual</span>
@@ -675,7 +684,6 @@
 
 <p>
 No problems have been detected with this compiler.
-The Beta 2 version of this product was used for the testing.
 </p>
 
 <h2><a name="sun_10">Sun Studio 10 for Solaris and later</a></h2>
@@ -1113,9 +1121,9 @@
 
 <br>
 
-<p>Revised November 6th 2007</p>
+<p>Revised February 7th 2008</p>
 
-<p>&copy; Copyright 2003-2007 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;oz.
+<p>&copy; Copyright 2003-2008 Joaqu&iacute;n M L&oacute;pez Mu&ntilde;oz.
 Distributed under the Boost Software
 License, Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">
 LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">

Deleted: branches/proto/v3/libs/numeric/conversion/doc/bounds.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/bounds.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,109 +0,0 @@
-<HTML>
- <HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
- <TITLE>Boost Numeric Conversion Library - Bounds</TITLE>
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
- <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
- <TR>
- <TH VALIGN="top" WIDTH="300">
- <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
- ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
- <TH VALIGN="top">
- <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-
- <H1>Header <A
- HREF="../../../../boost/numeric/conversion/bounds.hpp">boost/numeric/conversion/bounds.hpp</A></H1>
- </TH>
- </TR>
- </TABLE><HR>
- <H2>Contents</H2>
- <UL>
- <LI>Introduction</LI>
- <LI>template class bounds<N></LI>
- <LI>Examples</LI>
- <!--<LI>Implementation</LI>-->
- <!--<LI>Portability</LI>-->
- </UL> <HR>
- <H2><A NAME="introduction">Introduction</A></H2>
- <P>To determine the ranges of numeric types with std:: numeric_limits
- [18.2.1], different syntax have to be used depending on numeric type.
- Specifically, numeric_limits&lt;T&gt;::min() for integral types returns the
- minimum finite value, whereas for floating point types it returns the minimum
- positive normalized value. The difference in semantics makes client code
- unnecessarily complex and error prone. <BR> <BR>
- boost::numeric::bounds&lt;&gt; provides a consistent interface for retrieving
- the maximum finite value, the minimum finite value and the minimum positive
- normalized value (0 for integral types) for numeric types. The selection of
- implementation is performed at compile time, so there is no runtime overhead.
- <BR>
- <BR> </P> <HR>
- <H2><A NAME="bounds"><CODE>traits class bounds&lt;N&gt;</CODE></A></H2>
- <BLOCKQUOTE>
-
- <PRE>template&lt;class N&gt;
-struct bounds
-{
- static N lowest () { return <i>implementation_defined</i>; }
- static N highest () { return <i>implementation_defined</i>; }
- static N smallest() { return <i>implementation_defined</i>; }
-};</PRE>
- </BLOCKQUOTE>
- <H3>Members</H3>
- <PRE>lowest()</PRE>
- <P>Returns the minimum finite value, equivalent to
- numeric_limits&lt;T&gt;::min() when T is an integral type, and to
- -numeric_limits&lt;T&gt;::max() when T is a floating point type. </P>
- <PRE>highest()</PRE>
- <P>Returns the maximum finite value, equivalent to
- numeric_limits&lt;T&gt;::max(). </P>
- <PRE>smallest()</PRE>
-
-<P>Returns the smallest positive normalized value for floating point types with
- denormalization, or returns 0 for integral types. <BR>
- <BR>
- </P> <HR>
- <H2><A NAME="examples">Examples</A></H2>
-
-<P>The following example demonstrates the use of numeric::bounds&lt;&gt; and the
- equivalent code using numeric_limits: </P>
-
-<BLOCKQUOTE>
- <PRE>#include &lt;iostream&gt;
-
-#include &lt;boost/numeric/conversion/bounds.hpp&gt;
-#include &lt;boost/limits.hpp&gt;
-
-int main() {
-
- std::cout &lt;&lt; "numeric::bounds versus numeric_limits example.\n";
-
- std::cout &lt;&lt; "The maximum value for float:\n";
- std::cout &lt;&lt; boost::numeric::bounds&lt;float&gt;::highest() &lt;&lt; "\n";
- std::cout &lt;&lt; std::numeric_limits&lt;float&gt;::max() &lt;&lt; "\n";
-
- std::cout &lt;&lt; "The minimum value for float:\n";
- std::cout &lt;&lt; boost::numeric::bounds&lt;float&gt;::lowest() &lt;&lt; "\n";
- std::cout &lt;&lt; -std::numeric_limits&lt;float&gt;::max() &lt;&lt; "\n";
-
- std::cout &lt;&lt; "The smallest positive value for float:\n";
- std::cout &lt;&lt; boost::numeric::bounds&lt;float&gt;::smallest() &lt;&lt; "\n";
- std::cout &lt;&lt; std::numeric_limits&lt;float&gt;::min() &lt;&lt; "\n";
-
- return 0;
-}</PRE>
- </BLOCKQUOTE>
-
-<hr>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file

Deleted: branches/proto/v3/libs/numeric/conversion/doc/conversion_traits.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/conversion_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,337 +0,0 @@
-<HTML>
- <HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
- <TITLE>Boost Numeric Conversion Library - Conversion Traits</TITLE>
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
- <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
- <TR>
- <TH VALIGN="top" WIDTH="300">
- <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
- ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
- <TH VALIGN="top">
- <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
-
- <H1>Header <A
- HREF="../../../../boost/numeric/conversion/conversion_traits.hpp">boost/numeric/conversion/conversion_traits.hpp</A></H1>
- </TH>
- </TR>
- </TABLE> <HR>
- <H2>Contents</H2>
- <DL CLASS="page-index">
- <DT>Types</DT>
- </DL>
- <UL>
-
- <LI>enumeration boost::numeric::int_float_mixture_enum;</LI>
- <LI>enumeration boost::numeric::sign_mixture_enum;</LI>
- <LI>enumeration boost::numeric::udt_builtin_mixture_enum;</LI>
- <LI>template class boost::numeric::int_float_mixture<T,S></LI>
- <LI>template class boost::numeric::sign_mixture<T,S></LI>
- <LI>template class boost::numeric::udt_builtin_mixture<T,S></LI>
- <LI>template class boost::numeric::is_subranged<T,S></LI>
- <LI>template class boost::numeric::conversion_traits<T,S></LI>
- </UL>
- <DL><DT>Example(s)</DT></DL>
- <HR>
-
-<H2><A NAME="types"></A>Types</H2>
-
-<H2><CODE><A NAME="ncm">enumeration int_float_mixture</A>_enum</CODE></H2>
-
-<PRE>namespace boost { namespace numeric {
-
- enum int_float_mixture_enum
- {
- integral_to_integral
- ,integral_to_float
- ,float_to_integral
- ,float_to_float
- } ;
-
-} } // namespace boost::numeric
-</PRE>
-
-<H2><CODE><A NAME="ncsm">enumeration sign_mixture</A>_enum</CODE></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-enum sign_mixture_enum
- {
- unsigned_to_unsigned
- ,signed_to_signed
- ,signed_to_unsigned
- ,unsigned_to_signed
- } ;
-
-} } // namespace boost::numeric</PRE>
-
-<H2><CODE><A NAME="ncum">enumeration udt_builtin_mixture</A>_enum</CODE></H2>
-
-<PRE>namespace boost { namespace numeric {
-
- enum udt_builtin_mixture_enum
- {
- builtin_to_builtin
- ,builtin_to_udt
- ,udt_to_builtin
- ,udt_to_udt
- } ;
-
-} } // namespace boost::numeric</PRE>
-
-<hr>
-
-<H2><A NAME="ifm"><CODE>template class int_float_mixture&lt;&gt;</CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
- template &lt;class T, class S&gt;
- struct int_float_mixture : mpl::integral_c&lt;int_float_mixture_enum, <i>impl-def-value</i>&gt; {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Classifying <code>S</code> and <code>T</code> as either <code>integral</code>
-or <code>float</code>, this MPL's Integral Constant
-indicates the combination of these attributes. <br>
-Its <code>::value</code> is of enumeration type boost::numeric::int_float_mixture_enum
-</p>
-
-<hr>
-
-<H2><A NAME="sm"><CODE>template class sign_mixture&lt;&gt;</CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
- template &lt;class T, class S&gt;
- struct sign_mixture : mpl::integral_c&lt;sign_mixture_enum, <i>impl-def-value</i>&gt; {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Classifying <code>S</code> and <code>T</code> as either <code>signed</code>
-or <code>unsigned</code>, this MPL's Integral Constant
-indicates the combination of these attributes. <br>
-Its <code>::value</code> is of enumeration type boost::numeric::sign_mixture_enum
-</p>
-
-<hr>
-
-<H2><A NAME="ubm"><CODE>template class udt_builtin_mixture&lt;&gt;</CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
- template &lt;class T, class S&gt;
- struct udt_builtin_mixture : mpl::integral_c&lt;udt_builtin__mixture_enum, <i>impl-def-value</i>&gt; {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Classifying <code>S</code> and <code>T</code> as either <code>user-defined</code>
-or <code>builtin</code>, this MPL's Integral Constant
-indicates the combination of these attributes. <br>
-Its <code>::value</code> is of enumeration type boost::numeric::udt_builtin_mixture_enum
-</p>
-
-<hr>
-
-<H2><A NAME="isr"><CODE>template class is_subranged&lt;&gt;</CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
- template &lt;class T, class S&gt;
- struct is_subranged : mpl::bool_&lt;<i>impl-def-value</i>&gt; {} ;
-
-} } // namespace boost::numeric
-</PRE>
-<p>Indicates if the range of the target type T is a subset of the range of the source type S.
-That is: if there are some source values which fall out of the Target type's range.<br>
-It is a boolean MPL's Integral Constant..<br>
-It does not indicate if
-a <i>particular</i> conversion is effectively out of range; it indicates that
-some conversion <i>might be</i> out of range because not all the source values
-are representable as Target type.</p>
-
-<hr>
-
-<H2><A NAME="nct"><CODE>template class conversion_traits&lt;&gt;</CODE></A></H2>
-
-<PRE>namespace boost { namespace numeric {
-
-
- template &lt;class T, class S&gt;
- struct conversion_traits
- {
- mpl::integral_c&lt;int_float_mixture_enum , ...&gt; int_float_mixture ;
- mpl::integral_c&lt;sign_mixture_enum , ...&gt; sign_mixture;
- mpl::integral_c&lt;udt_builtin_mixture_enum, ...&gt; udt_builtin_mixture ;
-
- mpl::bool_&lt;...&gt; subranged ;
- mpl::bool_&lt;...&gt; trivial ;
-
- typedef T target_type ;
- typedef S source_type ;
- typedef ... argument_type ;
- typedef ... result_type ;
- typedef ... supertype ;
- typedef ... subtype ;
- } ;
-
-} } // namespace numeric, namespace boost
-</PRE>
-<BLOCKQUOTE>
-
- <P>This traits class indicates some properties of a <i>numeric conversion direction</i>:
- from a source type <code>S</code> to a target type <code>T</code>. It does not indicate the properties of
- a <i>specific</i> conversion, but of the conversion <i>direction</i>. See
- Definitions for details.<br>
- </P>
-
- <P>The traits class provides the following
- MPL's Integral Constants
- of enumeration type. They express the <i>combination</i> of certain attributes of the Source and
- Target types (thus they are call <i>mixture</i>):</P>
- <TABLE BORDER="1">
- <TR>
- <TD>&nbsp;<CODE><B>int_float_mixture</B></CODE>&nbsp;</TD>
-
- <TD>
- <P>Same as given by the traits class int_float_mixture</P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE><B>sign_mixture</B></CODE>&nbsp;</TD>
-
- <TD>
- <P>Same as given by the traits class sign_mixture</P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE><B>udt_builtin_mixture</B></CODE>&nbsp;</TD>
-
- <TD>
- <P>Same as given by the traits class udt_builtin_mixture</P>
- </TD>
- </TR>
- </TABLE>
-
- <P>The traits class provides the following
- MPL's Integral Constants
- of boolean type which indicates indirectly the relation between the Source and Target
- <i>ranges</i>
- (see Definitions for details).</P>
- <TABLE BORDER="1">
- <TR>
- <TD>&nbsp;<CODE> <B>subranged</B></CODE>&nbsp;</TD>
-
- <TD>
- <P>Same as given by is_subranged</P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE> <B>trivial</B></CODE>&nbsp;</TD>
-
- <TD>
- <P>Indicates if both Source and Target, <u>without cv-qualifications</u>, are
- the same type.<br>
- Its <code>::value</code> is of boolean type.</P>
- </TD>
- </TR>
- </TABLE>
-
- <P>The traits class provides the following types. They are the Source and Target
- types classified and qualified for different purposes.</P>
-
- <TABLE BORDER="1" width="720">
- <TR>
- <TD>&nbsp;<CODE><B>target_type</B></CODE>&nbsp;</TD>
- <TD>
-
- <P>The template parameter <CODE>T</CODE><EM> without cv-qualifications</EM></P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE><B>source_type</B></CODE>&nbsp;</TD>
- <TD>
-
- <P>The template parameter <CODE>S</CODE><EM> without cv-qualifications</EM></P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE><B>argument_type</B></CODE>&nbsp;</TD>
- <TD>
- <P>This type is either <CODE>source_type</CODE> or <CODE>source_type
-const&amp;</CODE>. <BR> It represents the <I>optimal</I> argument type for the
- converter member functions.<BR>
- If <CODE>S</CODE> is a built-in type, this is <CODE>source_type</CODE>,
- otherwise, this is <CODE>source_type const&amp;</CODE>. </P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE><B>result_type</B></CODE></TD>
- <TD>
- <P>This type is either <CODE>target_type</CODE> or <CODE>target_type
-const&amp;</CODE> <BR> It represents the return type of the
- converter member functions.<BR>
- If <CODE>T==S</CODE>, it is <CODE>target_type const&amp;</CODE>, otherwise,
- it is <CODE>target_type</CODE>.</P>
- </TD>
- </TR>
- <TR>
-
- <TD height="37">&nbsp;<CODE><B>supertype</B></CODE></TD>
-
- <TD height="37">
- <P>If the conversion is <CODE>subranged</CODE>, it is <CODE>source_type</CODE>,
- otherwise, it is <CODE>target_type</CODE></P>
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE><B>subtype</B></CODE></TD>
- <TD height="37">
- <P>If the conversion is <CODE>subranged</CODE>, it is <CODE>target_type</CODE>,
- otherwise, it is <CODE>source_type</CODE></P>
- </TD>
- </TR>
- </TABLE> </BLOCKQUOTE> <HR>
-
-<H2><A NAME="examples">Examples</A></H2>
-<BLOCKQUOTE>
- <PRE>#include &lt;cassert&gt;
-#include &lt;typeinfo&gt;
-#include &lt;boost/numeric/conversion/conversion_traits.hpp&gt;
-
-int main()
-{
-
- // A trivial conversion.
- typedef boost::numeric::conversion_traits&lt;short,short&gt; Short2Short_Traits ;
- assert ( Short2Short_Traits::trivial::value ) ;
-
- // A subranged conversion.
- typedef boost::numeric::conversion_traits&lt;double,unsigned int&gt; UInt2Double_Traits ;
- assert ( UInt2Double_Traits::int_float_mixture::value == boost::numeric::integral_to_float ) ;
- assert ( UInt2Double_Traits::sign_mixture::value == boost::numeric::unsigned_to_signed ) ;
- assert ( !UInt2Double_Traits::subranged::value ) ;
- assert ( typeid(UInt2Double_Traits::supertype) == typeid(double) ) ;
- assert ( typeid(UInt2Double_Traits::subtype) == typeid(unsigned int) ) ;
-
- // A doubly subranged conversion.
- assert ( (boost::numeric::conversion_traits&lt;short, unsigned short&gt;::subranged::value) );
- assert ( (boost::numeric::conversion_traits&lt;unsigned short, short&gt;::subranged::value) );
-
- return 0;
-}
-</PRE>
- </BLOCKQUOTE>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 16 May 2005</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file

Deleted: branches/proto/v3/libs/numeric/conversion/doc/converter.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/converter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,279 +0,0 @@
-<HTML>
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-<TITLE>Boost Numeric Conversion Library - Policy-based Converter</TITLE>
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-<TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
-<TR>
-<TD VALIGN="top" WIDTH="300"> <H3><A HREF="http://www.boost.org"><IMG
-HEIGHT="86" WIDTH="277" ALT="C++ Boost" SRC="../../../../boost.png"
-BORDER="0"></A> </H3>
-</TD>
-<TD VALIGN="top"> <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
- <H1>Header <A
-HREF="../../../../boost/numeric/conversion/converter.hpp">boost/numeric/conversion/converter.hpp</A></H1>
-</TD>
-</TR>
-</TABLE>
-<HR>
-<H2>Contents</H2>
-<DT>Synopsis</DT>
-<DT>User Defined Types support</DT>
-<DT>Range Checking Logic</DT>
-<DT>Examples</DT>
-
-<HR>
-<H2><A NAME="synopsis">Synopsis</A></H2>
-<PRE>namespace boost { namespace numeric {
-
-
-template&lt;class T,
- class S,
- class Traits, = conversion_traits&lt;T,S&gt;
- class OverflowHandler = def_overflow_handler,
- class Float2IntRounder = Trunc&lt; typename Traits::source_type &gt;,
- class RawConverter = raw_converter&lt;Traits&gt;,
- class UserRangeChecker = UseInternalRangeChecker
- &gt;
-struct converter
-{
- typedef Traits traits ;
-
- typedef typename Traits::source_type source_type ;
- typedef typename Traits::argument_type argument_type ;
- typedef typename Traits::result_type result_type ;
-
- static result_type convert ( argument_type s ) ;
-
- result_type operator() ( argument_type s ) const ;
-
- // Internal member functions:
-
- static range_check_result out_of_range ( argument_type s ) ;
- static void validate_range ( argument_type s ) ;
- static result_type low_level_convert ( argument_type s ) ;
- static source_type nearbyint ( argument_type s ) ;
-
-} ;
-
-} } // namespace numeric, boost
-</PRE>
-
-<P><code>boost::numeric::converter&lt;&gt;</code> is a
-Unary Function Object
-encapsulating the code to perform a numeric conversion with the direction and properties specified
- by the <CODE>Traits</CODE> template parameter. It can optionally take some
- policies
- which can be used to customize its behavior. The Traits parameter is not a policy but
- the parameter that defines the conversion.
-</P>
-<hr>
-<h2>Template parameters:</h2>
-<TABLE BORDER="1">
- <TR>
- <TD>&nbsp;T</TD>
- <TD>&nbsp;The Numeric Type which is
- the <i>Target</i> of the conversion.</TD>
- </TR>
- <TR>
- <TD>&nbsp;S</TD>
- <TD>&nbsp;The Numeric Type which is
- the <i>Source</i> of the conversion.</TD>
- </TR>
- <TR>
- <TD>&nbsp;<CODE>Traits</CODE>&nbsp;</TD>
- <TD>&nbsp;This must be a conversion traits class with the interface of
- boost::numeric::conversion_traits
- </TD>
- </TR>
- <TR>
- <TD>&nbsp;OverflowHandler&nbsp;</TD>
- <TD>&nbsp;<B>Stateless Policy</B> called to administrate the result of the
- range checking.<br>
- &nbsp;It is a <b>Function Object</b> which receives the result of <CODE>out_of_range()</CODE>
- and is called inside the <CODE>validate_range()</CODE> static member function
- exposed by the converter.</TD>
- </TR>
- <TR>
- <TD>&nbsp;Float2IntRounder&nbsp;</TD>
- <TD>&nbsp;<B>Stateless Policy</B> which specifies the rounding mode used for
- float to integral conversions.<br>
- &nbsp;It supplies the <CODE>nearbyint()</CODE> static member function exposed
- by the converter.</TD>
- </TR>
- <TR>
- <TD>&nbsp;RawConverter&nbsp;</TD>
- <TD>&nbsp;<B>Stateless Policy</B> which is used to perform the actual conversion.
- <br>
- &nbsp;It supplies the<CODE> low_level_convert()</CODE> static member function
- exposed by the converter.</TD>
- </TR>
- <TR>
- <TD>&nbsp;UserRangeChecker&nbsp;</TD>
- <TD><i>Special and Optional</i> <b>Stateless Policy</b> which can be used to override
- the internal range checking logic.<br>
- If given, supplies alternative code for the out_of_range() and validate_range()
- static member functions exposed by the converter.</TD>
- </TR>
-</TABLE>
-<br>
-<hr>
-<h2>Member functions:</h2>
-<P><CODE>static result_type converter&lt;&gt;::convert ( argument_type s ) ; //
- throw</CODE></P>
-<BLOCKQUOTE>
- <P>This static member function converts an rvalue of type source_type to an rvalue
- of type target_type.<BR>
- If the conversion requires it, it performs a range checking before the conversion
- and passes the result of the check to the overflow handler policy (the default
- policy throws an exception if out-of-range is detected)<BR>
- The implementation of this function is actually built from the policies and
- is basically as follows:</P>
- <PRE> result_type converter<>::convert ( argument_type s )
- {
- validate_range(s); // Implemented by the internal range checking logic
- // (which also calls the OverflowHandler policy)
- // or externally supplied by the UserRangeChecker policy.
-
- s = nearbyint(s); // Externally supplied by the Float2IntRounder policy.
- // NOTE: This is actually called only for float to int conversions.
-
- return low_level_convert(s); // Externally supplied by the RawConverter policy.
- }
-</PRE>
-
- <P>&quot;converter&lt;&gt;::operator() const&quot; just calls <CODE>convert()</CODE></P>
-</BLOCKQUOTE>
-<P><CODE>static range_check_result numeric_converter&lt;&gt;::out_of_range (
-argument_type s ) ;</CODE></P>
-<BLOCKQUOTE>
- <P>This internal static member function determines if the
- value 's' can be represented by the target type without overflow. <BR>
- It does not determine if the conversion is <EM>exact</EM>; that is, it does
- not detect <i>inexact</i> conversions, only <i>out-of-range</i> conversions
- (see the Definitions for further details).<BR>
- The return value is of enum type
- boost::numeric::range_check_result<BR>
- The actual code for the range checking logic is optimized for the combined
- properties of the source and target types. For example, a non-subranged conversion
- (i.e: int-&gt;float), requires no range checking, so out_of_range() returns
- cInRange directly. See the following table for more
- details.<br>
- If the user supplied a UserRangeChecker
- policy, is this policy which implements this function, so the implementation
- is user defined, although it is expected to perform the same conceptual check
- and return the appropriate result.</P>
-</BLOCKQUOTE>
-<P><CODE>static void numeric_converter&lt;&gt;::validate_range ( argument_type
-s ) ; // no throw</CODE></P>
-<BLOCKQUOTE>
- <P>This internal static member function calls <CODE>out_of_range(s)</CODE>,
- and passes the result to the <A
-HREF="converter_policies.html#oh"><CODE>OverflowHandler</CODE></A> policy class
- <BR>
- For those Target/Source combinations which don't require range checking, this
- is an <U>empty inline function</U>.<br>
- If the user supplied a UserRangeChecker
- policy, is this policy which implements this function, so the implementation
- is user defined, although it is expected to perform the same action as the
- default. In particular, it is expected to pass the result of the check to
- the overflow handler.</P>
-</BLOCKQUOTE>
-<P><CODE>static result_type numeric_converter&lt;&gt;::low_level_convert (
-argument_type s ) ;</CODE></P>
-<BLOCKQUOTE>
- <P>This internal static member function performs the actual
- conversion.<BR>
-This function is externally supplied by the <A
-HREF="converter_policies.html#rawc"><CODE>RawConverter</CODE></A> policy class.</P>
-</BLOCKQUOTE>
-<P><CODE>static source_type converter&lt;&gt;::nearbyint (
-argument_type s ) ;</CODE></P>
-<BLOCKQUOTE>
- <P>This internal static member function, which is <U>only
- used</U> for float to int conversions, returns an <I>integer value of <U>floating-point
- type</U></I> according to some rounding direction. <BR>
- This function is externally supplied by the <A
-HREF="converter_policies.html#f2i"><CODE>Float2IntRounder</CODE></A> policy class
- which encapsulates the specific rounding mode.</P>
-</BLOCKQUOTE>
-<hr>
-<P><A NAME="int"><B>Internal Member Functions</B>:</A> These static member functions
- build the actual conversion code used by <CODE>convert()</CODE>. The user does
- not have to call these if calling convert(), since convert() calls them infernally,
- but they can be called separately for specific needs.</P>
-<hr>
-<H2><A NAME="rchklogic">Range Checking Logic</A></H2>
-<P>The Following table summarizes the internal range checking logic performed
- for each combination of the properties of Source and Target.<br>
- LowestT/HighestT denotes the highest and lowest values of the Target type, respectively.<br>
- S(n) is short for &quot;static_cast&lt;S&gt;(n)&quot; (S denotes the Source
- type).<br>
- &quot;NONE&quot; indicates that for this case there is no range checking.</P>
-<Pre>&nbsp; int_to_int |--> sig_to_sig |--> subranged |--> ( s >= S(LowestT) ) && ( s <= S(HighestT) )
- | |--> not subranged |--> NONE
- |
- |--> unsig_to_unsig |--> subranged |--> ( s >= S(LowestT) ) && ( s <= S(HighestT) )
- | |--> not subranged |--> NONE
- |
- |--> sig_to_unsig |--> pos subranged |--> ( s >= S(0) ) && ( s <= S(HighestT) )
- | |--> not pos subranged |--> ( s >= S(0) )
- |
- |--> unsig_to_sig |--> subranged |--> ( s <= S(HighestT) )
- | |--> not subranged |--> NONE
-
- int_to_float |--> NONE
-
- float_to_int |--> round_to_zero |--> ( s > S(LowestT)-S(1) ) && ( s < S(HighestT)+S(1) )
- |--> round_to_even_nearest |--> ( s >= S(LowestT)-S(0.5) ) && ( s &lt; S(HighestT)+S(0.5) )
- |--> round_to_infinity |--> ( s > S(LowestT)-S(1) ) && ( s <= S(HighestT) )
- |--> round_to_neg_infinity |--> ( s >= S(LowestT) ) && ( s < S(HighestT)+S(1) )
-
- float_to_float |--> subranged |--> ( s >= S(LowestT) ) && ( s <= S(HighestT) )
- |--> not subranged |--> NONE
-
-</Pre>
-<HR>
-<H2><A NAME="examples">Examples</A></H2>
-<BLOCKQUOTE>
- <PRE> #include &lt;cassert&gt;
- #include &lt;boost/numeric/conversion/converter.hpp&gt;
-
- int main() {
-
- typedef boost::numeric::converter&lt;int,double&gt; Double2Int ;
-
- int x = Double2Int::convert(2.0);
- assert ( x == 2 );
-
- int y = Double2Int()(3.14); // As a function object.
- assert ( y == 3 ) ; // The default rounding is trunc.
-
- try
- {
- double m = boost::numeric::bounds&lt;double&gt;::highest();
- int z = Double2Int::convert(m); // By default throws positive_overflow()
- }
- catch ( boost::numeric::positive_overflow const&amp; )
- {
- }
-
- return 0;
-}</PRE>
- </BLOCKQUOTE>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 16 May 2005</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file

Deleted: branches/proto/v3/libs/numeric/conversion/doc/converter_policies.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/converter_policies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,466 +0,0 @@
-<HTML>
-
-<HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-<LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
-<TITLE>Boost Numeric Conversion Library - Converter Policies</TITLE>
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
-<TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
-<TR>
-<TD VALIGN="top" WIDTH="300"> <H3><A HREF="http://www.boost.org"><IMG
-HEIGHT="86" WIDTH="277" ALT="C++ Boost" SRC="../../../../boost.png"
-BORDER="0"></A> </H3>
-</TD>
-<TD VALIGN="top"> <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
- <H1>Header <A
-HREF="../../../../boost/numeric/conversion/converter_policies.hpp">boost/numeric/conversion/converter_policies.hpp</A></H1>
-</TD>
-</TR>
-</TABLE>
-<HR>
-<H2>Contents</H2>
-<ol>
-<LI>enumeration range_check_result </LI>
-<LI>Policy OverflowHandler
-<UL>
-<LI>class silent_overflow_handler</LI>
-<LI>class def_overflow_handler (Default Policy)</LI>
-<ul>
-<LI>class <CODE> bad_numeric_cast</CODE> (see IMPORTANT note)</LI>
-<LI>class negative_overflow</LI>
-<LI>class positive_overflow</LI>
-</ul>
-</UL>
-</LI>
-<LI>Policy FloatToIntRounder <UL>
-<LI>class Trunc<T> (Default Policy)</LI>
-<LI>class RoundEven<T></LI>
-<LI>class Ceil<T></LI>
-<LI>class Floor<T></LI>
-</UL>
-</LI>
-<LI>Policy RawConverter<UL>
- <LI>class raw_converter class (Default)</LI>
-</UL>
-</LI>
-<LI>Policy UserRangeChecker<UL>
- <LI>class UseInternalRangeChecker class (Default)</LI>
-</UL>
-</LI>
-</ol>
-
-<HR>
-<H2><A NAME="types">Types</A></H2>
-<H2><A NAME="rcr"><CODE>enum range_check_result</CODE></A></H2>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
- enum range_check_result
-
- {
-
- cInRange ,
-
- cNegOverflow ,
-
- cPosOverflow
-
- } ;
-
-
-
-
-
-} }</PRE>
-
-<P>Defines the values returned by <CODE>boost::numeric::converter&lt;&gt;::out_of_range()</CODE>
-</P>
-<HR>
-<H2><A NAME="oh">Policy <CODE>OverflowHandler</CODE></A></H2>
-<P>This <EM>stateless</EM> non-template policy class must be a <I>function object</I>
- and is called to administrate the result of the range checking. It can throw
- an exception if overflow has been detected by the range checking as indicated
- by its argument. If it throws, is is recommended that it be <CODE>std::bad_cast</CODE>
- or derived.</P>
-<P>It must have the following interface (it does not has to be a template class):</P>
-<PRE> struct YourOverflowHandlerPolicy
-
- {
-
- void operator() ( boost::range_check_result ) ; // throw bad_cast or derived
-
- } ;
-
-</PRE>
-<P>It is called with the result of the converter's <CODE>out_of_range()</CODE>
- inside <CODE>validate_range()</CODE>.</P>
-<P>These are the two overflow handler classes provided by the
-library:</P>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
- struct <A NAME="oh_def">def_overflow_handler</a>
-
- {
-
- void operator() ( range_check_result r ) // throw bad_numeric_conversion derived
-
- {
-
- if ( r == cNegOverflow )
-
- throw negative_overflow() ;
-
- else if ( r == cPosOverflow )
-
- throw positive_overflow() ;
-
- }
-
- } ;
-
-
-
- struct <A NAME="oh_silent">silent_overflow_handler</a>
-
- {
-
- void operator() ( range_check_result ) // no-throw
-
- {}
-
- } ;
-
-
-
-} }
-
-</PRE>
-
-<P>And these are the Exception Classes thrown by the default
-overflow handler (see IMPORTANT note)</P>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
- class <a name="bad_numc">bad_numeric_cast</a> : public std::bad_cast
-
- {
-
- public:
-
-
-
- virtual const char *what() const // throw()
-
- { return &quot;bad numeric conversion: overflow&quot;; }
-
- };
-
-
-
- class <a name="negovr">negative_overflow</a> : public bad_numeric_cast
- {
-
- public:
-
-
-
- virtual const char *what() const // throw()
-
- { return &quot;bad numeric conversion: negative overflow&quot;; }
-
- };
-
- class <a name="posovr">positive_overflow</a> : public bad_numeric_cast
- {
-
- public:
-
-
-
- virtual const char *what() const // throw()
-
- { return &quot;bad numeric conversion: positive overflow&quot;; }
-
- };
-
-} }
-
-</PRE>
-
-<a name="x-note"><p><b>IMPORTANT RELEASE NOTE for 1.33</b></p></a>
-<blockquote>
- <p>Previous to boost version 1.33, the exception class <code>bad_numeric_cast</code> was
- named <code>bad_numeric_conversion</code>. However, in 1.33, the old function
- <code>numeric_cast&lt;&gt;</code> from <code>boost/cast.hpp</code> was completly replaced by the new
- <code>numeric_cast&lt;&gt;</code> in <code>boost/numeric/conversion/cast.hpp</code>
- (and <code>boost/cast.hpp</code> is including <code>boost/numeric/conversion/cast.hpp</code> now). That old function which
- existed in boost for quite some time used the <code>bad_numeric_cast</code> as its
- exception type so I decided to avoid backward compatibility problems by adopting it (guessing
- that the user base for the old code is wider than for the new code).</p>
-</blockquote>
-
-<HR>
-<H2><A NAME="f2i">Policy <CODE>FloatToIntRounder</CODE></A></H2>
-<P>This <EM>stateless</EM> template policy class specifies the rounding mode used
- for<U> float to integral</U> conversions. It supplies the <CODE>&quot;nearbyint()&quot;</CODE>
- static member function exposed by the converter, which means that it <U>publicly
- inherits from this policy.</U></P>
-<P>The policy must have the following interface:</P>
-<PRE> template&lt;class S&gt;
-
- struct YourFloat2IntRounderPolicy
-
- {
-
- typedef S source_type ;
-
- typedef <I>{S or S const&amp;}</I> argument_type ;
-
-
-
- static source_type nearbyint ( argument_type s ) { ... }
-
-
-
- typedef mpl::integral_c&lt;std::float_round_style,std::<i>round_...</i>&gt; round_style ;
-
- } ;
-
-</PRE>
-
-<P>These are the rounder classes provided by the library:</P>
-
-<BLOCKQUOTE>
- <P><EM>NOTE: These classes are not intended to be general purpose rounding functions
- but specific policies for converter&lt;&gt;. This is why <U>they are not function
- objects</U>.</EM></P>
- <P>(only the specific parts are shown, see the general policy form above)</P>
- <PRE>namespace boost { namespace numeric {
-
-
-
- <A NAME="trunc"></A>template&lt;class S&gt;
-
- struct Trunc
-
- {
-
- static source_type nearbyint ( argument_type s )
-
- {
-
- using std::floor ;
-
- using std::ceil ;
-
- return s >= static_cast&lt;S&gt;(0) ? floor(s) : ceil(s) ;
-
- }
-
-
-
- typedef mpl::integral_c&lt;std::float_round_style,std::round_toward_zero&gt; round_style ;
-
- } ;
-
- </PRE>
- <PRE> <A NAME="round"></A>template&lt;class S&gt;
-
- struct RoundEven
-
- {
-
- static source_type nearbyint ( argument_type s )
-
- {
-
- return <i>impl-defined-value</i> ;
-
- }
-
-
-
- typedef mpl::integral_c&lt;std::float_round_style,std::round_to_nearest&gt; round_style ;
-
- } ;
-
-</PRE>
-<PRE> <A NAME="ceil"></A>template&lt;class S&gt;
-
- struct Ceil
-
- {
-
- static source_type nearbyint ( argument_type s )
-
- {<br> using std::ceil ;<br> return ceil(s) ;<br> }
-
-
-
- typedef mpl::integral_c&lt;std::float_round_style,std::round_toward_infinity&gt; round_style ;
-
- } ;
-
-</PRE>
-<PRE> <A NAME="floor"></A>template&lt;class S&gt;
-
- struct Floor
-
- {
-
- static source_type nearbyint ( argument_type s )
-
- {<br> using std::floor ;<br> return floor(s) ;<br> }
-
-
-
- typedef mpl::integral_c&lt;std::float_round_style,std::round_toward_neg_infinity&gt; round_style ;
-
- } ;
-
-
-
-} } // namespace numeric, namespace boost</PRE>
-
-</BLOCKQUOTE>
-<H3>Math Functions used by the rounder policies</H3>
-<P>The rounder policies supplied by this header use math functions floor() and
- ceil(). The standard versions of these functions are introduced in context by
- a using directive, so in normal conditions, the standard functions will be used.
- <br>
- However, if there are other visible corresponding overloads an ambiguity could
- arise. In this case, the user can supply her own rounder policy which could,
- for instance, use a fully qualified call.<br>
- This technique allows the default rounder policies to be used directly with
- user defined types. The user only requires that suitable overloads of floor()
- and ceil() be visible. See also User Defined Numeric Types support<br>
-</P>
-<HR>
-<H2><A NAME="rawc">Policy <CODE>RawConverter</CODE></A></H2>
-<P>This <EM>stateless</EM> template policy class is used to perform the actual
- conversion from Source to Target. It supplies the <CODE>&quot;low_level_convert()&quot;</CODE>
- static member function exposed by the converter, which means that it <U>publicly
- inherits from this policy.</U></P>
-<P>The policy must have the following interface:</P>
-<PRE> template&lt;class Traits&gt;
-
- struct YourRawConverterPolicy
-
- {
-
- typedef typename Traits::result_type result_type ;
-
- typedef typename Traits::argument_type argument_type ;
-
-
-
- static result_type low_level_convert ( argument_type s ) { return <I>&lt;impl defined&gt;</I> ; }
-
- } ;
-
-</PRE>
-
-<P>This policy is mostly provided as a hook for user defined types which don't
- support <CODE>static_cast&lt;&gt;</CODE> conversions to some types</P>
-
-<P>This is the only raw converter policy class provided
-by the library:</P>
-<PRE>namespace boost { namespace numeric {
-
-
-
-
-
- template&lt;class Traits&gt;
-
- struct <A NAME="rawnumc">raw_numeric_converter</A>
-
- {
-
- typedef typename Traits::result_type result_type ;
-
- typedef typename Traits::argument_type argument_type ;
-
-
-
- static result_type low_level_convert ( argument_type s )
-
- { return static_cast&lt;result_type&gt;(s) ; }
-
- } ;
-
-
-
-}
-
-</PRE>
-
-<HR>
-<H2><A NAME="rc">Policy <CODE>UserRangeChecker</CODE></A></H2>
-<P>This <EM>stateless</EM> template policy class is used -<u>only if supplied</u>-
- to <b>override</b> the internal range checking logic.<br>
- It supplies the <CODE>&quot;validate_range()&quot;</CODE> static member function
- exposed by the converter, which means that it <U>publicly inherits from this
- policy.</U></P>
-<P>The policy must have the following interface:</P>
-<PRE> template&lt;class Traits&gt;
-
- struct YourRangeCheckerPolicy
-
- {
-
- typedef typename Traits::argument_type argument_type ;
-
-
-
- // Determines if the value 's' fits in the range of the Target type.
-
- static range_check_result out_of_range ( argument_type s ) ;
-
-
-
- // Checks whether the value 's' is out_of_range()
-
- // and passes the result of the check to the OverflowHandler policy.
-
- static void validate_range ( argument_type s )
-
- {
-
- OverflowHandler()( out_of_range(s) ) ;
-
- }
-
- } ;
-
-</PRE>
-<P>This policy is <b>only</b> provided as a hook for user defined types which
- require range checking (which is disabled by default when a UDT is involved).<br>
- The library provides a class: <A NAME="int_rc"><code>UseInternalRangeChecker{};</code></a> which
- is a <i>fake</i> RangeChecker policy used to signal the converter to use its
- internal range checking implementation.
-</P>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file

Deleted: branches/proto/v3/libs/numeric/conversion/doc/definitions.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/definitions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,471 +0,0 @@
-<HTML>
- <HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
- <TITLE>Boost Numeric Conversion Library - Definitions</TITLE>
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
- <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
- <TR>
- <TH VALIGN="top" WIDTH="300">
- <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
- ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
- <TH VALIGN="top">
- <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
- <H1 ALIGN="center">Definitions</H1>
- </TH>
- </TR>
- </TABLE>
- <HR>
- <H2>Contents</H2>
- <DL CLASS="page-index">
- <dt>Introduction</dt>
- <dt>Types and Values</dt>
- <dt>C++ Arithmetic Types</dt>
- <dt>Numeric Types</dt>
- <dt>Range and Precision</dt>
- <dt>Exact, Correctly Rounded and Out-Of-Range Representations</dt>
- <dt>Standard (numeric) Conversions</dt>
- <dt>Subranged Conversion Direction, Subtype and Supertype</dt>
- </DL>
-
-
-
-<h2><A NAME="intro">Introduction</A></h2>
-<P>This section provides definitions of terms used in the Numeric Conversion library.</p>
-<p><b>Notation:</b>
-<li><u>underlined text</u> denotes terms defined in the C++ standard.</li>
-<li><b>bold face</b> denotes terms defined here but not in the standard.</li>
-<p></p>
-
-
-
-<hr>
-<h2><A NAME="typeval">Types and Values</A></h2>
-<p>As defined by the <u>C++ Object Model</u> (&sect;1.7) the <u>storage</u> or
- memory on which a C++ program runs is a contiguous sequence of <u>bytes</u>
- where each byte is a contiguous sequence of <u>bits</u>.<br>
- An <u>object</u> is a region of storage (&sect;1.8) and has a type (&sect;3.9).<br>
- A <u>type</u> is a discrete set of values. <br>
- An object of type T has an <u>object representation</u> which is the sequence
- of bytes stored in the object (&sect;3.9/4)<br>
- An object of type T has a <u>value representation</u> which is the set of bits
- that determine the <i>value</i> of an object of that type (&sect;3.9/4). For
- <u>POD</u> types (&sect;3.9/10), this bitset is given by the object representation,
- but not all the bits in the storage need to participate in the value representation
- (except for character types): for example, some bits might be used for padding
- or there may be trap-bits.</p>
-<p>The <b>typed value</b> that is held by an object is
-the value which is determined by its value representation.<br>
-An <b>abstract value</b> (untyped) is
-the conceptual information that is represented in a type
-(i.e. the number &pi;).<br>
-The <b>intrinsic value</b> of an object is
-the binary value of the sequence of unsigned characters which form its object representation.</p>
-<p><i>Abstract values</i> can be <b>represented</b> in a given type.<br>
-To <b>represent</b> an abstract value 'V' in a type 'T'
-is to obtain a typed value 'v' which <i>corresponds</i> to the abstract value 'V'.<br>
-The operation is denoted using the 'rep()' operator, as in: <code>v=rep(V)</code>.<br>
-'v' is the <b>representation</b> of 'V' in the type 'T'.<br>
-For example, the abstract value &pi; can be represented in the type <code>'double'</code> as the
-'double value M_PI' and in the type <code>'int'</code> as the 'int value 3'</p>
-<p>Conversely, <i>typed values</i> can be <b>abstracted</b>.<br>
-To <b>abstract</b> a typed value 'v' of type 'T' is to obtain the
-abstract value 'V' whose representation in 'T' is 'v'.<br>
-The operation is denoted using the 'abt()' operator, as in: <code>V=abt(v)</code>.<br>
-'V' is the <b>abstraction</b> of 'v' of type 'T'.<br>
-Abstraction is just an abstract operation (you can't do it); but it is defined nevertheless
-because it will be used to give the definitions in the rest of this document.</p>
-
-
-
-
-<hr>
-<h2><A NAME="stdtypes">C++ Arithmetic Types</A></h2>
-<P>The C++ language defines <u>fundamental types</u> (&sect;3.9.1). The following
-subsets of the fundamental types are intended to represent <i>numbers</i>:</p>
-<li><u>signed integer types</u> (&sect;3.9.1/2):<br>
- <blockquote>
- <code>{signed char, signed short int, signed int, signed long int}</code><br>
- Can be used to represent general integer numbers (both negative and positive).
- </blockquote>
-</li>
-<li><u>unsigned integer types</u> (&sect;3.9.1/3):<br>
- <blockquote>
- <code>{unsigned char, unsigned short int, unsigned int, unsigned long int}</code><br>
- Can be used to represent positive integer numbers <u>with modulo-arithmetic</u>.<br>
- </blockquote>
-<li><u>floating-point types</u> (&sect;3.9.1/8):<br>
- <blockquote>
- <code>{float,double,long double}</code><br>
- Can be used to represent real numbers.
- </blockquote>
-</li>
-<li><u>integral or integer types</u> (&sect;3.9.1/7):<br>
- <blockquote>
- <code>{{signed integers},{unsigned integers}, bool, char and wchar_t}</code>
- </blockquote>
-</li>
-<li><u>arithmetic types</u> (&sect;3.9.1/8):<br>
- <blockquote>
- <code>{{integer types},{floating types}}</code>
- </blockquote>
-</li>
-<P>The integer types are required to have a <i>binary</i> value representation.<br>
-Additionally, the signed/unsigned integer types of the same base type (short, int or long)
-are required to have the same value representation, that is:</P>
-<pre> int i = -3 ; // suppose value representation is: 10011 (sign bit + 4 magnitude bits)
- unsigned int u = i ; // u is required to have the same 10011 as its value representation.
-</pre>
-<P>In other words, the integer types signed/unsigned X use the same value representation
-but a different <i>interpretation</i> of it; that is, their <i>typed values</i>
-might differ.<br>
-Another consequence of this is that the range for signed X is always a smaller subset
-of the range of unsigned X, as required by &sect;3.9.1/3.</P>
-<P>Note: always remember that unsigned types, unlike signed types, have modulo-arithmetic;
- that is, they do not overflow.<br>
- This means that:
- <li> Always be extra careful when mixing signed/unsigned types</li>
- <li> Use unsigned types only when you need modulo arithmetic or very very large numbers.
- Don't use unsigned types just because you intend to deal with positive values only
- (you can do this with signed types as well).</li>.
-<p></P>
-
-
-
-
-
-<hr>
-<h2><A NAME="numtypes">Numeric Types</A></h2>
-<p>This section introduces the following definitions intended to integrate arithmetic
- types with user-defined types which behave like numbers. Some definitions are
- purposely broad in order to include a vast variety of user-defined number
- types.</p>
-<p>Within this library, the term <i>number</i> refers to an abstract numeric value.</p>
-<p>A type is <b>numeric</b> if:</p>
-<li>It is an arithmetic type, or,</li>
-<li>It is a user-defined type which</li>
- <blockquote>
- <li>Represents numeric abstract values (i.e. numbers).</li>
-
- <li>Can be converted (either implicitly or explicitly) to/from at least one
- arithmetic type.</li>
- <li>Has range (possibly unbounded) and precision
- (possibly dynamic or unlimited).</li>
- <li>Provides an specialization of <code>std::numeric_limits</code>.</li>
- </blockquote>
-<p></p>
-<p>A numeric type is <b>signed</b> if the abstract values it represent include negative numbers.<br>
-A numeric type is <b>unsigned</b> if the abstract values it represent exclude negative numbers.<br>
-A numeric type is <b>modulo</b> if it has modulo-arithmetic (does not overflow).<br>
-A numeric type is <b>integer</b> if the abstract values it represent are whole numbers.<br>
-A numeric type is <b>floating</b> if the abstract values it represent are real numbers.<br>
-An <b>arithmetic value</b> is the typed value of an arithmetic type<br>
-A <b>numeric value</b> is the typed value of a numeric type</p>
-<p></p>
-<p>These definitions simply generalize the standard notions of arithmetic types
- and values by introducing a superset called <u>numeric</u>. All arithmetic types
- and values are numeric types and values, but not vice versa, since user-defined
- numeric types are not arithmetic types.</p>
-<p>The following examples clarify the differences between arithmetic and numeric types (and values):</p>
-<pre>// A numeric type which is not an arithmetic type (is user-defined)
-// and which is intended to represent integer numbers (i.e., an 'integer' numeric type)
-class MyInt
-{
- MyInt ( long long v ) ;
- long long to_builtin();
-} ;
-namespace std {
-template&lt;&gt; numeric_limits&lt;MyInt&gt; { ... } ;
-}
-
-// A 'floating' numeric type (double) which is also an arithmetic type (built-in),
-// with a float numeric value.
-double pi = M_PI ;
-
-// A 'floating' numeric type with a whole numeric value.
-// NOTE: numeric values are typed valued, hence, they are, for instance,
-// integer or floating, despite the value itself being whole or including
-// a fractional part.
-double two = 2.0 ;
-
-// An integer numeric type with an integer numeric value.
-MyInt i(1234);
-</pre>
-
-
-
-
-<hr>
-<h2><A NAME="range">Range and Precision</A></h2>
-<p>Given a number set 'N', some of its elements are representable in a numeric type 'T'.<br>
-The set of representable values of type 'T', or numeric set of 'T', is a set of numeric values
-whose elements are the representation of some <i>subset</i> of 'N'.<br>
-For example, the interval of 'int' values [INT_MIN,INT_MAX] is the set of representable values
-of type 'int', i.e. the 'int' numeric set, and corresponds to the representation of the elements
-of the interval of abstract values [abt(INT_MIN),abt(INT_MAX)] from the integer numbers.<br>
-Similarly, the interval of 'double' values [-DBL_MAX,DBL_MAX] is the 'double' numeric set,
-which corresponds to the subset of the real numbers from abt(-DBL_MAX) to abt(DBL_MAX).
-</p>
-<p>Let <b>next(x)</b> denote the lowest numeric value greater than x.<br>
-Let <b>prev(x)</b> denote the highest numeric value lower then x.</p>
-<p>Let <code><b>v=prev(next(V))</b></code> and <code><b>v=next(prev(V))</b></code> be identities that relate a numeric
-typed value 'v' with a number 'V'.</p>
-<p>An ordered pair of numeric values <i>x,y</i> s.t. <i>x&lt;y</i> are <b>consecutive</b> iff
-<code>next(x)==y</code>.</p>
-<p>The abstract distance between consecutive numeric values is usually referred
-to as a <u>Unit in the Last Place</u>, or <b>ulp</b> for short. A ulp is a quantity whose abstract
-magnitude is <i>relative</i> to the numeric values it corresponds to: If the numeric set is not evenly
-distributed, that is, if the abstract distance between consecutive numeric values varies along the set
--as is the case with the floating-point types-, the magnitude of 1ulp after the numeric value x
-might be (usually is) different from the magnitude of a 1ulp after the numeric value y for x!=y.</p>
-<p>Since numbers are inherently ordered, a <b>numeric set</b> of type 'T'
-is an ordered sequence of numeric values (of type 'T') of the form:
-</p>
-<p><code>REP(T)={l,next(l),next(next(l)),...,prev(prev(h)),prev(h),h}</code>
-</p>
-<p>where 'l' and 'h' are respectively the lowest and highest values of type 'T', called the
-<b>boundary values</b> of type T.</p>
-<p>A numeric set is discrete. It has a <b>size</b> which is the number
-of numeric values in the set, a <b>width</b> which is the abstract difference between
-the highest and lowest boundary values: [abt(h)-abt(l)], and a <b>density</b>
-which is the relation between its size and width: 'density=size/width'.<br>
-The integer types have density 1, which means that there are no unrepresentable integer numbers
-between abt(l) and abt(h) (i.e. there are no gaps). On the other hand,
-floating types have density much smaller than 1, which means that there are
-real numbers unrepresented between consecutive floating values (i.e. there are gaps).
-</p>
-<p>The interval of <u>abstract values</u> [abt(l),abt(h)] is the <b>range</b> of the type 'T',
-denoted 'R(T)'.<br>
- A range is a set of abstract values and not a set of numeric values. In other
- documents, such as the C++ standard, the word 'range' is <i>sometimes</i> used
- as synonym for 'numeric set', that is, as the ordered sequence of numeric values
- from 'l' to 'h'. In this document, however, a range is an abstract interval
- which subtends the numeric set.<br>
-For example, the sequence [-DBL_MAX,DBL_MAX] is the numeric set of the type 'double', and
-the real interval [abt(-DBL_MAX),abt(DBL_MAX)] is its range.<br>
-Notice, for instance, that the range of a floating-point type is <i>continuous</i> unlike
-its numeric set.<br>
- This definition was chosen because:
-<li>(a) The discrete set of numeric values is already given by the numeric set.</li>
-<li>(b) Abstract intervals are easier to compare and overlap since only boundary values
-need to be considered.</li><br>
-This definition allows for a concise definition of 'subranged' as given in the last section.<br>
-The width of a numeric set, as defined, is exactly equivalent to the width of a range.
-<p></p>
-<p>The <b>precision</b> of a type is given by the width or density of the numeric set.<br>
-For integer types, which have density 1, the precision is conceptually equivalent to the range
-and is determined by the number of bits used in the value representation: The higher the
-number of bits the bigger the size of the numeric set, the wider the range, and the higher
-the precision.<br>
-For floating types, which have density &lt;&lt;1, the precision is given not by the
-width of the range but by the density. In a typical implementation,
-the range is determined by the number of bits used in the exponent, and the precision by
-the number of bits used in the mantissa (giving the maximum number of significant digits
-that can be exactly represented). The higher the number of exponent bits the
-wider the range, while the higher the number of mantissa bits, the higher the precision.
-</p>
-
-
-
-
-
-
-<hr>
-<h2><A NAME="roundoff">Exact, Correctly Rounded and Out-Of-Range Representations</A></h2>
-<p>Given an abstract value 'V' and a type 'T' with its corresponding range [abt(l),abt(h)]:</p>
-<p>If <code>V &lt; abt(l)</code> or <code>V &gt; abt(h)</code>, 'V' is <b>not representable</b>
-(cannot be represented) in the type T, or, equivalently, it's representation in the type 'T'
-is <b>out of range</b>, or <b>overflows</b>.<br>
-If <code>V &lt; abt(l)</code>, the <b>overflow is negative</b>.<br>
-If <code>V &gt; abt(h)</code>, the <b>overflow is positive</b>.
-</p>
-<p>If <code>V &ge; abt(l)</code> and <code>V &le; abt(h)</code>,'V' is <b>representable</b>
-(can be represented) in the type T, or, equivalently, its representation in the type 'T'
-is in <b>in range</b>, or <b>does not overflow</b>.</p>
-<p>Notice that a numeric type, such as a C++ unsigned type, can define that any 'V' does not
-overflow by always representing not 'V' itself but the abstract value <code>U = [ V % (abt(h)+1) ]</code>,
-which is always in range.</p>
-<p>Given an abstract value 'V' represented in the type 'T' as 'v', the <b>roundoff</b> error
-of the representation is the abstract difference: (abt(v)-V).<br>
-Notice that a representation is an <i>operation</i>, hence, the roundoff error corresponds to
-the representation operation and not to the numeric value itself (i.e. numeric values do not
-have any error themselves)<br>
-If the roundoff is 0, the representation is <b>exact</b>, and 'V' is <b>exactly representable</b>
-in the type T.<br>
-If the roundoff is not 0, the representation is <b>inexact</b>, and 'V' is <b>inexactly representable</b>
-in the type T.</p>
-<p>Given an abstract value 'V' representable in a type 'T', there are always two consecutive
-numeric values of type 'T', 'prev' and 'next', such that <code>abt(prev) &le; V &le; abt(next)</code>.
-These are called the <b>adjacents</b> of 'V' in the type 'T'.<br>
-If a representation 'v' in a type 'T' -either exact or inexact-, is any of the adjacents of 'V'
-in that type, that is, if <code>v==prev or v==next</code>, the representation is
-<b>faithfully rounded</b>. If the choice between 'prev' and 'next'
-matches a given <b>rounding direction</b>, it is <b>correctly rounded</b>.<br>
-All exact representations are correctly rounded, but not all inexact representations are. In particular,
-C++ requires numeric conversions (described below) and the result of arithmetic operations
-(not covered by this document) to be correctly rounded, but batch operations propagate roundoff, thus
-final results are usually incorrectly rounded, that is, the numeric value 'r' which is the computed
-result is neither of the adjacents of the abstract value 'R' which is the theoretical result.<br>
-Because a correctly rounded representation is always one of adjacents of the abstract value being
-represented, the roundoff is guaranteed to be at most 1ulp.</p>
-<P>The following examples summarize the given definitions. Consider:</p>
-<li>A numeric type 'Int' representing integer numbers with a <i>numeric set</i>: {-2,-1,0,1,2}
-and <i>range</i>: [-2,2]</li>.
-<li>A numeric type 'Cardinal' representing integer numbers with a <i>numeric set</i>:
-{0,1,2,3,4,5,6,7,8,9} and <i>range</i>: [0,9] (no modulo-arithmetic here)</li>.
-<li>A numeric type 'Real' representing real numbers with a <i>numeric set</i>:
-{-2.0,-1.5,-1.0,-0.5,-0.0,+0.0,+0.5,+1.0,+1.5,+2.0} and <i>range</i>: [-2.0,+2.0]</li>
-<li>A numeric type 'Whole' representing real numbers with a <i>numeric set</i>:
-{-2.0,-1.0,0.0,+1.0,+2.0} and <i>range</i>: [-2.0,+2.0]</li>
-<p>First, notice that the types 'Real' and 'Whole' both represent real numbers, have the
-same range, but different precision.</p>
-<p>The integer number 1 (an abstract value) can be exactly represented in any of these types.<br>
-The integer number -1 can be exactly represented in 'Int', 'Real' and 'Whole', but cannot
-be represented in 'Cardinal', yielding negative overflow.<br>
-The real number 1.5 can be exactly represented in 'Real', and inexactly represented in the
-other types.<br>
-If 1.5 is represented as either 1 or 2 in any of the types (except Real), the
-representation is correctly rounded.<br>
- If 0.5 is represented as +1.5 in the type 'Real', it is incorrectly rounded.<br>
-(-2.0,-1.5) are the 'Real' adjacents of any real number in the interval [-2.0,-1.5],
-yet there are no 'Real' adjacents for x &lt; -2.0, nor for x &gt; +2.0.
-</p>
-
-
-
-
-<hr>
-<h2><A NAME="stdconv">Standard (numeric) Conversions</A></h2>
-<P>The C++ language defines <u>Standard Conversions</u> (&sect;4) some of which are
- conversions between arithmetic types.<br>
- These are <u>Integral promotions</u> (&sect;4.5), <u>Integral conversions</u> (&sect;4.7),
- <u>Floating point promotions</u> (&sect;4.6), <u>Floating point conversions</u> (&sect;4.8)
- and <u>Floating-integral conversions</u> (&sect;4.9).<br>
- In the sequel, integral and floating point promotions are called <b>arithmetic promotions</b>,
- and these plus integral, floating-point and floating-integral conversions are called
- <b>arithmetic conversions</b> (i.e, promotions are conversions).
-</P>
-<P>Promotions, both Integral and Floating point, are <i>value-preserving</i>, which means
-that the typed value is not changed with the conversion.</p>
-<p>In the sequel, consider a source typed value 's' of type 'S', the source abstract value 'N=abt(s)',
-a destination type 'T'; and whenever possible, a result typed value 't' of type 'T'.</p>
-<p>Integer to integer conversions are always defined:<br>
-If 'T' is unsigned, the abstract value which is effectively represented is not 'N' but
-'M=[ N % ( abt(h) + 1 ) ]', where 'h' is the highest unsigned typed value of type 'T'.<br>
-If 'T' is signed and 'N' is not directly representable, the result 't' is
-<u>implementation-defined</u>, which means that the C++ implementation is required to produce
-a value 't' even if it is totally unrelated to 's'.</p>
-<p>Floating to Floating conversions are defined only if 'N' is representable;
- if it is not, the conversion has <u>undefined behavior.</u><br>
-If 'N' is exactly representable, 't' is required to be the exact representation.<br>
-If 'N' is inexactly representable, 't' is required to be one of the two adjacents, with
-an implementation-defined choice of rounding direction; that is, the conversion is required
-to be correctly rounded.</p>
-<p>Floating to Integer conversions represent not 'N' but 'M=trunc(N)', were trunc() is to truncate: i.e.
-to remove the fractional part, if any.<br>
- If 'M' is not representable in 'T', the conversion has <u>undefined behavior</u>
- (unless 'T' is bool, see &sect;4.12).</p>
-<p>Integer to Floating conversions are always defined.<br>
-If 'N' is exactly representable, 't' is required to be the exact representation.<br>
-If 'N' is inexactly representable, 't' is required to be one of the two adjacents, with
-an implementation-defined choice of rounding direction; that is, the conversion is required
-to be correctly rounded.</p>
-
-
-
-
-
-
-<hr>
-<h2><A NAME="subranged">Subranged Conversion Direction, Subtype and Supertype</A></h2>
-<P>Given a source type 'S' and a destination type 'T', there is a <b>conversion direction</b>
-denoted: <code>'S-&gt;T'</code>.<br>
-For any two ranges the following <i>range relation</i> can be defined: A range
-'X' can be <i>entirely contained</i> in a range 'Y', in which case it is said that
-'X' is enclosed by 'Y'.<br>
- Formally: R(S) is <b>enclosed</b> by R(T) iif (R(S) intersection R(T)) == R(S).</P>
-<P>If the source type range, R(S), is <i>not enclosed</i> in the target type range, R(T);
-that is, if (R(S) &amp; R(T)) != R(S), the conversion direction is said to be <b>subranged</b>,
-which means that R(S) is not entirely contained in R(T) and therefore there is
-some portion of the source range which falls outside the target range. In other words,
-if a conversion direction S->T is subranged, there are values in S which cannot be represented
-in T because they are out of range.<br>
- Notice that for S->T, the adjective subranged applies to 'T'.</p>
-<p>Examples:<br>
-Given the following numeric types all representing real numbers:<br>
-<br>
-X with numeric set {-2.0,-1.0,0.0,+1.0,+2.0} and range [-2.0,+2.0]<br>
-Y with numeric set {-2.0,-1.5,-1.0,-0.5,0.0,+0.5,+1.0,+1.5,+2.0} and range [-2.0,+2.0]<br>
-Z with numeric set {-1.0,0.0,+1.0} and range [-1.0,+1.0]<br>
-<br>
-For:<br>
-<br>
-(a) X->Y:
- <blockquote>
- R(X) & R(Y) == R(X), then X->Y is not subranged.
- Thus, all values of type X are representable in the type Y.
- </blockquote>
-(b) Y->X:
- <blockquote>
- R(Y) & R(X) == R(Y), then Y->X is not subranged.
- Thus, all values of type Y are representable in the type X, but in this case, some values
- are <i>inexactly</i> representable (all the halves).<br>
- (note: it is to permit this case that a range is an interval of abstract values
- and not an interval of typed values)
- </blockquote>
-(b) X->Z:
- <blockquote>
- R(X) & R(Z) != R(X), then X->Z is subranged.
- Thus, some values of type X are not representable in the type Z, they fall out of range
- (-2.0 and +2.0)
- </blockquote>
-<p></p>
-<p>It is possible that R(S) is not enclosed by R(T), while neither is R(T) enclosed
-by R(S); for example, UNSIG=[0,255] is not enclosed by SIG=[-128,127]; neither is SIG
-enclosed by UNSIG.<br>
- This implies that is possible that a conversion direction is subranged both
- ways. This occurs when a mixture of signed/unsigned types are involved and indicates
- that in both directions there are values which can fall out of range.</P>
-<P>Given the range relation (subranged or not) of a conversion direction S-&gt;T,
-it is possible to classify 'S' and 'T' as <b>supertype</b> and <b>subtype</b>:<br>
-If the conversion is subranged, which means that 'T' cannot represent all possible values of type 'S',
-'S' is the supertype and 'T' the subtype; otherwise, 'T' is the supertype and 'S' the subtype.<br>
-<br>
-For example:<br>
-R(float)=[-FLT_MAX,FLT_MAX] and R(double)=[-DBL_MAX,DBL_MAX].<br>
-If FLT_MAX < DBL_MAX:<br>
-'double->float' is subranged and supertype=double, subtype=float.<br>
-'float->double' is not subranged and supertype=double, subtype=float.<br>
-Notice that while 'double->float' is subranged, 'float->double' is not,
-which yields the same supertype,subtype for both directions.<br>
-<br>
-Now consider:<br>
-R(int)=[INT_MIN,INT_MAX] and R(unsigned int)=[0,UINT_MAX].<br>
-A C++ implementation is required to have UINT_MAX > INT_MAX (&sect;3.9/3), so:<br>
-'int->unsigned' is subranged (negative values fall out of range) and supertype=int, subtype=unsigned.<br>
-'unsigned->int' is <em>also</em> subranged (high positive values fall out of range)
-and supertype=unsigned, subtype=int.<br>
-In this case, the conversion is subranged in both directions and the supertype,subtype pairs
-are not invariant (under inversion of direction). This indicates that none of the types can
-represent all the values of the other.</p>
-<p>When the supertype is the same for both 'S->T' and 'T->S', it is effectively indicating
-a type which can represent all the values of the subtype.<br>
- Consequently, if a conversion X->Y is not subranged, but the opposite (Y->X)
- is, so that the supertype is always 'Y', it is said that the direction X->Y
- is <b>correctly rounded value preserving</b>, meaning that all such conversions
- are guaranteed to produce results in range and correctly rounded (even if inexact).<br>
-For example, all integer to floating conversions are correctly rounded value preserving.
-</p>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</body>
-</HTML>
\ No newline at end of file

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/bounds___traits_class.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,17 +13,17 @@
     traits class">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="type_requirements_and_user_defined_types_support.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="conversion_traits___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -73,7 +73,7 @@
 <span class="special">};</span>
 </pre>
 <a name="boost_numericconversion.bounds___traits_class.traits_class_bounds_n_.members"></a><h5>
-<a name="id2626217"></a>
+<a name="id2626382"></a>
         <a href="bounds___traits_class.html#boost_numericconversion.bounds___traits_class.traits_class_bounds_n_.members">Members</a>
       </h5>
 <div class="blockquote"><blockquote class="blockquote">
@@ -153,11 +153,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="type_requirements_and_user_defined_types_support.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="conversion_traits___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/conversion_traits___traits_class.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,17 +13,17 @@
     Converter Policy Classes">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="bounds___traits_class.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="numeric_converter_policy_classes.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -33,24 +33,6 @@
 </h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Types</span></dt>
-<dd><dl>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.enumeration_int_float_mixture_enum">enumeration
- int_float_mixture_enum</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.enumeration_sign_mixture_enum">enumeration
- sign_mixture_enum</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.enumeration_udt_builtin_mixture_enum">enumeration
- udt_builtin_mixture_enum</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_int_float_mixture__">template
- class int_float_mixture&lt;&gt;</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_sign_mixture__">template
- class sign_mixture&lt;&gt;</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_udt_builtin_mixture__">template
- class udt_builtin_mixture&lt;&gt;</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_is_subranged__">template
- class is_subranged&lt;&gt;</a></span></dt>
-<dt><span class="section"><a href="conversion_traits___traits_class.html#boost_numericconversion.conversion_traits___traits_class.types.template_class_conversion_traits__">template
- class conversion_traits&lt;&gt;</a></span></dt>
-</dl></dd>
 <dt><span class="section">Examples</span></dt>
 </dl></div>
 <div class="section" lang="en">
@@ -555,11 +537,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="bounds___traits_class.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="numeric_converter_policy_classes.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/converter___function_object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,17 +12,17 @@
     Requirements and User-defined-types support">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="definitions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements_and_user_defined_types_support.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="definitions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -401,7 +401,7 @@
 <a name="numeric_conversion_converter_internal"></a><p>
       </p>
 <a name="boost_numericconversion.converter___function_object.member_functions.internal_member_functions"></a><h5>
-<a name="id2623952"></a>
+<a name="id2624118"></a>
         <a href="converter___function_object.html#boost_numericconversion.converter___function_object.member_functions.internal_member_functions">Internal
         Member Functions</a>
       </h5>
@@ -497,11 +497,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="definitions.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements_and_user_defined_types_support.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="definitions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements_and_user_defined_types_support.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,17 +11,17 @@
     function object">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -179,35 +179,42 @@
 <dl>
 <dt><span class="term"><span class="underline">signed integer
         types</span> (§3.9.1/2):</span></dt>
-<dd>
-<code class="computeroutput"><span class="special">{</span><span class="keyword">signed</span>
- <span class="keyword">char</span><span class="special">,</span>
- <span class="keyword">signed</span> <span class="keyword">short</span>
- <span class="keyword">int</span><span class="special">,</span> <span class="keyword">signed</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">signed</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent general integer
- numbers (both negative and positive).
- </dd>
+<dd><p>
+ <code class="computeroutput"><span class="special">{</span><span class="keyword">signed</span>
+ <span class="keyword">char</span><span class="special">,</span>
+ <span class="keyword">signed</span> <span class="keyword">short</span>
+ <span class="keyword">int</span><span class="special">,</span>
+ <span class="keyword">signed</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">signed</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent general integer
+ numbers (both negative and positive).
+ </p></dd>
 <dt><span class="term"><span class="underline">unsigned integer
         types</span> (§3.9.1/3):</span></dt>
-<dd>
-<code class="computeroutput"><span class="special">{</span><span class="keyword">unsigned</span>
- <span class="keyword">char</span><span class="special">,</span>
- <span class="keyword">unsigned</span> <span class="keyword">short</span>
- <span class="keyword">int</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent positive integer
- numbers with modulo-arithmetic.
- </dd>
+<dd><p>
+ <code class="computeroutput"><span class="special">{</span><span class="keyword">unsigned</span>
+ <span class="keyword">char</span><span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">short</span>
+ <span class="keyword">int</span><span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <span class="keyword">int</span><span class="special">}</span></code> Can be used to represent positive integer
+ numbers with modulo-arithmetic.
+ </p></dd>
 <dt><span class="term"><span class="underline">floating-point
         types</span> (§3.9.1/8):</span></dt>
-<dd>
-<code class="computeroutput"><span class="special">{</span><span class="keyword">float</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">}</span></code> Can be used to represent real numbers.
- </dd>
+<dd><p>
+ <code class="computeroutput"><span class="special">{</span><span class="keyword">float</span><span class="special">,</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">long</span> <span class="keyword">double</span><span class="special">}</span></code>
+ Can be used to represent real numbers.
+ </p></dd>
 <dt><span class="term"><span class="underline">integral or
         integer types</span> (§3.9.1/7):</span></dt>
-<dd><code class="computeroutput"><span class="special">{{</span><span class="keyword">signed</span>
- <span class="identifier">integers</span><span class="special">},{</span><span class="keyword">unsigned</span> <span class="identifier">integers</span><span class="special">},</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">and</span> <span class="keyword">wchar_t</span><span class="special">}</span></code></dd>
+<dd><p>
+ <code class="computeroutput"><span class="special">{{</span><span class="keyword">signed</span>
+ <span class="identifier">integers</span><span class="special">},{</span><span class="keyword">unsigned</span> <span class="identifier">integers</span><span class="special">},</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">and</span> <span class="keyword">wchar_t</span><span class="special">}</span></code>
+ </p></dd>
 <dt><span class="term"><span class="underline">arithmetic
         types</span> (§3.9.1/8):</span></dt>
-<dd><code class="computeroutput"><span class="special">{{</span><span class="identifier">integer</span>
- <span class="identifier">types</span><span class="special">},{</span><span class="identifier">floating</span> <span class="identifier">types</span><span class="special">}}</span></code></dd>
+<dd><p>
+ <code class="computeroutput"><span class="special">{{</span><span class="identifier">integer</span>
+ <span class="identifier">types</span><span class="special">},{</span><span class="identifier">floating</span> <span class="identifier">types</span><span class="special">}}</span></code>
+ </p></dd>
 </dl>
 </div>
 <p>
@@ -234,31 +241,23 @@
       </p>
 <div class="note"><table border="0" summary="Note">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
 <tr><td align="left" valign="top">
 <p>
- </p>
-<p>
- Always remember that unsigned types, unlike signed types, have modulo-arithmetic;
- that is, they do not overflow. This means that:
- </p>
-<p>
- </p>
-<p>
- <span class="bold"><strong>-</strong></span> Always be extra careful when mixing
- signed/unsigned types
- </p>
-<p>
- </p>
+ Always remember that unsigned types, unlike signed types, have modulo-arithmetic;
+ that is, they do not overflow. This means that:
+ </p>
 <p>
- <span class="bold"><strong>-</strong></span> Use unsigned types only when you need
- modulo arithmetic or very very large numbers. Don't use unsigned types
- just because you intend to deal with positive values only (you can do
- this with signed types as well).
- </p>
+ <span class="bold"><strong>-</strong></span> Always be extra careful when mixing
+ signed/unsigned types
+ </p>
 <p>
+ <span class="bold"><strong>-</strong></span> Use unsigned types only when you need
+ modulo arithmetic or very very large numbers. Don't use unsigned types
+ just because you intend to deal with positive values only (you can do this
+ with signed types as well).
         </p>
 </td></tr>
 </table></div>
@@ -875,37 +874,31 @@
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term">(a) X-&gt;Y:</span></dt>
-<dd>
-<code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&amp;</span>
- <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">==</span>
- <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>, then
- <code class="computeroutput"><span class="identifier">X</span><span class="special">-&gt;</span><span class="identifier">Y</span></code> is not subranged. Thus, all values
- of type <code class="computeroutput"><span class="identifier">X</span></code> are representable
- in the type <code class="computeroutput"><span class="identifier">Y</span></code>.
- </dd>
+<dd><p>
+ <code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&amp;</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>,
+ then <code class="computeroutput"><span class="identifier">X</span><span class="special">-&gt;</span><span class="identifier">Y</span></code> is not subranged. Thus, all values
+ of type <code class="computeroutput"><span class="identifier">X</span></code> are representable
+ in the type <code class="computeroutput"><span class="identifier">Y</span></code>.
+ </p></dd>
 <dt><span class="term">(b) Y-&gt;X:</span></dt>
-<dd>
-<code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">&amp;</span>
- <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">==</span>
- <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span></code>, then
- <code class="computeroutput"><span class="identifier">Y</span><span class="special">-&gt;</span><span class="identifier">X</span></code> is not subranged. Thus, all values
- of type <code class="computeroutput"><span class="identifier">Y</span></code> are representable
- in the type <code class="computeroutput"><span class="identifier">X</span></code>, but in this
- case, some values are <span class="emphasis"><em>inexactly</em></span> representable (all
- the halves). (note: it is to permit this case that a range is an interval
- of abstract values and not an interval of typed values)
- </dd>
+<dd><p>
+ <code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span> <span class="special">&amp;</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">Y</span><span class="special">)</span></code>,
+ then <code class="computeroutput"><span class="identifier">Y</span><span class="special">-&gt;</span><span class="identifier">X</span></code> is not subranged. Thus, all values
+ of type <code class="computeroutput"><span class="identifier">Y</span></code> are representable
+ in the type <code class="computeroutput"><span class="identifier">X</span></code>, but in
+ this case, some values are <span class="emphasis"><em>inexactly</em></span> representable
+ (all the halves). (note: it is to permit this case that a range is an
+ interval of abstract values and not an interval of typed values)
+ </p></dd>
 <dt><span class="term">(b) X-&gt;Z:</span></dt>
-<dd>
-<code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&amp;</span>
- <span class="identifier">R</span><span class="special">(</span><span class="identifier">Z</span><span class="special">)</span> <span class="special">!=</span>
- <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>, then
- <code class="computeroutput"><span class="identifier">X</span><span class="special">-&gt;</span><span class="identifier">Z</span></code> is subranged. Thus, some values of
- type <code class="computeroutput"><span class="identifier">X</span></code> are not representable
- in the type <code class="computeroutput"><span class="identifier">Z</span></code>, they fall
- out of range <code class="computeroutput"><span class="special">(-</span><span class="number">2.0</span>
- <span class="keyword">and</span> <span class="special">+</span><span class="number">2.0</span><span class="special">)</span></code>.
- </dd>
+<dd><p>
+ <code class="computeroutput"><span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span> <span class="special">&amp;</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">Z</span><span class="special">)</span> <span class="special">!=</span> <span class="identifier">R</span><span class="special">(</span><span class="identifier">X</span><span class="special">)</span></code>,
+ then <code class="computeroutput"><span class="identifier">X</span><span class="special">-&gt;</span><span class="identifier">Z</span></code> is subranged. Thus, some values of
+ type <code class="computeroutput"><span class="identifier">X</span></code> are not representable
+ in the type <code class="computeroutput"><span class="identifier">Z</span></code>, they fall
+ out of range <code class="computeroutput"><span class="special">(-</span><span class="number">2.0</span>
+ <span class="keyword">and</span> <span class="special">+</span><span class="number">2.0</span><span class="special">)</span></code>.
+ </p></dd>
 </dl>
 </div>
 <p>
@@ -1007,11 +1000,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="converter___function_object.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,17 +13,17 @@
     and Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="numeric_converter_policy_classes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../numeric_conversion/history_and_acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../numeric_conversion/history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -174,11 +174,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="numeric_converter_policy_classes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="../numeric_conversion/history_and_acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="numeric_converter_policy_classes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../numeric_conversion/history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/numeric_converter_policy_classes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,17 +13,17 @@
     numeric_cast&lt;&gt;">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="conversion_traits___traits_class.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="improved_numeric_cast__.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -165,28 +165,22 @@
       </p>
 <div class="important"><table border="0" summary="Important">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../images/important.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../../doc/html/images/important.png"></td>
 <th align="left">Important</th>
 </tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- <span class="bold"><strong>RELEASE NOTE for 1.33</strong></span> Previous to boost
- version 1.33, the exception class <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code>
- was named <code class="computeroutput"><span class="identifier">bad_numeric_conversion</span></code>.
- However, in 1.33, the old function <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special">&lt;&gt;</span></code> from <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
- was completly replaced by the new <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special">&lt;&gt;</span></code> in <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
- (and <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code> is including <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
- now). That old function which existed in boost for quite some time used
- the <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code>
- as its exception type so I decided to avoid backward compatibility problems
- by adopting it (guessing that the user base for the old code is wider
- than for the new code).
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ <span class="bold"><strong>RELEASE NOTE for 1.33</strong></span> Previous to boost
+ version 1.33, the exception class <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code>
+ was named <code class="computeroutput"><span class="identifier">bad_numeric_conversion</span></code>.
+ However, in 1.33, the old function <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special">&lt;&gt;</span></code> from <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
+ was completly replaced by the new <code class="computeroutput"><span class="identifier">numeric_cast</span><span class="special">&lt;&gt;</span></code> in <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
+ (and <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code> is including <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">cast</span><span class="special">.</span><span class="identifier">hpp</span></code>
+ now). That old function which existed in boost for quite some time used
+ the <code class="computeroutput"><span class="identifier">bad_numeric_cast</span></code> as
+ its exception type so I decided to avoid backward compatibility problems
+ by adopting it (guessing that the user base for the old code is wider than
+ for the new code).
+ </p></td></tr>
 </table></div>
 </div>
 <a name="numeric_conversion_policy_float_to_int_rounder"></a><p>
@@ -226,20 +220,14 @@
       </p>
 <div class="note"><table border="0" summary="Note">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- These classes are not intended to be general purpose rounding functions
- but specific policies for <code class="computeroutput"><span class="identifier">converter</span><span class="special">&lt;&gt;</span></code>. This is why they are not function
- objects.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ These classes are not intended to be general purpose rounding functions
+ but specific policies for <code class="computeroutput"><span class="identifier">converter</span><span class="special">&lt;&gt;</span></code>. This is why they are not function
+ objects.
+ </p></td></tr>
 </table></div>
 <pre class="programlisting">
 <span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span>
@@ -299,7 +287,7 @@
 <span class="special">}</span> <span class="special">}</span> <span class="comment">// namespace numeric, namespace boost
 </span></pre>
 <a name="boost_numericconversion.numeric_converter_policy_classes.policy_float2introunder.math_functions_used_by_the_rounder_policies"></a><h5>
-<a name="id2633882"></a>
+<a name="id2634042"></a>
         <a href="numeric_converter_policy_classes.html#boost_numericconversion.numeric_converter_policy_classes.policy_float2introunder.math_functions_used_by_the_rounder_policies">Math
         Functions used by the rounder policies</a>
       </h5>
@@ -422,11 +410,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="conversion_traits___traits_class.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="improved_numeric_cast__.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="conversion_traits___traits_class.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/boost_numericconversion/type_requirements_and_user_defined_types_support.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,17 +13,17 @@
     traits class">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="converter___function_object.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="bounds___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="converter___function_object.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -86,7 +86,7 @@
       special semantics</a>
 </h3></div></div></div>
 <a name="boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.conversion_traits"></a><h5>
-<a name="id2625220"></a>
+<a name="id2625386"></a>
         <a href="type_requirements_and_user_defined_types_support.html#boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.conversion_traits">Conversion
         Traits</a>
       </h5>
@@ -130,7 +130,7 @@
         above.
       </p>
 <a name="boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.range_checking"></a><h5>
-<a name="id2625640"></a>
+<a name="id2625806"></a>
         <a href="type_requirements_and_user_defined_types_support.html#boost_numericconversion.type_requirements_and_user_defined_types_support.udt_s_special_semantics.range_checking">Range
         Checking</a>
       </h5>
@@ -183,11 +183,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="converter___function_object.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="bounds___traits_class.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="converter___function_object.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bounds___traits_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/index.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,16 +8,16 @@
 <link rel="next" href="boost_numericconversion/definitions.html" title="Definitions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>
 <div class="chapter" lang="en">
 <div class="titlepage"><div>
 <div><h2 class="title">
@@ -27,7 +27,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</p></div>
 <div><div class="legalnotice">
-<a name="id2604797"></a><p>
+<a name="id2604942"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -178,10 +178,10 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><small><p>Last revised: June 04, 2007 at 03:08:57 GMT</p></small></td>
-<td align="right"><small></small></td>
+<td align="left"><p><small>Last revised: February 12, 2008 at 22:56:38 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_numericconversion/definitions.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a></div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/bibliography.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,17 +10,17 @@
     and Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="history_and_acknowledgments.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+<a accesskey="p" href="history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -73,11 +73,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="history_and_acknowledgments.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+<a accesskey="p" href="history_and_acknowledgments.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html (original)
+++ branches/proto/v3/libs/numeric/conversion/doc/html/numeric_conversion/history_and_acknowledgments.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,17 +12,17 @@
 <link rel="next" href="bibliography.html" title="Bibliography">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -31,7 +31,7 @@
     and Acknowledgments</a>
 </h2></div></div></div>
 <a name="numeric_conversion.history_and_acknowledgments.pre_formal_review"></a><h4>
-<a name="id2636340"></a>
+<a name="id2636499"></a>
       <a href="history_and_acknowledgments.html#numeric_conversion.history_and_acknowledgments.pre_formal_review">Pre-formal
       review</a>
     </h4>
@@ -67,7 +67,7 @@
       </li>
 </ul></div>
 <a name="numeric_conversion.history_and_acknowledgments.post_formal_review"></a><h4>
-<a name="id2636492"></a>
+<a name="id2636651"></a>
       <a href="history_and_acknowledgments.html#numeric_conversion.history_and_acknowledgments.post_formal_review">Post-formal
       review</a>
     </h4>
@@ -85,11 +85,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2004 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../boost_numericconversion/improved_numeric_cast__.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bibliography.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Deleted: branches/proto/v3/libs/numeric/conversion/doc/index.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,119 +0,0 @@
-<HTML>
- <HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
- <TITLE>Boost Numeric Conversion Library - Index</TITLE>
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
- <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
- <TR>
- <TH VALIGN="top" WIDTH="300">
- <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
- ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
- <TH VALIGN="top">
- <H1 ALIGN="center">Boost Numeric Conversion Library</H1> </TH>
- </TR>
- </TABLE>
- <HR>
- <table border="0" cellpadding="0" width="100%">
- <tr>
- <td width="50%" valign="top"><font size="4">This Document</font><br><br>
- &nbsp;&nbsp;&nbsp; Overview<br>
- &nbsp;&nbsp;&nbsp; History and Acknowledgments<br>
- &nbsp;&nbsp;&nbsp; Bibliography<br>
- </td>
- <td width="50%"><font size="4">Other Documents</font><br><br>
- &nbsp;&nbsp;&nbsp; Definitions<br>
- &nbsp;&nbsp;&nbsp; converter<> function object<br>
- &nbsp;&nbsp;&nbsp; Type Requirements and User-defined-types support<br>
- &nbsp;&nbsp;&nbsp; bounds<> traits class<br>
- &nbsp;&nbsp;&nbsp; conversion_traits<> traits class<br>
- &nbsp;&nbsp;&nbsp; Numeric Converter Policy Classes<br>
- &nbsp;&nbsp;&nbsp; Improved numeric_cast<><br>
- </td>
- </tr>
- </table>
-
-<hr>
-<H2><A NAME="Overview"></A>Overview</H2>
-<P>The Boost Numeric Conversion library is a collection of tools to describe and perform
-conversions between values of different numeric types.</p>
-<p>The library includes a special alternative for a subset of <code>std::numeric_limits&lt;&gt;</code>,
-the bounds<> traits class, which provides
-a consistent way to obtain the boundary values for the
-range of a numeric type.</p>
-<p>It also includes a set of trait classes which
- describes the compile-time properties of a conversion from a source to a target
- numeric type. Both arithmetic and <a href="definitions.html#numtypes">user-defined
- numeric types</a> can be used.</p>
-<p>A policy-based converter object which uses <code>conversion_traits</code>
-to select an optimized implementation is supplied.
-Such implementation uses an optimal range checking code suitable for the source/target combination.<br>
- The converter's out-of-range behavior can be customized via an OverflowHandler
- policy.<br>
-For floating-point to integral conversions, the rounding mode can be selected via
-the Float2IntRounder policy.<br>
- A custom low-level conversion routine (for UDTs for instance) can be passed
- via a RawConverter policy.<br>
- The optimized automatic range-checking logic can be overridden via a UserRangeChecker
- policy.</p>
-<hr>
-<H2><A NAME="Ack"></A>History and Acknowledgments</H2>
-<p>Pre-formal review:</p>
-<blockquote>
-<p>Kevlin Henney, with help from David Abrahams and Beman Dawes, originally contributed
-the previous version of numeric_cast&lt;&gt; which already presented the idea of a runtime range check.<br>
- Later, Eric Ford, Kevin Lynch and the author spotted some genericity problems
- with that numeric_cast&lt;&gt; which prevented it from being used in a generic
- layer of math functions.<br>
-An improved numeric_cast&lt;&gt; which properly handled all combinations of arithmetic types was presented.<br>
- David Abrahams and Beman Dawes acknowledged the need of an improved version
- of numeric_cast&lt;&gt; and supported the submission as originally laid out.
- Daryl Walker and Darin Adler made some important comments and proposed fixes
- to the original submission.</p>
- <p>Special thanks go to Björn Karlsoon who helped the author considerably. Having
- found the problems with numeric_cast&lt;&gt; himself, he revised very carefully
- the original submission and spot a subtle bug in the range checking implementation.
- He also wrote part of this documentation and proof-read and corrected other
- parts. And most importantly: the features now presented here in this library
- evolved from the original submission as a result of the useful private communications
- between Björn and the author.</p>
-</blockquote>
-<p>Post-formal review:</p>
-<p>Guillaume Melquiond spoted some documentation and code issues, particularly about rounding conversions.<br>
-The following people contributed an important review of the design, documentation and code: Kevin Lynch, Thorsten Ottosen, Paul Bristow,
-Daryle Walker, Jhon Torjo, Eric Ford, Gennadiy Rozental.
-</p>
-<hr>
-<H2><A NAME="Ref"></A>Bibliography</H2>
-<ul>
- <li>Standard Documents:
- <ol>
-<li>ISO/IEC 14882:98 (C++98 Standard)</li>
-<li>ISO/IEC 9899:1999 (C99 Standard)</li>
-<li>ISO/IEC 10967-1 (Language Independent Arithmetic (LIA), Part I, 1994)</li>
-<li>ISO/IEC 2382-1:1993 (Information Technology - Vocabulary - Part I: Fundamental Terms)</li>
-<li>ANSI/IEEE 754-1985 [and IEC 60559:1989] (Binary floating-point)</li>
-<li>ANSI/IEEE 854-1988 (Radix Independent floating-point)</li>
-<li>ANSI X3/TR-1-82 (Dictionary for Information Processing Systems)</li>
-<li>ISO/IEC JTC1/SC22/WG14/N753 C9X Revision Proposal: LIA-1 Binding: Rationale</li>
-</ol>
-</li>
-<li>Papers:
-<ol>
-<li>David Goldberg <A href="http://citeseer.ist.psu.edu/goldberg91what.html">
- What Every Computer Scientist Should Know About Floating-Point Arithmetic</A></li>
-<li>Prof. William Kahan papers on floating-point.</li>
-</ol>
-</li>
-</ul>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</body>
-</HTML>
\ No newline at end of file

Deleted: branches/proto/v3/libs/numeric/conversion/doc/numeric_cast.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/numeric_cast.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,134 +0,0 @@
-<HTML>
- <HEAD>
- <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
- <TITLE>Boost Numeric Conversion Library - numeric_cast</TITLE>
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
- <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
- <TR>
- <TH VALIGN="top" WIDTH="300">
- <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
- ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
- <TH VALIGN="top">
- <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
- <H1>Header <A
- HREF="../../../../boost/numeric/conversion/cast.hpp">boost/numeric/conversion/cast.hpp</A></H1> </TH>
- </TR>
- </TABLE><HR>
- <H2>Contents</H2>
- <UL>
- <LI>Introduction</LI>
- <LI>numeric_cast</LI>
- <LI>Examples</LI>
- </UL> <HR>
- <H2><A NAME="introduction">Introduction</A></H2>
- <P>The lack of preservation of range makes conversions between numeric
- types error prone. This is true for both implicit conversions and explicit
- conversions (through static_cast). numeric_cast
- detects loss of range when a numeric type is converted, and throws an
- exception if the range cannot be preserved.</P>
- <P>There are several situations where conversions are unsafe: </P>
- <UL>
- <LI>Conversions from an integral type with a wider range than the target
- integral type.</LI>
- <LI> Conversions from unsigned to signed (and vice versa) integral
- types.</LI>
- <LI> Conversions from floating point types to integral types.</LI>
- </UL>
- <P>The C++ Standard does not specify the behavior when a numeric type is
- assigned a value that cannot be represented by the type, except for unsigned
- integral types [3.9.1.4], which must obey the laws of arithmetic modulo
- 2<SUP>n</SUP> (this implies that the result will be reduced modulo the number
- that is one greater than the largest value that can be represented). The fact
- that the behavior for overflow is undefined for all conversions (except the
- aforementioned unsigned to unsigned) makes any code that may produce positive
- or negative overflows exposed to portability issues.</P>
- <P>numeric_cast adheres to the rules for implicit conversions mandated by
- the C++ Standard, such as truncating floating point types when converting to
- integral types. The implementation must guarantee that for a conversion to a
- type that can hold all possible values of the source type, there will be no
- runtime overhead. <BR> <BR> </P> <HR>
- <H2><A NAME="numeric_cast"><CODE>numeric_cast</CODE></A></H2>
- <BLOCKQUOTE>
- <PRE>template&lt;typename Target, typename Source&gt; inline
-typename boost::numeric::converter&lt;Target,Source&gt;::result_type
-numeric_cast ( Source arg )
-{
- return boost::numeric::converter&lt;Target,Source&gt;::convert(arg);
-}
-</PRE> </BLOCKQUOTE>
- <P>numeric_cast returns the result of converting a value of type Source to a value of type
- Target. If out-of-range is detected, an exception is thrown (see
- bad_numeric_cast, <A
- HREF="converter_policies.html#posovr">positive_overflow</A> and
- negative_overflow). <BR> <BR> </P> <HR>
- <H2><A NAME="examples">Examples</A></H2>
- <P>The following example performs some typical conversions between numeric
- types: </P>
- <BLOCKQUOTE>
- <PRE>#include &lt;boost/numeric/conversion/cast.hpp&gt;
-#include &lt;iostream&gt;
-
-int main()
-{
- using boost::numeric_cast;
-
- using boost::numeric::bad_numeric_cast;
- using boost::numeric::positive_overflow;
- using boost::numeric::negative_overflow;
-
- try
- {
- int i=42;
- short s=numeric_cast&lt;short&gt;(i); // This conversion succeeds (is in range)
- }
- catch(negative_overflow&amp; e) {
- std::cout &lt;&lt; e.what();
- }
- catch(positive_overflow&amp; e) {
- std::cout &lt;&lt; e.what();
- }
-
- try
- {
- float f=-42.1234;
-
- // This will cause a boost::numeric::negative_overflow exception to be thrown
- unsigned int i=numeric_cast&lt;unsigned int&gt;(f);
- }
- catch(bad_numeric_cast&amp; e) {
- std::cout &lt;&lt; e.what();
- }
-
- double d= f + numeric_cast&lt;double&gt;(123); // int -> double
-
- unsigned long l=std::numeric_limits&lt;unsigned long&gt;::max();
-
- try
- {
- // This will cause a boost::numeric::positive_overflow exception to be thrown
- // NOTE: *operations* on unsigned integral types cannot cause overflow
- // but *conversions* to a signed type ARE range checked by numeric_cast.
-
- unsigned char c=numeric_cast&lt;unsigned char&gt;(l);
- }
- catch(positive_overflow&amp; e) {
- std::cout &lt;&lt; e.what();
- }
-
-
- return 0;
-}</PRE> </BLOCKQUOTE> <BR> <BR> <HR>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 20 May 2006</P>
-<p>© Copyright Boost 1999</p>
-<p>© Copyright Fernando Luis Cacciola Carballal, 1999,2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>
\ No newline at end of file

Deleted: branches/proto/v3/libs/numeric/conversion/doc/requirements.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/doc/requirements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,116 +0,0 @@
-<HTML>
- <HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <LINK REL="stylesheet" TYPE="text/css" HREF="../../../../boost.css">
- <TITLE>Boost Numeric Conversion Library - Type Requirements and User-defined-types support</TITLE>
- </HEAD>
- <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000ff" VLINK="#800080">
- <TABLE BORDER="0" CELLPADDING="7" CELLSPACING="0" WIDTH="100%"
- SUMMARY="header">
- <TR>
- <TH VALIGN="top" WIDTH="300">
- <H3><A HREF="../../../../index.htm"><IMG HEIGHT="86" WIDTH="277"
- ALT="C++ Boost" SRC="../../../../boost.png" BORDER="0"></A></H3> </TH>
- <TH VALIGN="top">
- <H1 ALIGN="center">Boost Numeric Conversion Library</H1>
- <H1 ALIGN="center">Type Requirements<br>and<br>User-defined-types support</H1>
- </TH>
- </TR>
- </TABLE> <HR>
- <H2>Contents</H2>
- <DL CLASS="page-index">
- <DT>Type Requirements</DT>
- <DT>UDT's special semantics</DT>
- <DT>Special Policies</DT>
- </DL>
-
-
- <HR>
-
-<H2><A NAME="req"></A>Type Requirements</H2>
-<P>Both arithmetic (built-in) and user-defined numeric types require proper specialization of
-<CODE>std::numeric_limits<></CODE> (that is, with (in-class) integral constants).<br>
-The library uses <CODE>std::numeric_limits&lt;T&gt;::is_specialized</CODE> to detect whether
- the type is builtin or user defined, and <CODE>std::numeric_limits&lt;T&gt;::is_integer,
- std::numeric_limits&lt;T&gt;::is_signed</CODE>
- to detect whether the type is integer or floating point; and whether it is signed/unsigned.</P>
-<P>The default Float2IntRounder policies uses unqualified calls to functions <CODE>floor()
- and ceil()</CODE>; but the standard functions are introduced in scope by a
- using directive:</P>
-<PRE>using std::floor ; return floor(s); </PRE>
-<P>Therefore, for builtin arithmetic types, the std functions will be used.
- User defined types should provide overloaded versions of these functions in
- order to use the default rounder policies. If these overloads are defined within a user namespace
- argument dependent lookup (ADL) should find them, but if your compiler has a weak ADL
- you might need to put these functions some place else or write your own rounder policy.</P>
-<P>The default Trunc&lt;&gt; rounder policy needs to determine if the source value
- is positive or not, and for this it evaluates the expression &quot;s &lt; static_cast&lt;S&gt;(0)&quot;.
- Therefore, user defined types require a visible operator &lt; in order to use
- the Trunc<> policy (the default).<br>
-</P>
-
-<HR>
-<H2><A NAME="sem"></A>UDT's special semantics</H2>
-
-<p><u>Conversion Traits</u></p>
-<p>If a User Defined Type is involved in a conversion, it is <i>assumed</i> that
- the UDT has wider range than any built-in
- type, and consequently the values of some <code>converter_traits&lt;&gt;</code>
- members are hardwired regardless of the reality. The following table summarizes
- this:</p>
-
-<li>Target=UDT and Source=built-in
- <blockquote><code>subranged=false</code><br>
- <code>supertype=Target</code><br>
- <code>subtype=Source</code></blockquote>
- </li>
-
- <li>Target=built-in and Source=UDT
- <blockquote><code>subranged=true</code><br>
- <code>supertype=Source</code><br>
- <code>subtype=Target</code></blockquote>
- </li>
-
-<li>Target=UDT and Source=UDT
- <blockquote><code>subranged=false</code><br>
- <code>supertype=Target</code><br>
- <code>subtype=Source</code></blockquote>
- </li>
-<p>The Traits member <code>udt_mixture</code> can be used to detect whether a
- UDT is involved and to infer the validity of the other members as shown above.</p>
-<p><u>Range Checking</u></p>
-<p>Because User Defined Numeric Types might have peculiar ranges (such as an unbounded
- range), this library does not attempt to supply a meaningful range checking
- logic when UDTs are involved in a conversion. Therefore, if either Target or
- Source are not built-in types, the bundled range checking of the <code>converter&lt;&gt;</code>
- function object is automatically disabled. However, it is possible to supply
- a user-defined range-checker. See Special Policies</p>
-
-<HR>
-<H2><A NAME="hooks"></A>Special Policies</H2>
-<p>There are two components of the <code>converter&lt;&gt;</code> class that might
- require special behavior if User Defined Numeric Types are involved: the Range
- Checking and the Raw Conversion.</p>
-<p>When both Target and Source are built-in types, the converter class uses an
- <i>internal</i> range checking logic which is optimized and customized for the
- combined properties of the types.<br>
- However, this internal logic is disabled when either type is User Defined. In
- this case, the user can specify an <i>external</i> range checking policy which
- will be used in place of the internal code.
- See UserRangeChecker policy for details.</p>
-<p>The converter class performs the actual conversion using a Raw Converter policy.
- The default raw converter simply performs a <code>&quot;static_cast&lt;Target&gt;(source)&quot;.</code><br>
- However, if the a UDT is involved, the static_cast might not work. In this case,
- the user can implement and pass a different raw converter policy.
- See RawConverter policy for details </p>
-<HR>
-<P>Back to Numeric Conversion library index</P>
-<HR>
-<P>Revised 23 June 2004</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2004</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file <a href="../../../../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-www.boost.org/LICENSE_1_0.txt</a>)</p>
-</BODY>
-</HTML>

Modified: branches/proto/v3/libs/numeric/conversion/index.html
==============================================================================
--- branches/proto/v3/libs/numeric/conversion/index.html (original)
+++ branches/proto/v3/libs/numeric/conversion/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,11 +1,11 @@
 <html>
 <head>
-<meta http-equiv="refresh" content="0; URL=doc/index.html">
+<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
 </head>
 <body>
 Automatic redirection failed, please go to
-doc/index.html.&nbsp;<hr>
-<p>© Copyright Beman Dawes, 2001</p>
+doc/index.html.&nbsp;<hr>
+<p>� Copyright Beman Dawes, 2001</p>
 <p>Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy
 at www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/numeric/ublas/doc/overview.htm
==============================================================================
--- branches/proto/v3/libs/numeric/ublas/doc/overview.htm (original)
+++ branches/proto/v3/libs/numeric/ublas/doc/overview.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -286,7 +286,7 @@
 <tr>
 <td><code>sasum</code> OR <code>dasum</code></td>
 <td><code>norm_1 (x)</code></td>
-<td><em>sum x<sub>i</sub></em></td>
+<td><em>sum |x<sub>i</sub>|</em></td>
 <td>Computes the <em>l<sub>1</sub></em> (sum) norm of a real vector.</td>
 </tr>
 <tr>

Modified: branches/proto/v3/libs/optional/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/optional/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/optional/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,8 +21,10 @@
     :
         optional
     :
- <xsl:param>toc.max.depth=1
- <xsl:param>toc.section.depth=1
+ <xsl:param>boost.root=../../../..
+ <xsl:param>boost.libraries=../../../libraries.htm
+ <xsl:param>toc.max.depth=2
+ <xsl:param>toc.section.depth=2
         <xsl:param>chunk.section.depth=1
     ;
 

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/a_note_about_optional_bool_.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/a_note_about_optional_bool_.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/a_note_about_optional_bool_.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,17 +12,17 @@
     Guarantees">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="in_place_factories.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="exception_safety_guarantees.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="in_place_factories.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="exception_safety_guarantees.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -74,11 +74,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="in_place_factories.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="exception_safety_guarantees.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="in_place_factories.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="exception_safety_guarantees.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/acknowledgments.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/acknowledgments.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/acknowledgments.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,24 +10,24 @@
     and Portability">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="dependencies_and_portability.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+<a accesskey="p" href="dependencies_and_portability.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="boost_optional.acknowledgments"></a>Acknowledgments
 </h2></div></div></div>
 <a name="boost_optional.acknowledgments.pre_formal_review"></a><h4>
-<a name="id2644860"></a>
+<a name="id2645003"></a>
       <a href="acknowledgments.html#boost_optional.acknowledgments.pre_formal_review">Pre-formal
       review</a>
     </h4>
@@ -66,7 +66,7 @@
       </li>
 </ul></div>
 <a name="boost_optional.acknowledgments.post_formal_review"></a><h4>
-<a name="id2644931"></a>
+<a name="id2645073"></a>
       <a href="acknowledgments.html#boost_optional.acknowledgments.post_formal_review">Post-formal
       review</a>
     </h4>
@@ -112,11 +112,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="dependencies_and_portability.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+<a accesskey="p" href="dependencies_and_portability.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/dependencies_and_portability.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/dependencies_and_portability.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/dependencies_and_portability.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,17 +11,17 @@
 <link rel="next" href="acknowledgments.html" title="Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="implementation_notes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="implementation_notes.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -36,11 +36,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="implementation_notes.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="implementation_notes.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/detailed_semantics.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/detailed_semantics.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/detailed_semantics.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,17 +10,17 @@
 <link rel="next" href="examples.html" title="Examples">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="synopsis.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="synopsis.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -29,36 +29,42 @@
 <p>
       Because <code class="computeroutput"><span class="identifier">T</span></code> might be of reference
       type, in the sequel, those entries whose semantic depends on <code class="computeroutput"><span class="identifier">T</span></code> being of reference type or not will be
- distinguished using the following convention: * If the entry reads: <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span></code><span class="emphasis"><em>(not a ref)</em></span><code class="computeroutput"><span class="special">&gt;</span></code>, the description corresponds only to the
- case where <code class="computeroutput"><span class="identifier">T</span></code> is not of reference
- type. * If the entry reads: <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span></code>,
- the description corresponds only to the case where <code class="computeroutput"><span class="identifier">T</span></code>
- is of reference type. * If the entry reads: <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>,
- the description is the same for both cases.
+ distinguished using the following convention:
     </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ If the entry reads: <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span></code><span class="emphasis"><em>(not
+ a ref)</em></span><code class="computeroutput"><span class="special">&gt;</span></code>, the description
+ corresponds only to the case where <code class="computeroutput"><span class="identifier">T</span></code>
+ is not of reference type.
+ </li>
+<li>
+ If the entry reads: <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&amp;&gt;</span></code>,
+ the description corresponds only to the case where <code class="computeroutput"><span class="identifier">T</span></code>
+ is of reference type.
+ </li>
+<li>
+ If the entry reads: <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>,
+ the description is the same for both cases.
+ </li>
+</ul></div>
 <div class="note"><table border="0" summary="Note">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/html/images/note.png"></td>
 <th align="left">Note</th>
 </tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- The following section contains various <code class="computeroutput"><span class="identifier">assert</span><span class="special">()</span></code> which are used only to show the postconditions
- as sample code. It is not implied that the type <code class="computeroutput"><span class="identifier">T</span></code>
- must support each particular expression but that if the expression is supported,
- the implied condition holds.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ The following section contains various <code class="computeroutput"><span class="identifier">assert</span><span class="special">()</span></code> which are used only to show the postconditions
+ as sample code. It is not implied that the type <code class="computeroutput"><span class="identifier">T</span></code>
+ must support each particular expression but that if the expression is supported,
+ the implied condition holds.
+ </p></td></tr>
 </table></div>
 <p>
       <span class="inlinemediaobject"><img src="../images/space.png" alt="space"></span>
     </p>
 <a name="boost_optional.detailed_semantics.optional_class_member_functions"></a><h4>
-<a name="id2620116"></a>
+<a name="id2620257"></a>
       <a href="detailed_semantics.html#boost_optional.detailed_semantics.optional_class_member_functions">optional
       class member functions</a>
     </h4>
@@ -1334,7 +1340,7 @@
       <span class="inlinemediaobject"><img src="../images/space.png" alt="space"></span>
     </p>
 <a name="boost_optional.detailed_semantics.free_functions"></a><h4>
-<a name="id2633284"></a>
+<a name="id2633426"></a>
       <a href="detailed_semantics.html#boost_optional.detailed_semantics.free_functions">Free functions</a>
     </h4>
 <p>
@@ -1693,11 +1699,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="synopsis.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="synopsis.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/development.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/development.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/development.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,17 +10,17 @@
 <link rel="next" href="synopsis.html" title="Synopsis">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="synopsis.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -292,7 +292,7 @@
         itself which are supported by a special interface.
       </p>
 <a name="boost_optional.development.the_interface.lexically_hinted_value_access_in_the_presence_of_possibly_untitialized_optional_objects__the_operators___and___gt_"></a><h5>
-<a name="id2615242"></a>
+<a name="id2615375"></a>
         <a href="development.html#boost_optional.development.the_interface.lexically_hinted_value_access_in_the_presence_of_possibly_untitialized_optional_objects__the_operators___and___gt_">Lexically-hinted
         Value Access in the presence of possibly untitialized optional objects: The
         operators * and -&gt;</a>
@@ -357,7 +357,7 @@
         incarnated by pointers.
       </p>
 <a name="boost_optional.development.the_interface.optional_lt_t_gt__as_a_model_of_optionalpointee"></a><h5>
-<a name="id2615580"></a>
+<a name="id2615714"></a>
         <a href="development.html#boost_optional.development.the_interface.optional_lt_t_gt__as_a_model_of_optionalpointee">Optional&lt;T&gt;
         as a model of OptionalPointee</a>
       </h5>
@@ -369,19 +369,12 @@
       </p>
 <div class="warning"><table border="0" summary="Warning">
 <tr>
-<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../../../../../doc/html/images/warning.png"></td>
 <th align="left">Warning</th>
 </tr>
-<tr><td align="left" valign="top">
-<p>
- </p>
-<p>
- However, it is particularly important to note that <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code> objects are not pointers. <span class="underline"><code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code> is not, and does not model, a
- pointer</span>.
- </p>
-<p>
- </p>
-</td></tr>
+<tr><td align="left" valign="top"><p>
+ However, it is particularly important to note that <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code> objects are not pointers. <span class="underline"><code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code> is not, and does not model, a pointer</span>.
+ </p></td></tr>
 </table></div>
 <p>
         For instance, <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code>
@@ -405,11 +398,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="synopsis.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="synopsis.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/examples.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/examples.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/examples.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,17 +10,17 @@
 <link rel="next" href="optional_references.html" title="Optional references">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="detailed_semantics.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="optional_references.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="detailed_semantics.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="optional_references.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -141,11 +141,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="detailed_semantics.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="optional_references.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="detailed_semantics.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="optional_references.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/exception_safety_guarantees.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/exception_safety_guarantees.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/exception_safety_guarantees.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,17 +12,17 @@
 <link rel="next" href="type_requirements.html" title="Type requirements">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="a_note_about_optional_bool_.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="a_note_about_optional_bool_.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -116,7 +116,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_optional.exception_safety_guarantees.swap"></a><h4>
-<a name="id2644335"></a>
+<a name="id2644478"></a>
       <a href="exception_safety_guarantees.html#boost_optional.exception_safety_guarantees.swap">Swap</a>
     </h4>
 <p>
@@ -130,11 +130,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="a_note_about_optional_bool_.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="a_note_about_optional_bool_.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="type_requirements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/implementation_notes.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/implementation_notes.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/implementation_notes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,17 +11,17 @@
     and Portability">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="type_requirements.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="dependencies_and_portability.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_requirements.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="dependencies_and_portability.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -42,11 +42,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="type_requirements.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="dependencies_and_portability.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_requirements.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="dependencies_and_portability.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/in_place_factories.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/in_place_factories.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/in_place_factories.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,17 +12,17 @@
     optional&lt;bool&gt;">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="a_note_about_optional_bool_.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="a_note_about_optional_bool_.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -190,11 +190,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="a_note_about_optional_bool_.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="a_note_about_optional_bool_.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/optional_references.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/optional_references.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/optional_references.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,17 +11,17 @@
     semantics for assignment of optional references">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="examples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="examples.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -72,11 +72,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="examples.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="examples.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rebinding_semantics_for_assignment_of_optional_references.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/rebinding_semantics_for_assignment_of_optional_references.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,17 +11,17 @@
 <link rel="next" href="in_place_factories.html" title="In-Place Factories">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="optional_references.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="in_place_factories.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="optional_references.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="in_place_factories.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -75,7 +75,7 @@
 <span class="identifier">assert</span><span class="special">(</span><span class="identifier">b</span><span class="special">==</span><span class="number">3</span><span class="special">);</span>
 </pre>
 <a name="boost_optional.rebinding_semantics_for_assignment_of_optional_references.rationale"></a><h4>
-<a name="id2639932"></a>
+<a name="id2640074"></a>
       <a href="rebinding_semantics_for_assignment_of_optional_references.html#boost_optional.rebinding_semantics_for_assignment_of_optional_references.rationale">Rationale</a>
     </h4>
 <p>
@@ -141,11 +141,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="optional_references.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="in_place_factories.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="optional_references.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="in_place_factories.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/synopsis.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/synopsis.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/synopsis.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,17 +10,17 @@
 <link rel="next" href="detailed_semantics.html" title="Detailed Semantics">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="development.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="detailed_semantics.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="development.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="detailed_semantics.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -137,11 +137,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="development.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="detailed_semantics.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="development.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="detailed_semantics.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/proto/v3/libs/optional/doc/html/boost_optional/type_requirements.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/boost_optional/type_requirements.html (original)
+++ branches/proto/v3/libs/optional/doc/html/boost_optional/type_requirements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,17 +11,17 @@
 <link rel="next" href="implementation_notes.html" title="Implementation Notes">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="exception_safety_guarantees.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="implementation_notes.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="exception_safety_guarantees.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="implementation_notes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -40,11 +40,15 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><small>Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</small></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="exception_safety_guarantees.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="implementation_notes.html"><img src="../images/next.png" alt="Next"></a>
+<a accesskey="p" href="exception_safety_guarantees.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="implementation_notes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/1.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/10.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/11.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/12.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/13.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/14.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/15.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/2.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/3.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/4.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/5.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/6.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/7.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/8.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/callouts/9.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/home.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/important.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/next.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/note.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/prev.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/up.png
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/libs/optional/doc/html/images/warning.png
==============================================================================
Binary file. No diff available.

Modified: branches/proto/v3/libs/optional/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/html/index.html (original)
+++ branches/proto/v3/libs/optional/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,16 +8,16 @@
 <link rel="next" href="boost_optional/development.html" title="Development">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</table>
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_optional/development.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_optional/development.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
 <div class="chapter" lang="en">
 <div class="titlepage"><div>
 <div><h2 class="title">
@@ -27,7 +27,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright © 2003 -2007 Fernando Luis Cacciola Carballal</p></div>
 <div><div class="legalnotice">
-<a name="id2604804"></a><p>
+<a name="id2604939"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -38,9 +38,24 @@
 <dl>
 <dt><span class="section">Motivation</span></dt>
 <dt><span class="section">Development</span></dt>
+<dd><dl>
+<dt><span class="section">The models</span></dt>
+<dt><span class="section">The semantics</span></dt>
+<dt><span class="section">The Interface</span></dt>
+</dl></dd>
 <dt><span class="section">Synopsis</span></dt>
 <dt><span class="section">Detailed Semantics</span></dt>
 <dt><span class="section">Examples</span></dt>
+<dd><dl>
+<dt><span class="section"><a href="boost_optional/examples.html#boost_optional.examples.optional_return_values">Optional
+ return values</a></span></dt>
+<dt><span class="section"><a href="boost_optional/examples.html#boost_optional.examples.optional_local_variables">Optional
+ local variables</a></span></dt>
+<dt><span class="section"><a href="boost_optional/examples.html#boost_optional.examples.optional_data_members">Optional
+ data members</a></span></dt>
+<dt><span class="section"><a href="boost_optional/examples.html#boost_optional.examples.bypassing_expensive_unnecessary_default_construction">Bypassing
+ expensive unnecessary default construction</a></span></dt>
+</dl></dd>
 <dt><span class="section">Optional references</span></dt>
 <dt><span class="section"><a href="boost_optional/rebinding_semantics_for_assignment_of_optional_references.html">Rebinding
     semantics for assignment of optional references</a></span></dt>
@@ -159,10 +174,10 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><small><p>Last revised: May 29, 2007 at 06:31:03 GMT</p></small></td>
-<td align="right"><small></small></td>
+<td align="left"><p><small>Last revised: February 12, 2008 at 22:47:14 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_optional/development.html"><img src="images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_optional/development.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
 </body>
 </html>

Deleted: branches/proto/v3/libs/optional/doc/optional.html
==============================================================================
--- branches/proto/v3/libs/optional/doc/optional.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,1803 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//SoftQuad Software//DTD HoTMetaL PRO 5.0::19981217::extensions to HTML 4.0//EN" "hmpro5.dtd">
-
-<HTML>
-
-<HEAD>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
-<LINK REL="stylesheet" TYPE="text/css" HREF="../../../boost.css">
-<TITLE>Header </TITLE>
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">
-<H2><IMG SRC="../../../boost.png" WIDTH="276" HEIGHT="86">Header &lt;<A
-HREF="../../../boost/optional/optional.hpp">boost/optional/optional.hpp</A>&gt; </H2>
-
-<H2>Contents</H2>
-<DL CLASS="page-index">
- <DT>Motivation</DT>
- <DT>Development</DT>
- <DT>Synopsis</DT>
- <DT>Semantics</DT>
- <DT>Examples</DT>
- <DT>Optional references</DT>
- <DT>Rebinding semantics for assignment of optional references</DT>
- <DT>none_t and none</DT>
- <DT>In-Place Factories</DT>
- <DT>A note about optional<bool></DT>
- <DT>Exception Safety Guarantees</DT>
- <DT>Type requirements</DT>
- <DT>Implementation Notes</DT>
- <DT>Dependencies and Portability</DT>
- <DT>Acknowledgment</DT>
-</DL>
-
-<HR>
-
-<H2><A NAME="mot"></A>Motivation</H2>
-
-<P>Consider these functions which should return a value but which might not have
- a value to return:</P>
-<pre>(A) double sqrt(double n );
-(B) char get_async_input();
-(C) point polygon::get_any_point_effectively_inside();</pre>
-<P>There are different approaches to the issue of not having a value to return.</P>
-<P>A typical approach is to consider the existence of a valid return value as
- a postcondition, so that if the function cannot compute the value to return,
- it has either undefined behavior (and can use assert in a debug build)
- or uses a runtime check and throws an exception if the postcondition is violated.
- This is a reasonable choice for example, for function (A), because the
- lack of a proper return value is directly related to an invalid parameter (out
- of domain argument), so it is appropriate to require the callee to supply only
- parameters in a valid domain for execution to continue normally.</P>
-<P>However, function (B), because of its asynchronous nature, does not fail just
- because it can't find a value to return; so it is incorrect to consider
- such a situation an error and assert or throw an exception. This function must
- return, and somehow, must tell the callee that it is not returning a meaningful
- value.</P>
-<P>A similar situation occurs with function (C): it is conceptually an error to
- ask a <i>null-area</i> polygon to return a point inside itself, but in many
- applications, it is just impractical for performance reasons to treat this as
- an error (because detecting that the polygon has no area might be too expensive
- to be required to be tested previously), and either an arbitrary point (typically
- at infinity) is returned, or some efficient way to tell the callee that there
- is no such point is used.</P>
-<P>There are various mechanisms to let functions communicate that the returned
- value is not valid. One such mechanism, which is quite common since it has zero
- or negligible overhead, is to use a special value which is reserved to communicate
- this. Classical examples of such special values are EOF, string::npos, points
- at infinity, etc...</P>
-<P>When those values exist, i.e. the return type can hold all meaningful values
- <i>plus</i> the <i>signal</i> value, this mechanism is quite appropriate and
- well known. Unfortunately, there are cases when such values do not exist. In
- these cases, the usual alternative is either to use a wider type, such as 'int'
- in place of 'char'; or a compound type, such as std::pair&lt;point,bool&gt;.
-</P>
-<P>Returning a std::pair&lt;T,bool&gt;, thus attaching a boolean flag to the result
- which indicates if the result is meaningful, has the advantage that can be turned
- into a consistent idiom since the first element of the pair can be whatever
- the function would conceptually return. For example, the last two functions
- could have the following interface:</P>
-<pre>std::pair&lt;char,bool&gt; get_async_input();
-std::pair&lt;point,bool&gt; polygon::get_any_point_effectively_inside();</pre>
-<p>These functions use a consistent interface for dealing with possibly inexistent
- results:</p>
-<pre>std::pair&lt;point,bool&gt; p = poly.get_any_point_effectively_inside();
-if ( p.second )
- flood_fill(p.first);
-</pre>
-
-<P>However, not only is this quite a burden syntactically, it is also error
- prone since the user can easily use the function result (first element of the
- pair) without ever checking if it has a valid value.</P>
-<P>Clearly, we need a better idiom.</P>
-
-<H2><A NAME="dev"></A>Development</H2>
-
-<h3><u>The models:</u></h3>
-<P>In C++, we can <i>declare</i> an object (a variable) of type T, and we can give this variable
- an <i>initial value</i> (through an <i>initializer</i>. (c.f. 8.5)).<br>
- When a declaration includes a non-empty initializer (an initial value is given), it is said that
- the object has been <i><b>initialized</b></i>.<br>
- If the declaration uses an empty initializer (no initial value is given),
- and neither default nor value initialization applies, it is said that the object is
- <i><b>uninitialized</b></i>. Its actual value exist but has an
- <i>indeterminate initial value</i> (c.f. 8.5.9).<br>
- <code>optional&lt;T&gt;</code> intends to formalize the notion of initialization
-(or lack of it)
- allowing a program to test whether an object has been initialized and stating that access to
- the value of an uninitialized object is undefined behavior. That is,
- when a variable is declared as optional&lt;T&gt; and no initial value is given,
- the variable is <i>formally</i> uninitialized. A formally uninitialized optional object has conceptually
- no value at all and this situation can be tested at runtime. It is formally <i>
-undefined behavior</i>
- to try to access the value of an uninitialized optional. An uninitialized optional can be <i>assigned</i> a value, in which case its initialization state changes to initialized. Furthermore, given the formal
- treatment of initialization states in optional objects, it is even possible to reset an optional to <i>uninitialized</i>.</P>
-<P>In C++ there is no formal notion of uninitialized objects, which
- means that objects always have an initial value even if indeterminate.<br>
- As discussed on the previous section, this has a drawback because you need additional
- information to tell if an object has been effectively initialized.<br>
- One of the typical ways in which this has been historically
- dealt with is via a special value: EOF,npos,-1, etc... This is equivalent to adding
- the special value to the set of possible values of a given type. This super set of
- T plus some <i>nil_t</i>&mdash;were nil_t is some stateless POD-can be modeled in modern
- languages as a <b>discriminated union</b> of <code>T</code> and <code>nil_t</code>.
- Discriminated unions are often called <i>variants</i>. A variant has a <i>current type</i>,
- which in our case is either <code>T</code> or <code>nil_t</code>.<br>
- Using the Boost.Variant library, this model can be implemented
- in terms of <code>boost::variant&lt;T,nil_t&gt;</code>.<br>
- There is precedent for a discriminated union as a model for an optional value: the
- Haskell <b>Maybe</b> built-in type constructor.
-Thus, a discriminated union <code>T+nil_t</code> serves as a conceptual foundation.</p>
-<p>A <code>variant&lt;T,nil_t&gt;</code> follows naturally from the traditional idiom of extending
-the range of possible values adding an additional sentinel value with the special meaning of <i>Nothing. </i>
-However, this additional <i>Nothing</i> value is largely irrelevant for our purpose
- since our goal is to formalize the notion of uninitialized objects and, while a special extended value <i>can</i> be used to convey that meaning, it is not strictly
-necessary in order to do so.</p>
-<p>The observation made in the last paragraph about the irrelevant nature of the additional <code>nil_t</code> with respect to
-<u>purpose</u> of optional&lt;T&gt; suggests
-an alternative model: a <i>container</i> that either has a value of T or nothing.
-</p>
-<p>As of this writing I don't know of any precedent for a variable-size fixed-capacity (of 1)
-stack-based container model for optional values, yet I believe this is the consequence of
-the lack of practical implementations of such a container rather than an inherent shortcoming
-of the container model.</p>
-<p>In any event, both the discriminated-union or the single-element container models serve as a conceptual
-ground for a class representing optional&mdash;i.e. possibly uninitialized&mdash;objects.<br>
-For instance, these models show the <i>exact</i> semantics required for a wrapper of optional values:</p>
-<p>Discriminated-union:</p>
-<blockquote>
-<li><b>deep-copy</b> semantics: copies of the variant implies copies of the value.</li>
-<li><b>deep-relational</b> semantics: comparisons between variants matches both current types and values</li>
-<li>If the variant's current type is T, it is modeling an <i>initialized</i> optional.</li>
-<li>If the variant's current type is not T, it is modeling an <i>uninitialized</i> optional.</li>
-<li>Testing if the variant's current type is T models testing if the optional is initialized</li>
-<li>Trying to extract a T from a variant when its current type is not T, models the undefined
-behavior
-of trying to access the value of an uninitialized optional</li>
-</blockquote>
-<p>Single-element container:</p>
-<blockquote>
-<li><b>deep-copy</b> semantics: copies of the container implies copies of the value.</li>
-<li><b>deep-relational</b> semantics: comparisons between containers compare container size and if match, contained value</li>
-<li>If the container is not empty (contains an object of type T), it is modeling an <i>initialized</i> optional.</li>
-<li>If the container is empty, it is modeling an <i>uninitialized</i> optional.</li>
-<li>Testing if the container is empty models testing if the optional is initialized</li>
-<li>Trying to extract a T from an empty container models the undefined behavior
-of trying to access the value of an uninitialized optional</li>
-</blockquote>
-
-<h3><u>The semantics:</u></h3>
-<p>Objects of type <code>optional&lt;T&gt;</code> are intended to be used in places where objects of type T would
-but which might be uninitialized. Hence, <code>optional&lt;T&gt;</code>'s purpose is to formalize the
-additional possibly uninitialized state.<br>
-From the perspective of this role, <code>optional&lt;T&gt;</code> can have the same operational semantics of T
-plus the additional semantics corresponding to this special state.<br>
-As such, <code>optional&lt;T&gt;</code> could be thought of as a <i>supertype</i> of T. Of course,
-we can't do that in C++, so we need to compose the desired semantics using a different mechanism.<br>
-Doing it the other way around, that is, making <code>optional&lt;T&gt;</code> a <i>subtype</i> of T is not only
-conceptually wrong but also impractical: it is not allowed to derive from a non-class type, such as a
-built-in type.</p>
-
-<p>We can draw from the purpose of optional&lt;T&gt; the required basic semantics:</p>
-
-<blockquote>
-<p><b>Default Construction:</b> To introduce a formally uninitialized wrapped
-object.</p>
-
-<p><b>Direct Value Construction via copy:</b> To introduce a formally
-initialized wrapped object whose value is obtained as a copy of some object.</p>
-
-<p><b>Deep Copy Construction:</b> To obtain a new yet equivalent wrapped
-object.</p>
-
-<p><b>Direct Value Assignment (upon initialized):</b> To assign a value to the wrapped object.</p>
-
-<p><b>Direct Value Assignment (upon uninitialized):</b> To initialize the wrapped object
-with a value obtained
-as a copy of some object.</p>
-
-<p><b>Assignment (upon initialized):</b> To assign to the wrapped object the value
-of another wrapped object.</p>
-
-<p><b>Assignment (upon uninitialized):</b> To initialize the wrapped object
-with value of another wrapped object.</p>
-
-<p><b>Deep Relational Operations (when supported by the type T):</b> To compare
-wrapped object values taking into account the presence of uninitialized
-states.</p>
-
-<p><b>Value access:</b> To unwrap the wrapped object.</p>
-
-<p><b>Initialization state query:</b> To determine if the object is formally
-initialized or not.</p>
-
-<p><b>Swap:</b> To exchange wrapped objects. (with whatever exception safety
-guarantees are provided by T's swap).</p>
-
-<p><b>De-initialization:</b> To release the wrapped object (if any) and leave
-the wrapper in the uninitialized state.</p>
-
-</blockquote>
-
-<p>Additional operations are useful, such as converting constructors and
-converting assignments, in-place construction and assignment, and safe value
-access via a pointer to the wrapped object or null.</p>
-<h3><u>The Interface:</u></h3>
-<p>Since the purpose of optional is to allow us to use objects with a formal
-uninitialized additional state, the interface could try to follow the interface
-of the underlying T type as much as possible. In order to choose the proper
-degree of adoption of the native T interface, the following must be noted: <br>
-Even if all the operations supported by an instance of type T are defined for
-the entire range of values for such a type, an optional&lt;T&gt; extends such a set of
-values with a new value for which most (otherwise valid) operations are not
-defined in terms of T.<br>
-Furthermore, since optional&lt;T&gt; itself is merely a T wrapper (modeling a T
-supertype), any attempt to define such operations upon uninitialized optionals
-will be totally artificial w.r.t. T.<br>
-This library chooses an interface which follows from T's interface only for
-those operations which are well defined (w.r.t the type T) even if any of the
-operands are uninitialized. These operations include: construction,
-copy-construction, assignment, swap and relational operations.<br>
-For the value access operations, which are undefined (w.r.t the type T) when the
-operand is uninitialized, a different interface is chosen (which will be
-explained next).<br>
-Also, the presence of the possibly uninitialized state requires additional
-operations not provided by T itself which are supported by a special interface.</p>
-<h3>Lexically-hinted Value Access in the presence of possibly untitialized
-optional objects: The operators * and -&gt;</h3>
-<p>A relevant feature of a pointer is that it can have a <b>null
- pointer value</b>. This is a <i>special</i> value which is used to indicate that the
- pointer is not referring to any object at all. In other words, null pointer
- values convey the notion of inexistent objects.</P>
-<P>This meaning of the null pointer value allowed pointers to became a <i>de facto</i> standard
- for handling optional objects because all you have to do to refer to a value which you
- don't really have is to use a null pointer value of the appropriate type.
- Pointers have been used for decades&mdash;from the days of C APIs to modern C++ libraries&mdash;to
- <i>refer</i> to optional (that is, possibly inexistent) objects; particularly
- as optional arguments to a function, but also quite often as optional data members.</P>
-<P>The possible presence of a null pointer value makes the operations that access the
- pointee's value possibly undefined, therefore, expressions which use dereference
- and access operators, such as: <code>( *p = 2 )</code> and <code>( p-&gt;foo())</code>,
- implicitly convey the notion of optionality, and this information is tied to
- the <i>syntax</i> of the expressions. That is, the presence of operators * and -&gt; tell by
- themselves&mdash;without any additional context&mdash;that the expression will be undefined unless
- the implied pointee actually exist.</P>
-<P>Such a <i>de facto</i> idiom for referring to optional objects can be formalized in the form of a
-concept: the OptionalPointee concept.<br>
-This concept captures the syntactic usage of operators *, -> and conversion to bool to convey
-the notion of optionality.</P>
-<P>However, pointers are good to <u>refer</u> to optional objects, but not particularly good
-to handle the optional objects in all other respects, such as initializing or moving/copying
-them. The problem resides in the shallow-copy of pointer semantics: if you need to
- effectively move or copy the object, pointers alone are not enough. The problem
- is that copies of pointers do not imply copies of pointees. For example, as
- was discussed in the motivation, pointers alone cannot be used to return optional
- objects from a function because the object must move outside from the function and
- into the caller's context.<br>
- A solution to the shallow-copy problem that is often used is to resort to dynamic
- allocation and use a smart pointer to automatically handle the details of this.
- For example, if a function is to optionally return an object X, it can use shared_ptr&lt;X&gt;
- as the return value. However, this requires dynamic allocation of X. If X is
- a built-in or small POD, this technique is very poor in terms of required resources.
- Optional objects are essentially values so it is very convenient to be able to use automatic
- storage and deep-copy semantics to manipulate optional values just as we do with ordinary
- values. Pointers do not have this semantics, so are inappropriate for the initialization and
- transport of optional values, yet are quite convenient for handling the access to the
- possible undefined value because of the idiomatic aid present in the OptionalPointee
- concept incarnated by pointers.
-</p>
-<h4>Optional&lt;T&gt; as a model of OptionalPointee</h4>
-<P>For value access operations optional&lt;&gt; uses operators * and -&gt; to lexically
-warn about the possibly uninitialized state appealing to the familiar pointer
-semantics w.r.t. to null pointers.<br>
-<u><b>However, it is particularly important to note that optional<> objects are not pointers. optional&lt;&gt;
-is not, and does not model, a pointer</b></u><b>.</b>
-<P>For instance, optional&lt;&gt; does not have shallow-copy so does not alias: two different optionals
- never refer to the <i>same</i> value unless T itself is a reference (but may have <i>equivalent</i> values).<br>
- The difference between an optional&lt;T&gt; and a pointer must be kept in mind, particularly
- because the semantics of relational operators are different: since optional&lt;T&gt;
- is a value-wrapper, relational operators are deep: they compare optional values;
- but relational operators for pointers are shallow: they do not compare pointee values.<br>
- As a result, you might be able to replace optional&lt;T&gt; by T* on some situations but
- not always. Specifically, on generic code written for both, you cannot use relational
- operators directly, and must use the template functions
- equal_pointees() and
- less_pointees() instead.
-<HR>
-
-<H2><A NAME="synopsis">Synopsis</A></H2>
-
-<PRE>namespace boost {
-
-template&lt;class T>
-class optional
-{
- public :
-
- <i><u>(If T is of reference type, the parameters and results by reference are by value)</u></i>
-
- optional () ;
-
- optional ( none_t ) ;
-
- optional ( T const&amp; v ) ;
-
- optional ( bool condition, T const&amp; v ) ; <u><i>[new in 1.34]</u></i>
-
- optional ( optional const&amp; rhs ) ;
-
- template&lt;class U&gt; explicit optional ( optional&lt;U&gt; const&amp; rhs ) ;
-
- template&lt;InPlaceFactory&gt; explicit optional ( InPlaceFactory const&amp; f ) ;
-
- template&lt;TypedInPlaceFactory&gt; explicit optional ( TypedInPlaceFactory const&amp; f ) ;
-
- optional&amp; operator = ( none_t ) ;
-
- optional&amp; operator = ( T const&amp; v ) ;
-
- optional&amp; operator = ( optional const&amp; rhs ) ;
-
- template&lt;class U&gt; optional&amp; operator = ( optional&lt;U&gt; const&amp rhs ) ;
-
- template&lt;InPlaceFactory&gt; optional&amp; operator = ( InPlaceFactory const&amp f ) ;
-
- template&lt;TypedInPlaceFactory&gt; optional&amp; operator = ( TypedInPlaceFactory const&amp f ) ;
-
- T const& get() const ;
- T& get() ;
-
- T const&amp; get_value_or( T const&amp; default ) const ; <u><i>[new in 1.34]</u></i>
-
- T const* operator -&gt;() const ;
- T* operator -&gt;() ;
-
- T const&amp; operator *() const ;
- T&amp; operator *() ;
-
- T const* get_ptr() const ;
- T* get_ptr() ;
-
- operator <i>unspecified-bool-type</i>() const ;
-
- bool operator!() const ;
-
- <i><u>deprecated methods</u></i>
-
- void reset() ; (deprecated)
- void reset ( T const&amp; ) ; (deprecated)
- bool is_initialized() const ; (deprecated)
-
-} ;
-
-template&lt;class T&gt; inline bool operator == ( optional&lt;T&gt; const& x, optional&lt;T&gt; const& y ) ;
-
-template&lt;class T&gt; inline bool operator != ( optional&lt;T&gt; const& x, optional&lt;T&gt; const& y ) ;
-
-template&lt;class T&gt; inline bool operator < ( optional&lt;T&gt; const& x, optional&lt;T&gt; const& y ) ;
-
-template&lt;class T&gt; inline bool operator > ( optional&lt;T&gt; const& x, optional&lt;T&gt; const& y ) ;
-
-template&lt;class T&gt; inline bool operator <= ( optional&lt;T&gt; const& x, optional&lt;T&gt; const& y ) ;
-
-template&lt;class T&gt; inline bool operator >= ( optional&lt;T&gt; const& x, optional&lt;T&gt; const& y ) ;
-
-template&lt;class T&gt; inline bool operator == ( optional&lt;T&gt; const& x, T const& n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator != ( optional&lt;T&gt; const& x, T const& n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator < ( optional&lt;T&gt; const& x, T const& n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator > ( optional&lt;T&gt; const& x, T const& n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator <= ( optional&lt;T&gt; const& x, T const& n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator >= ( optional&lt;T&gt; const& x, T const& n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator == ( T const& n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator != ( T const& n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator < ( T const& n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator > ( T const& n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator <= ( T const& n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator >= ( T const& n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator == ( optional&lt;T&gt; const& x, none_t n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator != ( optional&lt;T&gt; const& x, none_t n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator < ( optional&lt;T&gt; const& x, none_t n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator > ( optional&lt;T&gt; const& x, none_t n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator <= ( optional&lt;T&gt; const& x, none_t n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator >= ( optional&lt;T&gt; const& x, none_t n ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator == ( none_t n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator != ( none_t n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator < ( none_t n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator > ( none_t n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator <= ( none_t n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline bool operator >= ( none_t n, optional&lt;T&gt; const& y ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline optional&lt;T&gt; make_optional ( T const& v ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline optional&lt;T&gt; make_optional ( bool condition, T const& v ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline T const&amp; get_optional_value_or ( optional&lt;T&gt; const& opt, T const& default ) ; <u><i>[new in 1.34]</u></i>
-
-template&lt;class T&gt; inline T const& get ( optional&lt;T&gt; const& opt ) ;
-
-template&lt;class T&gt; inline T& get ( optional&lt;T&gt; & opt ) ;
-
-template&lt;class T&gt; inline T const* get ( optional&lt;T&gt; const* opt ) ;
-
-template&lt;class T&gt; inline T* get ( optional&lt;T&gt;* opt ) ;
-
-template&lt;class T&gt; inline T const* get_pointer ( optional&lt;T&gt; const& opt ) ;
-
-template&lt;class T&gt; inline T* get_pointer ( optional&lt;T&gt; & opt ) ;
-
-template&lt;class T&gt; inline void swap( optional&lt;T&gt;& x, optional&lt;T&gt;&amp; y ) ;
-
-} // namespace boost
-</PRE>
-
-<HR>
-
-<h2><A NAME="semantics">Detailed Semantics</a></h2>
-
-<p><b><u>NOTES: </u></b></p>
-
-<p><b>Because T might be of reference type, in the sequel, those entries whose
-semantic depends on T being of reference type or not will be distinguished using
-the following convention:<br>
-If the entry reads: optional&lt;T (not a ref)&gt;, the description corresponds only to
-the case where T is not of reference type.<br>
-If the entry reads: optional&lt;T&amp;&gt;, the description corresponds only to the case
-where T is of reference type. <br>
-If the entry reads: optional&lt;T&gt;, the description is the same for both cases.</b></p>
-
-<p><i>The following section contains various assert() which are used only to
-show the postconditions as sample code. It is not implied that the type T must
-support each particular expression but that if the expression is supported, the
-implied condition holds.</i></p>
-
-<hr>
-
-<pre>optional&lt;T&gt;::optional();</pre>
-<blockquote>
-<p><b>Effect:</b> Default-Constructs an <b>optional</b>.</p>
-<p><b>Postconditions:</b> <b>*this</b> is <u>uninitialized</u>.</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> T's default constructor <u><i>is not</i></u> called.</p>
-<p><b>Example:</b></p>
- <blockquote>
- <pre>optional&lt;T&gt; def ;
-assert ( !def ) ;</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T&gt;::optional( none_t );</pre>
-<blockquote>
-<p><b>Effect:</b> Constructs an <b>optional</b> uninitialized.</p>
-<p><b>Postconditions:</b> <b>*this</b> is <u>uninitialized</u>.</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b></p>
-<blockquote>
-<p>T's default constructor <u><i>is not</i></u> called.<br>
-The
-expression <code>boost::none</code> denotes an instance of <code>boost::none_t</code> that can be
-used as the parameter.</p>
-</blockquote>
-<p><b>Example:</b></p>
- <blockquote>
-<pre>
-#include &lt;boost/none.hpp&gt;
-optional&lt;int&gt; n(boost::none) ;
-assert ( !n ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T <i>(not a ref)</i>&gt;::optional( T const&amp; v )</pre>
-<blockquote>
-<p><b>Effect:</b> Directly-Constructs an <b>optional</b>.</p>
-<p><b>Postconditions:</b> <b>*this</b> is <u>initialized</u> and its value is a <i>copy</i> of 'v'.</p>
-<p><b>Throws:</b> Whatever T::T( T const&amp; ) throws.</p>
-<p><b>Notes: </b> T::T( T const&amp; ) is called.</p>
-<p><b>Exception Safety:</b> Exceptions can only be thrown during T::T( T const&amp; );
-in that case, this constructor has no effect.
-</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-T v;
-optional&lt;T&gt; opt(v);
-assert ( *opt == v ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T&amp;&gt;::optional( T&amp; ref )</pre>
-<blockquote>
-<p><b>Effect:</b> Directly-Constructs an <b>optional</b>.</p>
-<p><b>Postconditions:</b> <b>*this</b> is <u>initialized</u> and its value is an
-instance of an internal type wrapping the reference 'ref'.</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-T v;
-T&amp; vref = v ;
-optional&lt;T&amp;&gt; opt(vref);
-assert ( *opt == v ) ;
-++ v ; // mutate referee
-assert (*opt == v);
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T <i>(not a ref)</i>&gt;::optional( bool condition, T const&amp; v ) ;
-optional&lt;T&amp;&gt; ::optional( bool condition, T&amp; v ) ;
-</pre>
-
-<blockquote>
-<p>If <i>condition</i> is <code>true</code>, same as:</p>
-<pre>optional&lt;T <i>(not a ref)</i>&gt;::optional( T const&amp; v )
-optional&lt;T&amp;&gt; ::optional( T&amp; v )
-</pre>
-<p>otherwise, same as:</p>
-<pre>
-optional&lt;T <i>(not a ref)</i>&gt;::optional()
-optional&lt;T&amp;&gt; ::optional()
-</pre>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T <i>(not a ref)</i>&gt;::optional( optional const&amp; rhs );</pre>
-<blockquote>
-<p><b>Effect:</b> Copy-Constructs an <b>optional</b>.</p>
-<p><b>Postconditions:</b> If <b>rhs</b> is initialized, <b>*this</b> is initialized
-and its value is a <i>copy</i> of the value of <b>rhs</b>; else <b>*this</b>
-is uninitialized.</p>
-<p><b>Throws:</b> Whatever T::T( T const& ) throws.</p>
-<p><b>Notes:</b> If <b>rhs</b> is initialized, T::T(T const&amp; ) is called.</p>
-<p><b>Exception Safety:</b> Exceptions can only be thrown during T::T( T const& );
-in that case, this constructor has no effect.
-</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-optional&lt;T&gt; uninit ;
-assert (!uninit);
-
-optional&lt;T&gt; uinit2 ( uninit ) ;
-assert ( uninit2 == uninit );
-
-optional&lt;T&gt; init( T(2) );
-assert ( *init == T(2) ) ;
-
-optional&lt;T&gt; init2 ( init ) ;
-assert ( init2 == init ) ;
-</pre>
-
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T&amp;&gt;::optional( optional const&amp; rhs );</pre>
-<blockquote>
-<p><b>Effect:</b> Copy-Constructs an <b>optional</b>.</p>
-<p><b>Postconditions:</b> If <b>rhs</b> is initialized, <b>*this</b> is initialized
-and its value is another reference to the same object referenced by <b>*rhs</b>; else <b>*this</b>
-is uninitialized.</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> If <b>rhs</b> is initialized, both <b>*this</b> and <b>*rhs</b> will
-reefer to the same object<b> </b>(they alias).</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-optional&lt;T&amp;&gt; uninit ;
-assert (!uninit);
-
-optional&lt;T&amp;&gt; uinit2 ( uninit ) ;
-assert ( uninit2 == uninit );
-
-T v = 2 ; T&amp; ref = v ;
-optional&lt;T&gt; init(ref);
-assert ( *init == v ) ;
-
-optional&lt;T&gt; init2 ( init ) ;
-assert ( *init2 == v ) ;
-
-v = 3 ;
-
-assert ( *init == 3 ) ;
-assert ( *init2 == 3 ) ;
-
-
-</pre>
-
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>template&lt;U&gt; explicit optional&lt;T <i>(not a ref)</i>&gt;::optional( optional&lt;U&gt; const&amp; rhs );</pre>
-<blockquote>
-<p><b>Effect:</b> Copy-Constructs an <b>optional</b>.</p>
-<p><b>Postconditions:</b> If <b>rhs</b> is initialized, <b>*this</b> is initialized
- and its value is a <i>copy</i> of the value of <b>rhs</b> <i>converted</i>
- to type T; else <b>*this</b> is uninitialized.
-</p>
-<p><b>Throws:</b> Whatever T::T( U const& ) throws.</p>
-<p><b>Notes:</b> T::T( U const& ) is called if <b>rhs</b> is initialized, which requires
-a valid conversion from U to T.
-</p>
-<p><b>Exception Safety:</b> Exceptions can only be thrown during T::T( U const& );
-in that case, this constructor has no effect.
-</p>
-<p><b>Example:</b></p>
-<blockquote>
-
-<pre>
-optional&lt;double&gt; x(123.4);
-assert ( *x == 123.4 ) ;
-
-optional&lt;int&gt; y(x) ;
-assert( *y == 123 ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>template&lt;<i>InPlaceFactory</i>&gt; explicit optional&lt;T <i>(not a ref)</i>&gt;::optional( <i>InPlaceFactory</i> const&amp; f );</pre>
-
-<pre>template&lt;<i>TypedInPlaceFactory</i>&gt; explicit optional&lt;T <i>(not a ref)</i>&gt;::optional( <i>TypedInPlaceFactory</i> const&amp; f );</pre>
-<blockquote>
-<p><b>Effect:</b> Constructs an <b>optional</b> with a value of T obtained from
-the factory.</p>
-<p><b>Postconditions:</b>&nbsp; <b>*this</b> is <u>initialized</u> and its value is
-<i>directly given</i> from the factory 'f' (i.e., the value<u> is not copied</u>).</p>
-<p><b>Throws:</b> Whatever the T constructor called by the factory throws.</p>
-<p><b>Notes:</b> See In-Place Factories</p>
-<p><b>Exception Safety:</b> Exceptions can only be thrown during the call to the
-T constructor used by the factory;
-in that case, this constructor has no effect.
-</p>
-<p><b>Example:</b></p>
-<blockquote>
-
-<pre>
-class C { C ( char, double, std::string ) ; } ;
-
-C v('A',123.4,&quot;hello&quot;);
-
-optional&lt;C&gt; x( in_place ('A', 123.4, &quot;hello&quot;) ); // InPlaceFactory used
-optional&lt;C&gt; y( in_place&lt;C&gt;('A', 123.4, &quot;hello&quot;) ); // TypedInPlaceFactory used
-
-assert ( *x == v ) ;
-assert ( *y == v ) ;
-
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&amp; optional&lt;T</i>&gt;::operator= ( none_t n ) ;</pre>
-<blockquote>
-<p><b>Effect:</b> Same as opeator=(optional const&amp; rhs), when rhs is default-constructed (uninitialized).</p>
-<p><b>Postconditions:</b> <b>*this</b> is uninitialized</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-#include &lt;boost/none.hpp&gt;
-
-optional&lt;int&gt; def ;
-optional&lt;int&gt; opt(123) ;
-
-opt = boost::none ;
-
-assert ( opt == def ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&amp; optional&lt;T <i>(not a ref)</i>&gt;::operator= ( T const&amp; rhs ) ;</pre>
-<blockquote>
-<p><b>Effect:</b> Assigns the value 'rhs' to an <b>optional</b>.</p>
-<p><b>Postconditions:</b> <b>*this</b> is initialized
-and its value is a <i>copy</i> of <b>rhs.</b></p>
-<p><b>Throws:</b> Whatever T::operator=( T const& ) or T::T(T const&amp;) throws.</p>
-<p><b>Notes:</b> If <b>*this</b> was initialized, T's assignment operator is
-used, otherwise, its copy-constructor is used.</p>
-<p><b>Exception Safety:</b> In the event of an exception, the initialization
-state of <b>*this</b> is unchanged and its value unspecified as far as optional
-is concerned (it is up to T's operator=()) [If <b>*this</b> is initially
-uninitialized and T's <i>copy constructor</i> fails, <b>*this</b> is left
-properly uninitialized]</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-T x;
-optional&lt;T&gt; def ;
-optional&lt;T&gt; opt(x) ;
-
-T y;
-def = y ;
-assert ( *def == y ) ;
-opt = y ;
-assert ( *opt == y ) ;</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T&amp;&gt;&amp; optional&lt;T&amp;&gt;::operator= ( T&amp; const&amp; rhs ) ;</pre>
-<blockquote>
-<p><b>Effect:</b> (Re)binds thee wrapped reference.</p>
-<p><b>Postconditions:</b> <b>*this</b> is initialized
-and it references the same object referenced by <b>rhs.</b></p>
-<p><b>Notes:</b> If <b>*this</b> was initialized, is is <i>rebound</i> to the
-new object. See here for details on this behavior.</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>
-int a = 1 ;
-int b = 2 ;
-T&amp; ra = a ;
-T&amp; rb = b ;
-optional&lt;int&amp;&gt; def ;
-optional&lt;int&amp;&gt; opt(ra) ;
-
-def = rb ; // binds 'def' to 'b' through 'rb'
-assert ( *def == b ) ;
-*def = a ; // changes the value of 'b' to a copy of the value of 'a'
-assert ( b == a ) ;
-int c = 3;
-int&amp; rc = c ;
-opt = rc ; // REBINDS to 'c' through 'rc'
-c = 4 ;
-assert ( *opt == 4 ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&amp; optional&lt;T <i>(not a ref)</i>&gt;::operator= ( optional const&amp; rhs ) ;</pre>
-<blockquote>
-<p><b>Effect:</b> Assigns another <b>optional</b> to an <b>optional</b>.</p>
-<p><b>Postconditions:</b> If <b>rhs</b> is initialized, <b>*this</b> is initialized
-and its value is a <i>copy</i> of the value of <b>rhs</b>; else <b>*this</b>
-is uninitialized.
-</p>
-<p><b>Throws:</b> Whatever T::operator( T const&amp;) or&nbsp; T::T( T const& ) throws.</p>
-<p><b>Notes:</b> If both<b> *this</b> and <b>rhs</b> are initially initialized,
-T's <i>assignment</i> <i>operator</i> is used. If <b>*this</b> is initially initialized but <b>
-rhs</b> is uninitialized, T's <i>destructor</i> is called. If <b>*this</b> is initially
-uninitialized but rhs is initialized, T's <i>copy constructor</i> is called.
-</p>
-<p><b>Exception Safety:</b> In the event of an exception, the initialization
-state of <b>*this</b> is unchanged and its value unspecified as far as optional
-is concerned (it is up to T's operator=()) [If <b>*this</b> is initially
-uninitialized and T's <i>copy constructor</i> fails, <b>*this</b> is left
-properly uninitialized]</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T v;
-optional&lt;T&gt; opt(v);
-optional&lt;T&gt; def ;
-
-opt = def ;
-assert ( !def ) ;
-// previous value (copy of 'v') destroyed from within 'opt'.
-
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T&amp;&gt; &amp; optional&lt;T&amp;&gt;::operator= ( optional&lt;T&amp;&gt; const&amp; rhs ) ;</pre>
-<blockquote>
-<p><b>Effect:</b> (Re)binds thee wrapped reference.</p>
-<p><b>Postconditions:</b> If <b>*rhs</b> is initialized, *<b>this</b> is initialized
-and it references the same object referenced by <b>*rhs</b>; otherwise, <b>*this</b>
-is uninitialized (and references no object).</p>
-<p><b>Notes:</b> If <b>*this</b> was initialized and so is <b>*rhs</b>, <b>this</b>
-is is <i>rebound</i> to the new object. See here for details on this
-behavior.</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>int a = 1 ;
-int b = 2 ;
-T&amp; ra = a ;
-T&amp; rb = b ;
-optional&lt;int&amp;&gt; def ;
-optional&lt;int&amp;&gt; ora(ra) ;
-optional&lt;int&amp;&gt; orb(rb) ;
-
-def = orb ; // binds 'def' to 'b' through 'rb' wrapped within 'orb'
-assert ( *def == b ) ;
-*def = ora ; // changes the value of 'b' to a copy of the value of 'a'
-assert ( b == a ) ;
-int c = 3;
-int&amp; rc = c ;
-optional&lt;int&amp;&gt; orc(rc) ;
-ora = orc ; // REBINDS ora to 'c' through 'rc'
-c = 4 ;
-assert ( *ora == 4 ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>template&lt;U&gt; optional&amp; optional&lt;T <i>(not a ref)</i>&gt;::operator= ( optional&lt;U&gt; const&amp; rhs ) ;</pre>
-<blockquote>
-<p><b>Effect:</b> Assigns another <i>convertible</i> <b>optional</b> to an <b>optional</b>.</p>
-<p><b>Postconditions:</b> If <b>rhs</b> is initialized, <b>*this</b> is initialized
-and its value is a <i>copy</i> of the value of <b>rhs</b> <i>converted</i>
-to type T; else <b>*this</b> is uninitialized.
-</p>
-<p><b>Throws:</b> Whatever T::operator=( U const&amp; ) or T::T( U const& ) throws.</p>
-<p><b>Notes:</b> If both<b> *this</b> and <b>rhs</b> are initially initialized,
-T's <i>assignment</i> <i>operator</i> (from U) is used. If <b>*this</b> is initially initialized but <b>
-rhs</b> is uninitialized, T's <i>destructor</i> is called. If <b>*this</b> is initially
-uninitialized but rhs is initialized, T's <i>converting constructor</i> (from U) is called.
-</p>
-<p><b>Exception Safety:</b> In the event of an exception, the initialization
-state of <b>*this</b> is unchanged and its value unspecified as far as optional
-is concerned (it is up to T's operator=()) [If <b>*this</b> is initially
-uninitialized and T's <i>converting constructor</i> fails, <b>*this</b> is left
-properly uninitialized]</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T v;
-optional&lt;T&gt; opt0(v);
-optional&lt;U&gt; opt1;
-
-opt1 = opt0 ;
-assert ( *opt1 == static_cast&lt;U&gt;(v) ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-<pre>void optional&lt;T <i>(not a ref)</i>&gt;::reset( T const&amp v ) ;</pre>
-<blockquote>
-<p><b>Deprecated:</b> same as operator= ( T const&amp; v) ;</p>
-</blockquote>
-
-<HR>
-<pre>void optional&lt;T&gt;::reset() ;</pre>
-<blockquote>
-<p><b>Deprecated: </b>Same as operator=( none_t n);</p>
-</blockquote>
-
-<HR>
-
-<pre>T const&amp; optional&lt;T <i>(not a ref)</i>&gt;::operator*() const ;
-T&amp; optional&lt;T<i> (not a ref)</i>&gt;::operator*();</pre>
-
-<pre>T const&amp; optional&lt;T <i>(not a ref)</i>&gt;::get() const ;
-T&amp; optional&lt;T <i>(not a ref)</i>&gt;::get() ;
-
-inline T const&amp; get ( optional&lt;T<i> (not a ref)</i>&gt; const&amp; ) ;
-inline T&amp; get ( optional&lt;T <i>(not a ref)</i>&gt; &amp;) ;
-</pre>
-<blockquote>
-<p><b>Requirements: *this</b> is initialized</p>
-<p><b>Returns:</b> A reference to the contained value</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> The requirement is asserted via BOOST_ASSERT().</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T v ;
-optional&lt;T&gt; opt ( v );
-T const&amp; u = *opt;
-assert ( u == v ) ;
-T w ;
-*opt = w ;
-assert ( *opt == w ) ;
-</pre>
- </blockquote>
- <pre></pre>
-</blockquote>
-
-<HR>
-
-
-<pre>T const&amp; optional&lt;T&amp;&gt;::operator*() const ;
-T &amp; optional&lt;T<i>&amp;</i>&gt;::operator*();</pre>
-
-<pre>T const&amp; optional&lt;T&amp;&gt;::get() const ;
-T&amp; optional&lt;T&amp;&gt;::get() ;
-
-inline T const&amp; get ( optional&lt;T<i>&amp;</i>&gt; const&amp; ) ;
-inline T&amp; get ( optional&lt;T&amp;&gt; &amp;) ;
-</pre>
-<blockquote>
-<p><b>Requirements: *this</b> is initialized</p>
-<p><b>Returns:</b> <u>The</u> reference contained.</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> The requirement is asserted via BOOST_ASSERT().</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T v ;
-T&amp; vref = v ;
-optional&lt;T&amp;&gt; opt ( vref );
-T const&amp; vref2 = *opt;
-assert ( vref2 == v ) ;
-++ v ;
-assert ( *opt == v ) ;</pre>
- </blockquote>
-</blockquote>
-
-<HR>
-
-<pre>T const&amp; optional&lt;T&gt;::get_value_or( T const&amp; default) const ;
-T&amp; optional&lt;T&gt;::get_value_or( T&amp; default ) ;
-
-inline T const&amp; get_optional_value_or ( optional&lt;T&gt; const&amp; o, T const&amp; default ) ;
-inline T&amp; get_optional_value_or ( optional&lt;T&gt;&amp; o, T&amp; default ) ;
-</pre>
-<blockquote>
-<p><b>Returns:</b> A reference to the contained value (which can be itself a reference), if any, or <code>default</code></p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T v, z ;
-optional&lt;T&gt; def;
-T const&amp; y = def.get_value_or(z);
-assert ( y == z ) ;
-
-optional&lt;T&gt; opt ( v );
-T const&amp; u = get_optional_value_or(opt,z);
-assert ( u == v ) ;
-assert ( u != z ) ;
-</pre>
- </blockquote>
- <pre></pre>
-</blockquote>
-
-<HR>
-
-<pre>T const* optional&lt;T&gt;::get_ptr() const ;
-T* optional&lt;T&gt;::get_ptr() ;
-
-inline T const* get_pointer ( optional&lt;T&gt; const&amp; ) ;
-inline T* get_pointer ( optional&lt;T&gt; &amp;) ;
-</pre>
-<blockquote>
-<p><b>Returns:</b> If <b>*this</b> is initialized, a pointer to the contained
-value; else 0 (<i>null</i>).
-</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> If T is a reference type, the pointer is to the referenced object</p>
-<p><b>Notes:</b> The contained value is permanently stored within *this, so
-you should not hold nor delete this pointer.
-</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>int v=123;
-optional&lt;int&gt; opt(v);
-optional&lt;int&gt; const copt(v);
-int* p = opt.get_ptr() ;
-int const* cp = copt.get_ptr();
-assert ( p == get_pointer(opt) );
-assert ( cp == get_pointer(copt) ) ;
-
-int& rv = v ;
-optional&lt;int&amp;&gt; optr(rv);
-
-*(optr.get_ptr()) = 456 ;
-
-assert ( v == 456 );
-
-
-</pre>
-</blockquote>
-</blockquote>
-
-
-<HR>
-
-
-<pre>T const* optional&lt;T&gt;::operator -&gt;() const ;
-T* optional&lt;T&gt;::operator -&gt;() ;
-</pre>
-<blockquote>
-<p><b>Requirements: *this</b> is initialized.</p>
-<p><b>Returns:</b> A pointer to the contained value.</p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> If T is a reference type, the pointer is to the referenced object</p>
-<p><b>Notes:</b> The requirement is asserted via BOOST_ASSERT().</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>struct X { int mdata ; } ;
-X x ;
-optional&lt;X&gt; opt (x);
-opt-&gt;mdata = 2 ;
-
-X& rx = x ;
-
-optional&lt;X&amp;&gt; optr (rx);
-optr-&gt;mdata = 4 ;
-
-assert ( x.mdata = 4 )
-
-</pre>
-</blockquote>
-</blockquote>
-
-
-<HR>
-
-
-<pre>optional&lt;T&gt;::operator <i>unspecified-bool-type</i>() const ;</pre>
-<blockquote>
-<p><b>Returns:</b> An unspecified value which if used on a boolean context is equivalent to (get() != 0)</p>
-<p><b>Throws:</b> Nothing.</p>
-<blockquote>
- <pre>optional&lt;T&gt; def ;
-assert ( def == 0 );
-optional&lt;T&gt; opt ( v ) ;
-assert ( opt );
-assert ( opt != 0 );
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-
-<pre> bool optional&lt;T&gt;::operator!() ;</pre>
-<blockquote>
-<p><b>Returns:</b> If <b>*this</b> is uninitialized, <code>true</code>; else <code>false.</code></p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> This operator is provided for those compilers which can't use
-the <i>unspecified-bool-type</i> operator in certain boolean contexts.
-</p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>optional&lt;T&gt; opt ;
-assert ( !opt );
-*opt = some_T ;
-
-// Notice the &quot;double-bang&quot; idiom here.
-assert ( !!opt ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-
-<HR>
-
-
-<pre>bool optional&lt;T&gt;::is_initialized() const ;</pre>
-<blockquote>
-<p><b>Returns:</b> <i>true</i> is the <b>optional</b> is initialized, <i>false</i>
-otherwise.</p>
-<p><b>Throws:</b> Nothing.</p>
-<blockquote>
- <pre>optional&lt;T&gt; def ;
-assert ( !def.is_initialized() );
-optional&lt;T&gt; opt ( v ) ;
-assert ( opt.is_initialized() );</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-<pre>optional&lt;T <i>(not a ref)</i>&gt; make_optional( T const&amp; v )</pre>
-<blockquote>
-<p><b>Returns:</b> optional&lt;T&gt;(v) for the <i>deduced</i> type <code>T</code> of <code>v</code>.</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>template&lt;class T&gt; void foo ( optional&lt;T&gt; const& opt ) ;
-
-foo ( make_optional(1+1) ) ; // Creates an optional&lt;int&gt;
-</blockquote>
-</blockquote>
-<HR>
-
-<pre>optional&lt;T <i>(not a ref)</i>&gt; make_optional( bool condition, T const&amp; v )</pre>
-<blockquote>
-<p><b>Returns:</b> optional&lt;T&gt;(condition,v) for the <i>deduced</i> type <code>T</code> of <code>v</code>.</p>
-<p><b>Example:</b></p>
-<blockquote>
-<pre>optional&lt;double&gt; calculate_foo()
-{
- double val = compute_foo();
- return make_optional(is_not_nan_and_finite(val),val);
-}
-
-optional&lt;double&gt; v = calculate_foo();
-if ( !v )
- error("foo wasn't computed");
-</blockquote>
-</blockquote>
-
-<HR>
-
-
-<pre>bool operator == ( optional&lt;T&gt; const&amp x, optional&lt;T&gt const&amp y );</pre>
-<blockquote>
-<p><b>Returns:</b> If both <b>x</b> and <b>y</b> are initialied, <code>(*x == *y)</code>.
-If only x or y is initialized, <code>false</code>. If both are uninitialized, <code>true</code>. </p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> Pointers have shallow relational operators while <b>optional</b> has
-deep relational operators. Do not use operator == directly in generic code
-which expect to be given either an optional&lt;T&gt; or a pointer;
-use equal_pointees() instead </p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T x(12);
-T y(12);
-T z(21);
-optional&lt;T&gt; def0 ;
-optional&lt;T&gt; def1 ;
-optional&lt;T&gt; optX(x);
-optional&lt;T&gt; optY(y);
-optional&lt;T&gt; optZ(z);
-
-// Identity always hold
-assert ( def0 == def0 );
-assert ( optX == optX );
-
-// Both uninitialized compare equal
-assert ( def0 == def1 );
-
-// Only one initialized compare unequal.
-assert ( def0 != optX );
-
-// Both initialized compare as (*lhs == *rhs)
-assert ( optX == optY ) ;
-assert ( optX != optZ ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-
-
-<pre>bool operator &lt; ( optional&lt;T&gt; const&amp x, optional&lt;T&gt const&amp y );</pre>
-<blockquote>
-<p><b>Returns:</b> If <b>y</b> is not initialized, <code>false</code>.
-If <b>y</b> is initialized and <b>x</b> is not initialized, <code>true</code>.
-If both <b>x</b> and <b>y</b> are initialized, <code>(*x &lt; *y)</code>. </p>
-<p><b>Throws:</b> Nothing.</p>
-<p><b>Notes:</b> Pointers have shallow relational operators while <b>optional</b> has
-deep relational operators. Do not use operator &lt; directly in generic code
-which expect to be given either an optional&lt;T&gt; or a pointer;
-use less_pointees() instead </p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T x(12);
-T y(34);
-optional&lt;T&gt; def ;
-optional&lt;T&gt; optX(x);
-optional&lt;T&gt; optY(y);
-
-// Identity always hold
-assert ( !(def &lt; def) );
-assert ( optX == optX );
-
-// Both uninitialized compare equal
-assert ( def0 == def1 );
-
-// Only one initialized compare unequal.
-assert ( def0 != optX );
-
-// Both initialized compare as (*lhs == *rhs)
-assert ( optX == optY ) ;
-assert ( optX != optZ ) ;
-</pre>
-</blockquote>
-</blockquote>
-
-<HR>
-<pre>bool operator != ( optional&lt;T&gt; const&amp x, optional&lt;T&gt const&amp y );
-</pre>
-<blockquote>
- <p><b>Returns:</b> !( x == y );</p>
- <p><b>Throws:</b> Nothing.</p>
-</blockquote>
-
-<HR>
-<pre>bool operator &gt; ( optional&lt;T&gt; const&amp x, optional&lt;T&gt const&amp y );
-</pre>
-<blockquote>
- <p><b>Returns:</b> ( y &lt; x );</p>
- <p><b>Throws:</b> Nothing.</p>
-</blockquote>
-
-<HR>
-<pre>bool operator &lt;= ( optional&lt;T&gt; const&amp x, optional&lt;T&gt const&amp y );
-</pre>
-<blockquote>
- <p><b>Returns:</b> !( y&lt;x );</p>
- <p><b>Throws:</b> Nothing.</p>
-</blockquote>
-
-<HR>
-<pre>bool operator &gt;= ( optional&lt;T&gt; const&amp x, optional&lt;T&gt const&amp y );
-</pre>
-<blockquote>
- <p><b>Returns:</b> !( x&lt;y );</p>
- <p><b>Throws:</b> Nothing.</p>
-</blockquote>
-
-<HR>
-<pre>
-bool operator == ( optional&lt;T&gt; const&amp; x, T const&amp; n );
-bool operator != ( optional&lt;T&gt; const&amp; x, T const&amp; n );
-bool operator &lt; ( optional&lt;T&gt; const&amp; x, T const&amp; n );
-bool operator &gt; ( optional&lt;T&gt; const&amp; x, T const&amp; n );
-bool operator &lt;= ( optional&lt;T&gt; const&amp; x, T const&amp; n );
-bool operator &gt;= ( optional&lt;T&gt; const&amp; x, T const&amp; n );
-bool operator == ( T const&amp; n, optional&lt;T&gt; const&amp; y );
-bool operator != ( T const&amp; n, optional&lt;T&gt; const&amp; y );
-bool operator &lt; ( T const&amp; n, optional&lt;T&gt; const&amp; y );
-bool operator &gt; ( T const&amp; n, optional&lt;T&gt; const&amp; y );
-bool operator &lt;= ( T const&amp; n, optional&lt;T&gt; const&amp; y );
-bool operator &gt;= ( T const&amp; n, optional&lt;T&gt; const&amp; y );
-</pre>
-<blockquote>
- <p><b>Returns:</b> The result obtained by replacing the argument 'n' by optional&lt;T&gt;(n).</p>
-</blockquote>
-
-<HR>
-<pre>
-bool operator == ( optional&lt;T&gt; const&amp; x, none_t n );
-bool operator != ( optional&lt;T&gt; const&amp; x, none_t n );
-bool operator &lt; ( optional&lt;T&gt; const&amp; x, none_t n );
-bool operator &gt; ( optional&lt;T&gt; const&amp; x, none_t n );
-bool operator &lt;= ( optional&lt;T&gt; const&amp; x, none_t n );
-bool operator &gt;= ( optional&lt;T&gt; const&amp; x, none_t n );
-bool operator == ( none_t n, optional&lt;T&gt; const&amp; y );
-bool operator != ( none_t n, optional&lt;T&gt; const&amp; y );
-bool operator &lt; ( none_t n, optional&lt;T&gt; const&amp; y );
-bool operator &gt; ( none_t n, optional&lt;T&gt; const&amp; y );
-bool operator &lt;= ( none_t n, optional&lt;T&gt; const&amp; y );
-bool operator &gt;= ( none_t n, optional&lt;T&gt; const&amp; y );
-</pre>
-<blockquote>
- <p><b>Returns:</b> The result obtained by replacing the argument 'n' by optional&lt;T&gt;().</p>
-</blockquote>
-<HR>
-
-<pre>void swap ( optional&lt;T&gt;&amp x, optional&lt;T&gt&amp y );</pre>
-
-<blockquote>
-<p><b>Effect:</b> If both <b>x</b> and <b>y</b> are initialized, calls <code>swap(*x,*y)</code> using std::swap.<br>
-If only one is initialized, say x, calls: <code>y = *x; x = boost:none;</code><br>
-If none is initialized, does nothing. </p>
-<p><b>Postconditions:</b> The states of x and y interchanged.</p>
-<p><b>Throws:</b> If both are initialized, whatever swap(T&amp;,T&amp;) throws.
-If only one is initialized, whatever T::T ( T const&amp; ) throws. </p>
-<p><b>Notes:</b> If both are initialized, swap(T&amp;,T&amp;) is used <i>unqualified</i> but with std::swap introduced in scope.<br>
-If only one is initialized, T::~T() and T::T( T const& ) is called. </p>
-<p><b>Exception Safety:</b> If both are initialized, this operation has the exception
-safety guarantees of swap(T&,T&).<br>
-If only one is initialized, it has the same <b>basic</b> guarantee as optional&lt;T&gt;::operator=( T const& ). </p>
-<p><b>Example:</b></p>
-<blockquote>
- <pre>T x(12);
-T y(21);
-optional&lt;T&gt; def0 ;
-optional&lt;T&gt; def1 ;
-optional&lt;T&gt; optX(x);
-optional&lt;T&gt; optY(y);
-
-boost::swap(def0,def1); // no-op
-
-boost::swap(def0,optX);
-assert ( *def0 == x );
-assert ( !optX );
-
-boost::swap(def0,optX); // Get back to original values
-
-boost::swap(optX,optY);
-assert ( *optX == y );
-assert ( *optY == x );
-
-</pre>
-</blockquote>
-</blockquote>
-<HR>
-
-<H2><A NAME="examples">Examples</A></H2>
-
-<h3>Optional return values</h3>
-<PRE>optional&lt;char&gt; get_async_input()
-{
-&nbsp; if ( !queue.empty() )
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return optional&lt;char&gt;(queue.top());
-&nbsp; else return optional&lt;char&gt;(); // uninitialized
-}
-
-void receive_async_message()
-{
-&nbsp; optional&lt;char&gt; rcv ;
-&nbsp; // The safe boolean conversion from 'rcv' is used here.
-&nbsp; while ( (rcv = get_async_input()) &amp;&amp; !timeout() )
-&nbsp;&nbsp;&nbsp; output(*rcv);
-}
-</pre>
-
-<h3>Optional local variables</h3>
-<pre>optional&lt;string&gt; name ;
-if ( database.open() )
-{
-&nbsp; name = database.lookup(employer_name) ;
-}
-else
-{
-&nbsp; if ( can_ask_user )
-&nbsp;&nbsp;&nbsp; name = user.ask(employer_name) ;
-}
-
-if ( name )
-&nbsp;&nbsp;&nbsp;&nbsp; print(*name);
-else print(&quot;employer's name not found!&quot;);
-</pre>
-
-<h3>Optional data members</h3>
-<pre>class figure
-{
-&nbsp; public:
-
-&nbsp;&nbsp;&nbsp; figure()
-&nbsp;&nbsp;&nbsp; {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // data member 'm_clipping_rect' is uninitialized at this point.
-&nbsp;&nbsp;&nbsp; }
-
-&nbsp;&nbsp;&nbsp; void clip_in_rect ( rect const&amp; rect )
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_clipping_rect = rect ; // initialized here.
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
-
-&nbsp;&nbsp;&nbsp; void draw ( canvas& cvs )
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( m_clipping_rect )
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do_clipping(*m_clipping_rect);
-
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cvs.drawXXX(..);
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
-
-&nbsp;&nbsp;&nbsp; // this can return NULL.
-&nbsp;&nbsp;&nbsp; rect const* get_clipping_rect() { return get_pointer(m_clipping_rect); }
-
-&nbsp; private :
-
-&nbsp;&nbsp;&nbsp; optional&lt;rect&gt; m_clipping_rect ;
-
-};
-</pre>
-<h3>Bypassing expensive unnecessary default construction</h3>
-<pre>class ExpensiveCtor { ... } ;
-class Fred
-{
-&nbsp; Fred() : mLargeVector(10000) {}
-
-&nbsp; std::vector< optional&lt;ExpensiveCtor&gt; > mLargeVector ;
-} ;
-</pre>
-
-<HR>
-
-<H2><A NAME="ref">Optional references</A></H2>
-<p>This library allows the template parameter T to be of reference type: T&amp;, and
-to some extent, T const&amp;.</p>
-
-<p>However, since references are not real objects some restrictions apply and
-some operations are not available in this case:</p>
-
-<ul>
- <li>Converting constructors</li>
- <li>Converting assignment</li>
- <li>InPlace construction</li>
- <li>InPlace assignment</li>
-</ul>
-<p>Also, even though optional&lt;T&amp;&gt; treats it wrapped pseudo-object much as a real
-value, a true real reference is stored, thus aliasing can ocurr: </p>
-
-<ul>
- <li>Copies of optional&lt;T&amp;&gt; copies the reference, but all copied references
- will nonetheless reefer to the same object.</li>
- <li>Value-access provides access to the referenced object rather
- than the reference itself.</li>
- <li>Pointer-access provides a pointer to the referenced object rather
- than a pointer to the reference itself.</li>
-</ul>
-
-<HR>
-<h2><A NAME="refassign">Rebinding semantics for assignment of optional
-references</a></h2>
-<p>If you assign to an <i>uninitialized</i> optional&lt;T&amp;&gt; the effect is to bind (for the first time) to the object.
-Clearly, there is no other choice.</p>
-<pre>int x = 1 ;
-int&amp; rx = x ;
-optional&lt;int&amp;&gt; ora ;
-optional&lt;int&amp;&gt; orb(rx) ;
-ora = orb ; // now 'ora'&nbsp;is bound to 'x' through 'rx'
-*ora = 2 ; // Changes value of 'x' through 'ora'
-assert(x==2);
-</pre>
-<p>If you assign to a bare C++ reference, the assignment is forwarded to the
-referenced object; it's value changes but the reference is never rebound.</p>
-<pre>int a = 1 ;
-int&amp; ra = a ;
-int b = 2 ;
-int&amp; rb = b ;
-ra = rb ; // Changes the VALUE of 'a' to that of 'b'
-assert(a==b);
-b = 3 ;
-assert(ra!=b); // 'ra' is not rebound to 'b'
-</pre>
-<p>Now, if you assign to an <i>initialized</i> optional&lt;T&amp;&gt;, the effect is to <b>rebind</b> to the new object instead of assigning the referee. This is unlike
-bare C++ references.</p>
-<pre>int a = 1 ;
-int b = 2 ;
-int&amp; ra = a ;
-int&amp; rb = b ;
-optional&lt;int&amp;&gt; ora(ra) ;
-optional&lt;int&amp;&gt; orb(rb) ;
-ora = orb ; // 'ora'&nbsp;is <b>rebound</b> to 'b'
-*ora = 3 ; // Changes value of 'b' (not 'a')
-assert(a==1);
-assert(b==3);
-</pre>
-<h3>Rationale:</h3>
-<p>Rebinding semantics for the assignment of <i>initialized</i> optional
-references has been chosen to provide<b><i> </i>consistency among initialization
-states<i> </i></b>even at the expense of lack of consistency with the semantics of bare
-C++ references.<br>
-It is true that optional&lt;U&gt; strives to behave as much as possible as U does
-whenever it is initialized; but in the case when U is T&amp;, doing so would result
-in inconsistent behavior w.r.t to the lvalue initialization state.</p>
-<p>Consider the following code :</p>
-<pre>
-int x = 1 ;
-int& rx = x ;
-void foo ( optional&lt;int&amp;&gt; & outer )
-{
- optional&lt;int&amp;&gt; b(rx);
- outer = b ;
-}
-</pre>
-<p>What should the assignment to 'outer' do?<br>
-If 'outer' is <i>uninitialized</i>, the answer is clear: it should bind to 'x' (so we now have
-a second reference to 'x').<br>
-But what if 'outer' is already <i>initialized?</i><br>
-The assignment could change the value of the
-referenced object (whatever that is), but doing that would be inconsistent with the uninitialized case
-and then you wouldn't be able to reason at compile time about all the references to x since
-the appearance of a new reference to it would depend on wheter the lvalue ('outer')
-is initialized or not.</p>
-<p>Arguably, if rebinding the reference to another object is wrong for your code, then is
-likely that binding it for the fist time via assignment instead of intialization is also wrong.
-In that case, you can always just assign the value to the referenced object directly via
-the access operator <code>*opt=value</code>.</p>
-<p>If rebinding is wrong but first-time binding
-isn't (via assignment), you can always work around the rebinding semantics using a discriminator:</p>
-<pre>
-if ( !opt )
- opt = value ; // first-time binding
-else *opt = value ; // assign to referee without rebinding
-</pre>
-
-<HR>
-
-<H2><A NAME="none">none_t and none</A></H2>
-<p>optional&lt;T&gt; supports uninitialized states with a convenient syntax via a constant of
-the <i>implementation-defined</i> type <code>boost::none_t</code>, identified as <code>boost::none</code>.</p>
-<p>Starting with Boost version 1.34.0, both <code>boost::none_t</code> and <code>boost::none</code> are
-included in <code>boost/none.hpp</code>, which is automatically included by <code>boost/optional/optional.hpp</code>
-</p>
-<p>This contant is similar in purpose to NULL, except that is not a <i>null pointer value</i>. You can use it to initialize
-an optional&lt;T&gt; instance, which has the same effect of a default constructor, and you can assign it which has the
-effect of reseting the optional&lt;T&gt; instance. You can also use it in relational operators to make the predicate expression
-more clear.</p>
-<p>Here are some typical examples:</p>
-<pre>
-#include "boost/optional/optional.hpp" // boost/none.hpp is included automatically
-
-boost::optional&lt;int&gt; foo ( int a )
-{
- return some_condition(a) ? boost::make_optional(a) : boost::none ;
-
- // NOTE: in real code you can just use this: make_optional(some_condition(a), a )
-}
-
-boost::optional&lt;int&gt; opt = boost::none ;
-
-if ( opt == boost::none )
- opt = foo(123);
-
-opt = boost::none ;
-
-</pre>
-
-<HR>
-
-<H2><A NAME="inplace">In-Place Factories</A></H2>
-<p>
-One of the typical problems with wrappers and containers is that their
-interfaces usually provide an operation to initialize or assign the contained
-object as a copy of some other object. This not only requires the underlying
-type to be Copy Constructible, but also requires the existence of a fully
-constructed object, often temporary, just to follow the copy from:</p>
-<pre>struct X
-{
- X ( int, std:::string ) ;
-} ;</pre>
-<pre>class W
-{
- X wrapped_ ;
-
-public:
-
- W ( X const& x ) : wrapped_(x) {}
-} ;</pre>
-<pre>void foo()
-{
- // Temporary object created.
- W ( X(123,"hello") ) ;
-}
-</pre>
-<p>A solution to this problem is to support direct construction of the contained
-object right in the container's storage.<br>
-In this scheme, the user only needs to supply the arguments to the constructor
-to use in the wrapped object construction.</p>
-<pre>class W
-{
- X wrapped_ ;
-
-public:
-
- W ( X const& x ) : wrapped_(x) {}
- W ( int a0, std::string a1) : wrapped_(a0,a1) {}
-} ;</pre>
-<pre>void foo()
-{
- // Wrapped object constructed in-place
- // No temporary created.
- W (123,"hello") ;
-}
-</pre>
-<p>A limitation of this method is that it doesn't scale well to wrapped objects with multiple
-constructors nor to generic code were the constructor overloads are unknown.</p>
-<p>The solution presented in this library is the family of <b>InPlaceFactories</b> and <b>TypedInPlaceFactories</b>.<br>
-These factories are a family of classes which encapsulate an increasing number of arbitrary
-constructor parameters and supply a method to construct an object of a given type using those
-parameters at an address specified by the user via placement new.</p>
-<p>&nbsp;For example, one member of this family looks like:</p>
-<pre>template&lt;class T,class A0, class A1&gt;
-class TypedInPlaceFactory2
-{
- A0 m_a0 ; A1 m_a1 ;
-
-public:
-
- TypedInPlaceFactory2( A0 const& a0, A1 const& a1 ) : m_a0(a0), m_a1(a1) {}
-
- void construct ( void* p ) { new (p) T(m_a0,m_a1) ; }
-} ;
-</pre>
-<p>A wrapper class aware of this can use it as:</p>
-<pre>class W
-{
- X wrapped_ ;
-
-public:
-
- W ( X const& x ) : wrapped_(x) {}
- W ( TypedInPlaceFactory2 const& fac ) { fac.construct(&wrapped_) ; }
-} ;</pre>
-<pre>void foo()
-{
- // Wrapped object constructed in-place via a TypedInPlaceFactory.
- // No temporary created.
- W ( TypedInPlaceFactory2&lt;X,int,std::string&rt;(123,"hello")) ;
-}
-</pre>
-<p>The factories are divided in two groups:<ul>
- <li><u>TypedInPlaceFactories</u>: those which take the target type as a primary template parameter.</li>
- <li><u>InPlaceFactories</u>: those with a template <code>construct(void*)</code> member function taking the target type.</li>
- </ul>
-<p>Within each group, all the family members differ only in the number of parameters allowed.</p>
-<p></p>
-<p>This library provides an overloaded set of helper template functions to construct these factories
-without requiring unnecessary template parameters:</p>
-<pre>template&lt;class A0,...,class AN&gt;
-InPlaceFactory<i>N </i>&lt;A0,...,AN&gt; <b>in_place</b> ( A0 const& a0, ..., AN const& aN) ;
-
-template&lt;class T,class A0,...,class AN&gt;
-TypedInPlaceFactory<i>N </i>&lt;T,A0,...,AN&gt; <b>in_place</b> ( T const& a0, A0 const& a0, ..., AN const& aN) ;</pre>
-
-<p>In-place factories can be used generically by the wrapper and user as follows:</p>
-<pre>class W
-{
- X wrapped_ ;
-
-public:
-
- W ( X const& x ) : wrapped_(x) {}
-
- template<class InPlaceFactory></class>
- W ( InPlaceFactory const& fac ) { fac.template &lt;X&gt;construct(&wrapped_) ; }
-
-} ;</pre>
-<pre>void foo()
-{
- // Wrapped object constructed in-place via a InPlaceFactory.
- // No temporary created.
- W ( in_place(123,"hello") ) ;
-}
-</pre>
-<p>The factories are implemented in the headers: in_place_factory.hpp and typed_in_place_factory.hpp </p>
-
-<HR>
-
-<H2><A NAME="bool">A note about optional&lt;bool&gt;</A></H2>
-<p><code>optional&lt;bool&gt;</code> should be used with special caution and consideration.</p>
-<p>First, it is functionally similar to a tristate boolean (false,maybe,true) &mdash;such as boost::tribool&mdash;except that in a tristate boolean,
-the <i>maybe</i> state <u>represents a valid value</u>, unlike the corresponding state
-of an uninitialized optional&lt;bool&gt;.<br>
-It should be carefully considered if an optional&lt;bool&gt; instead of a tribool is really needed</p>
-<p>Second, optional&lt;&gt; provides a simple way to test initialization state: an implicit conversion to a type that evaluates as a 'bool' in a boolean context.<br>
-Using optional&lt;bool&gt; can lead to subtle errors due to this implicit conversion:</p>
-<pre>void foo ( bool v ) ;
-void bar()
-{
-&nbsp; optional&lt;bool&gt; v = try();
-
-&nbsp; // The following intended to pass the <b>value</b> of 'v' to foo():
-&nbsp; foo(v);
-&nbsp; // But instead, the <i>initialization state</i> is passed
-&nbsp; // due to a typo: it should have been foo(<b>*</b>v).
-}
-</pre>
-<p>The only implicit conversion is to bool, and it is <i>safe</i> in the sense that typical
-integral promotions don't apply (i.e. if foo() takes an 'int' instead, it won't compile). <HR>
-
-<H2><A NAME="exsafety">Exception Safety Guarantees</A></H2>
-
-<H3><u>Assignment:</u></H3>
-<p><i>IMPORTANT NOTE: This changed in 1.33.1 with respect to previous versions</i></p>
-<p>Because of the current implementation (see Implementation Notes), all
-of the assignment methods:</p>
-<ul>
- <li> <code>optional&lt;T&gt;::operator= ( optional&lt;T&gt; const&amp; ) </code>
- </li>
- <li> <code>optional&lt;T&gt;::operator= ( T const&amp; ) </code></li>
- <li> <code>template&lt;class U&gt; optional&lt;T&gt;::operator= ( optional&lt;U&gt; const&amp; ) </code>
- </li>
- <li> <code>template&lt;class InPlaceFactory&gt; optional&lt;T&gt;::operator= (
- InPlaceFactory const&amp; ) </code></li>
- <li> <code>template&lt;class TypedInPlaceFactory&gt; optional&lt;T&gt;::operator= (
- TypedInPlaceFactory const&amp; ) </code></li>
-</ul>
-<p>cannot offer any <i>exception safety guarantee</i> beyond that provided by <code>T::operator=( T const&amp; )</code></p>
-<p>On the other hand, the <i>uninitializing</i> methods:</p>
-<ul>
- <li><code>optional&lt;T&gt;::operator= ( detail::none_t ) </code></li>
-</ul>
-<p>Provides the no-throw guarantee (assuming a no-throw T::~T()) becuse it only destroys the stored object.</p>
-
-<H3><u>Swap:</u></H3>
-<p><code>void swap( optional&lt;T&gt;&amp;, optional&lt;T&gt;&amp; )</code> has the same exception guarantee as <code>swap(T&amp;,T&amp;)</code> when both optionals are initialized.<br>
-If only one of the optionals is initialized, it gives the same exception guarantee as <code>T::operator=( T const&amp; )</code> (since <code>optional&lt;T&gt;::operator=( none_t )</code> doesn't throw).<br>
-If none of the optionals is initialized, it has no-throw guarantee since it is a no-op. </p>
-
-<HR>
-
-<H2><A NAME="requirements">Type requirements</A></H2>
-<p>In general, T must be Copy Constructible and have a no-throw destructor. The copy-constructible requirement is not needed
-if InPlaceFactories are used.<br>
-T <u>is not</u> required to be Default Constructible </p>
-
-<HR>
-
-<H2><A NAME="impl">Implementation Notes</A></H2>
-<p>optional&lt;T&gt; is currently implemented
- using a custom aligned storage facility built from <code>alignment_of</code> and <code>type_with_alignment</code> (both from Type Traits).
- It uses a separate boolean flag to indicate the initialization state.</p>
-<p>Placement new with T's copy constructor and T's destructor
- is explicitly used to initialize and destroy optional values. This allows T's default constructor to be effectively by-passed.</p>
-<p>If assignment is used and the lvalue optional is uninitialized, T's copy constructor is used. However, if it is already initialized, T's assignment operator is used. This prevents optional from offering any exception guarantee stronger than the one offered by the type T itself</p>
-
-<HR>
-
-<H2><A NAME="porta">Dependencies and Portability</A></H2>
-
-<p>The implementation uses <code>type_traits/alignment_of.hpp</code> and <code>type_traits/type_with_alignment.hpp</code></p>
-
-<HR>
-
-<H2><A NAME="credits">Acknowledgments</A></H2>
-<p>Pre-formal review:</p>
-<blockquote>
-<p>Peter Dimov suggested the name 'optional', and was the first to point out the
- need for aligned storage<br>
- Douglas Gregor developed 'type_with_alignment', and later Eric Friedman coded
- 'aligned_storage', which are the core of the optional class implementation.<br>
- Andrei Alexandrescu and Brian Parker also worked with aligned storage techniques
- and their work influenced the current implementation.<br>
- Gennadiy Rozental made extensive and important comments which shaped the design.<br>
- Vesa Karvonen and Douglas Gregor made quite useful comparisons between optional,
- variant and any; and made other relevant comments. Douglas Gregor and Peter
- Dimov commented on comparisons and evaluation in boolean contexts.<br>
- Eric Friedman helped understand the issues involved with aligned storage, move/copy
- operations and exception safety.<br>
- Many others have participated with useful comments: Aleksey Gurotov, Kevlin
- Henney, David Abrahams, and others I can't recall. </p>
-</blockquote>
-<p>Post-formal review:</p>
-<blockquote>
- <p>William Kempf carefully considered the originally proposed interface and
- suggested the new interface which is currently used. He also started and fueled
- the discussion about the analogy optional&lt;&gt;/smart pointer and about
- relational operators.<br>
- Peter Dimov, Joel de Guzman, David Abrahams, Tanton Gibbs and Ian Hanson focused
- on the relational semantics of optional (originally undefined); concluding
- with the fact that the pointer-like interface doesn't make it a pointer so
- it shall have deep relational operators.<br>
- Augustus Saunders also explored the different relational semantics between
- optional&lt;&gt; and a pointer and developed the OptionalPointee concept as
- an aid against potential conflicts on generic code.<br>
- Joel de Guzman noticed that optional&lt;&gt; can be seen as an API on top
- of variant&lt;T,nil_t&gt;.<br>
- Dave Gomboc explained the meaning and usage of the Haskell analog to optional&lt;&gt;:
- the Maybe type constructor (analogy originally pointed out by David Sankel).<br>
- Other comments were posted by Vincent Finn, Anthony Williams, Ed Brey, Rob
- Stewart, and others.<br>
- Joel de Guzman made the case for the support of references and helped with
- the proper semantics.<br>
- Mat Marcus shown the virtues of a value-oriented interface, influencing the
- current design, and contributed the idea of &quot;none&quot;.</p>
-</blockquote>
-<HR>
-
-<P>Revised March 27, 2007</P>
-<p>© Copyright Fernando Luis Cacciola Carballal, 2003-2007</p>
-<p> Use, modification, and distribution are subject to the Boost Software
-License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)</p>
-<P>Developed by <A HREF="mailto:fernando_cacciola_at_[hidden]">Fernando Cacciola</A>,
-the latest version of this file can be found at <A
-HREF="http://www.boost.org">www.boost.org</A>, and the boost discussion lists</P>
-</pre></BODY>
-</HTML>
\ No newline at end of file

Modified: branches/proto/v3/libs/optional/doc/optional.qbk
==============================================================================
--- branches/proto/v3/libs/optional/doc/optional.qbk (original)
+++ branches/proto/v3/libs/optional/doc/optional.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -40,11 +40,6 @@
 
 [/ Icons ]
 
-[def __NOTE__ [$images/note.png]]
-[def __ALERT__ [$images/caution.png]]
-[def __DETAIL__ [$images/note.png]]
-[def __TIP__ [$images/tip.png]]
-[def __QUESTION_MARK__ [$images/question.png]]
 [def __SPACE__ [$images/space.png]]
 [def __GO_TO__ [$images/callouts/R.png]]
 

Modified: branches/proto/v3/libs/optional/doc/reference.qbk
==============================================================================
--- branches/proto/v3/libs/optional/doc/reference.qbk (original)
+++ branches/proto/v3/libs/optional/doc/reference.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -126,6 +126,7 @@
 Because `T` might be of reference type, in the sequel, those entries whose
 semantic depends on `T` being of reference type or not will be distinguished
 using the following convention:
+
 * If the entry reads: `optional<T`['(not a ref)]`>`, the description
 corresponds only to the case where `T` is not of reference type.
 * If the entry reads: `optional<T&>`, the description corresponds only to

Modified: branches/proto/v3/libs/optional/index.html
==============================================================================
--- branches/proto/v3/libs/optional/index.html (original)
+++ branches/proto/v3/libs/optional/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,11 +1,11 @@
 <html>
 <head>
-<meta http-equiv="refresh" content="0; URL=doc/optional.html">
+<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
 </head>
 <body>
 Automatic redirection failed, please go to
-doc/optional.html.&nbsp;<hr>
-<p>© Copyright Beman Dawes, 2001</p>
+doc/html/index.html.&nbsp;<hr>
+<p>� Copyright Beman Dawes, 2001</p>
 <p>Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy
 at www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/parameter/doc/index.rst
==============================================================================
--- branches/proto/v3/libs/parameter/doc/index.rst (original)
+++ branches/proto/v3/libs/parameter/doc/index.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -82,7 +82,7 @@
 
 .. _`Boost Consulting`: http://www.boost-consulting.com
 
-.. _concepts: ../../../more/generic_programming.html#concept
+.. _concepts: http://www.boost.org/more/generic_programming.html#concept
 
 -------------------------------------
 

Modified: branches/proto/v3/libs/parameter/doc/reference.rst
==============================================================================
--- branches/proto/v3/libs/parameter/doc/reference.rst (original)
+++ branches/proto/v3/libs/parameter/doc/reference.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -174,7 +174,7 @@
 
 This section describes the generic type concepts_ used by the Parameter library.
 
-.. _concepts: ../../../../more/generic_programming.html#concept
+.. _concepts: http://www.boost.org/more/generic_programming.html#concept
 
 |ArgumentPack|
 --------------

Modified: branches/proto/v3/libs/pool/doc/implementation/ct_gcd_lcm.html
==============================================================================
--- branches/proto/v3/libs/pool/doc/implementation/ct_gcd_lcm.html (original)
+++ branches/proto/v3/libs/pool/doc/implementation/ct_gcd_lcm.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -112,7 +112,7 @@
     ensure preconditions are met.</li>
 
     <li>&lt;boost/type_traits/ice.hpp&gt; (see <a href=
- "../../../../more/int_const_guidelines.htm">Coding Guidelines for
+ "http://www.boost.org/more/int_const_guidelines.htm">Coding Guidelines for
     Integral Constant Expressions</a>), to help with portability.</li>
   </ul>
 

Modified: branches/proto/v3/libs/preprocessor/doc/ref/seq_tail.html
==============================================================================
--- branches/proto/v3/libs/preprocessor/doc/ref/seq_tail.html (original)
+++ branches/proto/v3/libs/preprocessor/doc/ref/seq_tail.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
         </head>
         <body>
                 <div style="margin-left: 0px;">
- The <b>BOOST_PP_SEQ_HEAD</b> macro expands to all but the first element of a <i>seq</i>.
+ The <b>BOOST_PP_SEQ_TAIL</b> macro expands to all but the first element of a <i>seq</i>.
                 </div>
                 <h4>
                         Usage

Modified: branches/proto/v3/libs/program_options/src/cmdline.cpp
==============================================================================
--- branches/proto/v3/libs/program_options/src/cmdline.cpp (original)
+++ branches/proto/v3/libs/program_options/src/cmdline.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -98,10 +98,10 @@
     {
 #if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
         vector<string> args;
- copy(argv+1, argv+argc, inserter(args, args.end()));
+ copy(argv+1, argv+argc+!argc, inserter(args, args.end()));
         init(args);
 #else
- init(vector<string>(argv+1, argv+argc));
+ init(vector<string>(argv+1, argv+argc+!argc));
 #endif
     }
 

Modified: branches/proto/v3/libs/property_map/LvaluePropertyMap.html
==============================================================================
--- branches/proto/v3/libs/property_map/LvaluePropertyMap.html (original)
+++ branches/proto/v3/libs/property_map/LvaluePropertyMap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -142,7 +142,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000</TD><TD>
-<a HREF="../../people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<a HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/property_map/ReadWritePropertyMap.html
==============================================================================
--- branches/proto/v3/libs/property_map/ReadWritePropertyMap.html (original)
+++ branches/proto/v3/libs/property_map/ReadWritePropertyMap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -89,7 +89,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000</TD><TD>
-<a HREF="../../people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<a HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/property_map/ReadablePropertyMap.html
==============================================================================
--- branches/proto/v3/libs/property_map/ReadablePropertyMap.html (original)
+++ branches/proto/v3/libs/property_map/ReadablePropertyMap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -141,7 +141,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000</TD><TD>
-<a HREF="../../people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<a HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/property_map/WritablePropertyMap.html
==============================================================================
--- branches/proto/v3/libs/property_map/WritablePropertyMap.html (original)
+++ branches/proto/v3/libs/property_map/WritablePropertyMap.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -148,7 +148,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000</TD><TD>
-<a HREF="../../people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<a HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</a>, Univ.of Notre Dame (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/property_map/associative_property_map.html
==============================================================================
--- branches/proto/v3/libs/property_map/associative_property_map.html (original)
+++ branches/proto/v3/libs/property_map/associative_property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -181,7 +181,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2002</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
 <A HREF=http://www.boost.org/people/liequan_lee.htm>Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee1_at_[hidden]">llee1_at_[hidden]</A>)<br>

Modified: branches/proto/v3/libs/property_map/const_assoc_property_map.html
==============================================================================
--- branches/proto/v3/libs/property_map/const_assoc_property_map.html (original)
+++ branches/proto/v3/libs/property_map/const_assoc_property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -181,7 +181,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2002</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
 <A HREF=http://www.boost.org/people/liequan_lee.htm>Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee1_at_[hidden]">llee1_at_[hidden]</A>)<br>

Modified: branches/proto/v3/libs/property_map/identity_property_map.html
==============================================================================
--- branches/proto/v3/libs/property_map/identity_property_map.html (original)
+++ branches/proto/v3/libs/property_map/identity_property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -136,7 +136,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Univ.of Notre Dame (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
 <A HREF=http://www.boost.org/people/liequan_lee.htm>Lie-Quan Lee</A>, Univ.of Notre Dame (<A HREF="mailto:llee1_at_[hidden]">llee1_at_[hidden]</A>)<br>

Modified: branches/proto/v3/libs/property_map/iterator_property_map.html
==============================================================================
--- branches/proto/v3/libs/property_map/iterator_property_map.html (original)
+++ branches/proto/v3/libs/property_map/iterator_property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -225,7 +225,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2002</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Univ.of Notre Dame (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
 <A HREF=http://www.boost.org/people/liequan_lee.htm>Lie-Quan Lee</A>, Univ.of Notre Dame (<A HREF="mailto:llee1_at_[hidden]">llee1_at_[hidden]</A>)<br>

Modified: branches/proto/v3/libs/property_map/property_map.html
==============================================================================
--- branches/proto/v3/libs/property_map/property_map.html (original)
+++ branches/proto/v3/libs/property_map/property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -321,7 +321,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2000-2002</TD><TD>
-<a HREF="../../people/jeremy_siek.htm">Jeremy Siek</a>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
+<a HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</a>, Indiana University (<A HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)
 </TD></TR></TABLE>
 
 </BODY>

Modified: branches/proto/v3/libs/property_map/vector_property_map.html
==============================================================================
--- branches/proto/v3/libs/property_map/vector_property_map.html (original)
+++ branches/proto/v3/libs/property_map/vector_property_map.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -208,7 +208,7 @@
 <TABLE>
 <TR valign=top>
 <TD nowrap>Copyright &copy 2002</TD><TD>
-Jeremy Siek,
+Jeremy Siek,
 Indiana University (<A
 HREF="mailto:jsiek_at_[hidden]">jsiek_at_[hidden]</A>)<br>
 <A HREF=http://www.boost.org/people/liequan_lee.htm>Lie-Quan Lee</A>, Indiana University (<A HREF="mailto:llee1_at_[hidden]">llee1_at_[hidden]</A>)<br>

Modified: branches/proto/v3/libs/ptr_container/doc/default.css
==============================================================================
--- branches/proto/v3/libs/ptr_container/doc/default.css (original)
+++ branches/proto/v3/libs/ptr_container/doc/default.css 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,6 @@
 /*
+boostinspect:nolicense
+
 :Author: David Goodger
 :Contact: goodger_at_[hidden]
 :date: $Date$

Modified: branches/proto/v3/libs/ptr_container/doc/intro.xml
==============================================================================
--- branches/proto/v3/libs/ptr_container/doc/intro.xml (original)
+++ branches/proto/v3/libs/ptr_container/doc/intro.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,3 +1,15 @@
+<!--
+//
+// Boost.Pointer Container
+//
+// Copyright Thorsten Ottosen 2003-2005. Use, modification and
+// distribution is subject to the Boost Software License, Version
+// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see http://www.boost.org/libs/ptr_container/
+//
+-->
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
 "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">

Modified: branches/proto/v3/libs/ptr_container/doc/ptr_container.xml
==============================================================================
--- branches/proto/v3/libs/ptr_container/doc/ptr_container.xml (original)
+++ branches/proto/v3/libs/ptr_container/doc/ptr_container.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,3 +1,15 @@
+<!--
+//
+// Boost.Pointer Container
+//
+// Copyright Thorsten Ottosen 2003-2005. Use, modification and
+// distribution is subject to the Boost Software License, Version
+// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see http://www.boost.org/libs/ptr_container/
+//
+-->
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
 "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">

Modified: branches/proto/v3/libs/ptr_container/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/ptr_container/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/ptr_container/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,3 +1,13 @@
+#//
+#// Boost.Pointer Container
+#//
+#// Copyright Thorsten Ottosen 2003-2008. Use, modification and
+#// distribution is subject to the Boost Software License, Version
+#// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+#// http://www.boost.org/LICENSE_1_0.txt)
+#//
+#// For more information, see http://www.boost.org/libs/ptr_container/
+#//
 
 rule sc-test ( name : extra-sources * )
 {
@@ -8,6 +18,7 @@
 
 
 test-suite ptr_container :
+ [ sc-test ptr_inserter ]
     [ sc-test ptr_vector ]
     [ sc-test ptr_list ]
     [ sc-test ptr_deque ]
@@ -22,4 +33,5 @@
     [ sc-test indirect_fun ]
     [ sc-test serialization : /boost/serialization//boost_serialization ]
     [ sc-test no_exceptions ]
+
     ;

Deleted: branches/proto/v3/libs/ptr_container/test/sequence_point.cpp
==============================================================================
--- branches/proto/v3/libs/ptr_container/test/sequence_point.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,52 +0,0 @@
-#include <iostream>
-
-
-struct Fun
-{
- Fun()
- {
- std::cout << "fun" << std::endl;
- }
-
- template< class T >
- void operator()( T t )
- {
- }
-
- template< class T >
- Fun& operator,( T r )
- {
- return *this;
- }
-};
-
-template< class T >
-Fun foo( T t )
-{
- return Fun();
-}
-
-
-
-struct one
-{
- one()
- {
- std::cout <<"one" << std::endl;
- }
-};
-
-struct two
-{
- two()
- {
- std::cout <<"two" << std::endl;
- }
-};
-
-int main()
-{
- foo( one() )( two() );
-
- Fun(),one(),two(),one();
-}

Modified: branches/proto/v3/libs/python/doc/building.html
==============================================================================
--- branches/proto/v3/libs/python/doc/building.html (original)
+++ branches/proto/v3/libs/python/doc/building.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -158,8 +158,8 @@
 <p>If you're still having trouble, Someone on one of the following
 mailing lists may be able to help:</p>
 <ul class="simple">
-<li>The <a class="reference external" href="../../../more/mailing_lists.htm#jamboost">Boost.Build mailing list</a> for issues related to Boost.Build</li>
-<li>The Python <a class="reference external" href="../../../more/mailing_lists.htm#cplussig">C++ Sig</a> for issues specifically related to Boost.Python</li>
+<li>The <a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#jamboost">Boost.Build mailing list</a> for issues related to Boost.Build</li>
+<li>The Python <a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#cplussig">C++ Sig</a> for issues specifically related to Boost.Python</li>
 </ul>
 </div>
 <div class="section" id="in-case-everything-seemed-to-work">

Modified: branches/proto/v3/libs/python/doc/building.rst
==============================================================================
--- branches/proto/v3/libs/python/doc/building.rst (original)
+++ branches/proto/v3/libs/python/doc/building.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -177,8 +177,8 @@
 * The `Boost.Build mailing list`__ for issues related to Boost.Build
 * The Python `C++ Sig`__ for issues specifically related to Boost.Python
 
-__ ../../../more/mailing_lists.htm#jamboost
-__ ../../../more/mailing_lists.htm#cplussig
+__ http://www.boost.org/more/mailing_lists.htm#jamboost
+__ http://www.boost.org/more/mailing_lists.htm#cplussig
 
 In Case Everything Seemed to Work
 ---------------------------------

Modified: branches/proto/v3/libs/python/doc/index.html
==============================================================================
--- branches/proto/v3/libs/python/doc/index.html (original)
+++ branches/proto/v3/libs/python/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -177,7 +177,7 @@
     <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
     </p>
 
- <p><i>&copy; Copyright <a href="../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002-2003.</i></p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/news.html
==============================================================================
--- branches/proto/v3/libs/python/doc/news.html (original)
+++ branches/proto/v3/libs/python/doc/news.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -329,7 +329,7 @@
    19 November 2004
   <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
 
- <p><i>&copy; Copyright <a href="../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
   Abrahams</a> 2002-2003.</i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/projects.html
==============================================================================
--- branches/proto/v3/libs/python/doc/projects.html (original)
+++ branches/proto/v3/libs/python/doc/projects.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -439,7 +439,7 @@
   <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
    15 July, 2003</p>
 
- <p><i>&copy; Copyright <a href="../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
   Abrahams</a> 2002-2003.</i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/support.html
==============================================================================
--- branches/proto/v3/libs/python/doc/support.html (original)
+++ branches/proto/v3/libs/python/doc/support.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -67,7 +67,7 @@
      12 Sept, 2003 <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
     </p>
 
- <p><i>&copy; Copyright <a href="../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2003.</i></p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/Apr2002.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/Apr2002.html (original)
+++ branches/proto/v3/libs/python/doc/v2/Apr2002.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -160,7 +160,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/CallPolicies.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/CallPolicies.html (original)
+++ branches/proto/v3/libs/python/doc/v2/CallPolicies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -154,7 +154,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
 
     <p>Permission to copy, use, modify, sell and distribute this software is
     granted provided this copyright notice appears in all copies. This

Modified: branches/proto/v3/libs/python/doc/v2/Dereferenceable.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/Dereferenceable.html (original)
+++ branches/proto/v3/libs/python/doc/v2/Dereferenceable.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -63,7 +63,7 @@
   18 December, 2003
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002-2003. </i>
 
 <p>Permission to copy, use, modify, sell

Modified: branches/proto/v3/libs/python/doc/v2/Extractor.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/Extractor.html (original)
+++ branches/proto/v3/libs/python/doc/v2/Extractor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -85,7 +85,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i>
 
 <p>Permission to copy, use, modify, sell

Modified: branches/proto/v3/libs/python/doc/v2/HolderGenerator.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/HolderGenerator.html (original)
+++ branches/proto/v3/libs/python/doc/v2/HolderGenerator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -63,7 +63,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i>
 
 <p>Permission to copy, use, modify, sell

Modified: branches/proto/v3/libs/python/doc/v2/Jun2002.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/Jun2002.html (original)
+++ branches/proto/v3/libs/python/doc/v2/Jun2002.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -223,7 +223,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/Mar2002.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/Mar2002.html (original)
+++ branches/proto/v3/libs/python/doc/v2/Mar2002.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -231,7 +231,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/May2002.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/May2002.html (original)
+++ branches/proto/v3/libs/python/doc/v2/May2002.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -305,7 +305,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/ObjectWrapper.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/ObjectWrapper.html (original)
+++ branches/proto/v3/libs/python/doc/v2/ObjectWrapper.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -147,7 +147,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/ResultConverter.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/ResultConverter.html (original)
+++ branches/proto/v3/libs/python/doc/v2/ResultConverter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -113,7 +113,7 @@
   09 May, 2002 <!--Luann's birthday! -->
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i>
 
 <p>Permission to copy, use, modify, sell

Modified: branches/proto/v3/libs/python/doc/v2/acknowledgments.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/acknowledgments.html (original)
+++ branches/proto/v3/libs/python/doc/v2/acknowledgments.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -31,7 +31,7 @@
     </table>
     <hr>
 
- <p>Dave Abrahams is
+ <p>Dave Abrahams is
     the architect, designer, and implementor of <b>Boost.Python</b>.</p>
 
     <p><a href="mailto:brett.calcott_at_[hidden]">Brett Calcott</a>
@@ -47,7 +47,7 @@
     argument support</a> and wrote the excellent <a href=
     "../tutorial/index.html">tutorial documentation</a>.</p>
 
- <p><a href="../../../../people/ralf_w_grosse_kunstleve.htm">Ralf W.
+ <p><a href="http://www.boost.org/people/ralf_w_grosse_kunstleve.htm">Ralf W.
     Grosse-Kunstleve</a> implemented the <a href="pickle.html">pickle
     support</a>, and has enthusiastically supported the library since its
     birth, contributing to design decisions and providing invaluable
@@ -59,15 +59,15 @@
     C++ and Python for solving the problems of large-scale software
     construction.</p>
 
- <p>Aleksey Gurtovoy
+ <p>Aleksey Gurtovoy
     wrote an incredible C++ <a href="http://www.mywikinet.com/mpl">Template
     Metaprogramming Library</a> which allows Boost.Python to perform much of
     its compile-time magic. In addition, Aleksey very generously contributed
     his time and deep knowledge of the quirks of various buggy compilers to
     help us get around problems at crucial moments.</p>
 
- <p>Paul Mensonides,
- building on the work <a href="../../../../people/vesa_karvonen.htm">Vesa
+ <p>Paul Mensonides,
+ building on the work <a href="http://www.boost.org/people/vesa_karvonen.htm">Vesa
     Karvonen</a>, wrote a similarly amazing <a href=
     "../../../preprocessor/doc/index.html">Preprocessor Metaprogramming
     Library</a>, and generously contributed the time and expertise to get it
@@ -129,7 +129,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/args.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/args.html (original)
+++ branches/proto/v3/libs/python/doc/v2/args.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -193,7 +193,7 @@
     <p>Revised 01 August, 2003</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002-2003.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002-2003.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/call.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/call.html (original)
+++ branches/proto/v3/libs/python/doc/v2/call.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -79,7 +79,7 @@
   9 May, 2002 <!-- Luann's birthday! -->
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/call_method.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/call_method.html (original)
+++ branches/proto/v3/libs/python/doc/v2/call_method.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -155,7 +155,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/callbacks.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/callbacks.html (original)
+++ branches/proto/v3/libs/python/doc/v2/callbacks.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -248,7 +248,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/class.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/class.html (original)
+++ branches/proto/v3/libs/python/doc/v2/class.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -784,7 +784,7 @@
 <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
    1 November, 2005 <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
   Abrahams</a> 2002.</i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/configuration.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/configuration.html (original)
+++ branches/proto/v3/libs/python/doc/v2/configuration.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -184,7 +184,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/copy_const_reference.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/copy_const_reference.html (original)
+++ branches/proto/v3/libs/python/doc/v2/copy_const_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -143,7 +143,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/copy_non_const_reference.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/copy_non_const_reference.html (original)
+++ branches/proto/v3/libs/python/doc/v2/copy_non_const_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -143,7 +143,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/data_members.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/data_members.html (original)
+++ branches/proto/v3/libs/python/doc/v2/data_members.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -223,7 +223,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/def.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/def.html (original)
+++ branches/proto/v3/libs/python/doc/v2/def.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -185,7 +185,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/default_call_policies.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/default_call_policies.html (original)
+++ branches/proto/v3/libs/python/doc/v2/default_call_policies.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -166,7 +166,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
   Abrahams</a> 2002.</i> Distributed under the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/doc/v2/definitions.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/definitions.html (original)
+++ branches/proto/v3/libs/python/doc/v2/definitions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -96,7 +96,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/dict.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/dict.html (original)
+++ branches/proto/v3/libs/python/doc/v2/dict.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -146,7 +146,7 @@
     <p>Revised 30 September, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/docstring_options.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/docstring_options.html (original)
+++ branches/proto/v3/libs/python/doc/v2/docstring_options.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -380,7 +380,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
 
   <p><i>&copy; Copyright <a href=
- "../../../../people/ralf_w_grosse_kunstleve.htm">Ralf W.
+ "http://www.boost.org/people/ralf_w_grosse_kunstleve.htm">Ralf W.
   Grosse-Kunstleve</a> 2006.</i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/enum.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/enum.html (original)
+++ branches/proto/v3/libs/python/doc/v2/enum.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -228,7 +228,7 @@
      
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/errors.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/errors.html (original)
+++ branches/proto/v3/libs/python/doc/v2/errors.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -283,7 +283,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/exception_translator.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/exception_translator.html (original)
+++ branches/proto/v3/libs/python/doc/v2/exception_translator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -144,7 +144,7 @@
     <p>Revised 03 October, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/extract.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/extract.html (original)
+++ branches/proto/v3/libs/python/doc/v2/extract.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -226,7 +226,7 @@
     <p>Revised 15 November, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/faq.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/faq.html (original)
+++ branches/proto/v3/libs/python/doc/v2/faq.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -856,6 +856,6 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002-2006.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002-2006.</i></p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/feb2002.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/feb2002.html (original)
+++ branches/proto/v3/libs/python/doc/v2/feb2002.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -361,7 +361,7 @@
 
 
   <p class="c3">&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002. Distributed
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002. Distributed
   under the Boost Software License, Version 1.0. (See accompanying file
   LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)</p>
 

Modified: branches/proto/v3/libs/python/doc/v2/handle.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/handle.html (original)
+++ branches/proto/v3/libs/python/doc/v2/handle.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -329,7 +329,7 @@
     </p>
 
     <p class="c4">&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002
 .</p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/has_back_reference.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/has_back_reference.html (original)
+++ branches/proto/v3/libs/python/doc/v2/has_back_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -218,7 +218,7 @@
     </p>
 
     <p class="c3">&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002
 .</p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/implicit.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/implicit.html (original)
+++ branches/proto/v3/libs/python/doc/v2/implicit.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -157,7 +157,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/init.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/init.html (original)
+++ branches/proto/v3/libs/python/doc/v2/init.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -245,7 +245,7 @@
      
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/instance_holder.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/instance_holder.html (original)
+++ branches/proto/v3/libs/python/doc/v2/instance_holder.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -213,7 +213,7 @@
 
 
     <p class="c4">&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.
 
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/iterator.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/iterator.html (original)
+++ branches/proto/v3/libs/python/doc/v2/iterator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -392,7 +392,7 @@
         </p>
 
         <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/list.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/list.html (original)
+++ branches/proto/v3/libs/python/doc/v2/list.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -136,7 +136,7 @@
     <p>Revised 1 October, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/long.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/long.html (original)
+++ branches/proto/v3/libs/python/doc/v2/long.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -113,7 +113,7 @@
     <p>Revised 1 October, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/lvalue_from_pytype.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/lvalue_from_pytype.html (original)
+++ branches/proto/v3/libs/python/doc/v2/lvalue_from_pytype.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -295,7 +295,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/make_function.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/make_function.html (original)
+++ branches/proto/v3/libs/python/doc/v2/make_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -204,7 +204,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/manage_new_object.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/manage_new_object.html (original)
+++ branches/proto/v3/libs/python/doc/v2/manage_new_object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -139,7 +139,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/module.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/module.html (original)
+++ branches/proto/v3/libs/python/doc/v2/module.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -103,7 +103,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i> Distributed
   under the Boost Software License, Version 1.0. (See accompanying file
   LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/doc/v2/numeric.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/numeric.html (original)
+++ branches/proto/v3/libs/python/doc/v2/numeric.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -270,7 +270,7 @@
 
   <p>Revised 07 October, 2006</p>
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
   Abrahams</a> 2002-2006.</i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/object.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/object.html (original)
+++ branches/proto/v3/libs/python/doc/v2/object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -943,6 +943,6 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2006.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2006.</i></p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/operators.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/operators.html (original)
+++ branches/proto/v3/libs/python/doc/v2/operators.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -915,7 +915,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/overloads.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/overloads.html (original)
+++ branches/proto/v3/libs/python/doc/v2/overloads.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -223,7 +223,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/platforms.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/platforms.html (original)
+++ branches/proto/v3/libs/python/doc/v2/platforms.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -129,7 +129,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/pointee.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/pointee.html (original)
+++ branches/proto/v3/libs/python/doc/v2/pointee.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -111,7 +111,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i> Distributed
   under the Boost Software License, Version 1.0. (See accompanying file
   LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/doc/v2/progress_reports.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/progress_reports.html (original)
+++ branches/proto/v3/libs/python/doc/v2/progress_reports.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -41,7 +41,7 @@
   13 November, 2002
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/ptr.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/ptr.html (original)
+++ branches/proto/v3/libs/python/doc/v2/ptr.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -258,7 +258,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i> Distributed
   under the Boost Software License, Version 1.0. (See accompanying file
   LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/doc/v2/python.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/python.html (original)
+++ branches/proto/v3/libs/python/doc/v2/python.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -104,7 +104,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/raw_function.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/raw_function.html (original)
+++ branches/proto/v3/libs/python/doc/v2/raw_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -112,7 +112,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/reference.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/reference.html (original)
+++ branches/proto/v3/libs/python/doc/v2/reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1185,7 +1185,7 @@
     </p>
 
     <p class="c3">&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002
 .</p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/reference_existing_object.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/reference_existing_object.html (original)
+++ branches/proto/v3/libs/python/doc/v2/reference_existing_object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -174,7 +174,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/register_ptr_to_python.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/register_ptr_to_python.html (original)
+++ branches/proto/v3/libs/python/doc/v2/register_ptr_to_python.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -154,7 +154,7 @@
   24 Jun, 2003
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 </p>
-<p><i>&copy; Copyright Dave Abrahams
+<p><i>&copy; Copyright Dave Abrahams
   2002. </i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/return_arg.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/return_arg.html (original)
+++ branches/proto/v3/libs/python/doc/v2/return_arg.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -217,7 +217,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> and Nikolay
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> and Nikolay
     Mladenov 2003. </i></p>
   </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/return_by_value.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/return_by_value.html (original)
+++ branches/proto/v3/libs/python/doc/v2/return_by_value.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -143,7 +143,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/return_internal_reference.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/return_internal_reference.html (original)
+++ branches/proto/v3/libs/python/doc/v2/return_internal_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -223,7 +223,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/return_value_policy.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/return_value_policy.html (original)
+++ branches/proto/v3/libs/python/doc/v2/return_value_policy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -161,7 +161,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/scope.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/scope.html (original)
+++ branches/proto/v3/libs/python/doc/v2/scope.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -167,7 +167,7 @@
     <p>Revised 09 October, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/ssize_t.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/ssize_t.html (original)
+++ branches/proto/v3/libs/python/doc/v2/ssize_t.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -90,7 +90,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
 
   <p><i>&copy; Copyright <a href=
- "../../../../people/ralf_w_grosse_kunstleve.htm">Ralf W.
+ "http://www.boost.org/people/ralf_w_grosse_kunstleve.htm">Ralf W.
   Grosse-Kunstleve</a> 2006.</i></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/python/doc/v2/str.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/str.html (original)
+++ branches/proto/v3/libs/python/doc/v2/str.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -231,7 +231,7 @@
     <p>Revised 3 October, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/to_python_converter.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/to_python_converter.html (original)
+++ branches/proto/v3/libs/python/doc/v2/to_python_converter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -221,7 +221,7 @@
     </p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/to_python_indirect.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/to_python_indirect.html (original)
+++ branches/proto/v3/libs/python/doc/v2/to_python_indirect.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -189,7 +189,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i> Distributed
   under the Boost Software License, Version 1.0. (See accompanying file
   LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/doc/v2/to_python_value.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/to_python_value.html (original)
+++ branches/proto/v3/libs/python/doc/v2/to_python_value.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -96,7 +96,7 @@
   <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2002. </i> Distributed under the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/doc/v2/tuple.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/tuple.html (original)
+++ branches/proto/v3/libs/python/doc/v2/tuple.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -133,7 +133,7 @@
     <p>Revised 03 October, 2002</p>
 
     <p><i>&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002.</i></p>
   </body>
 </html>
 

Modified: branches/proto/v3/libs/python/doc/v2/type_id.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/type_id.html (original)
+++ branches/proto/v3/libs/python/doc/v2/type_id.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -215,7 +215,7 @@
     </p>
 
     <p class="c4">&copy; Copyright <a href=
- "../../../../people/dave_abrahams.htm">Dave Abrahams</a> 2002. Distributed under the Boost Software License,
+ "http://www.boost.org/people/dave_abrahams.htm">Dave Abrahams</a> 2002. Distributed under the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)<
 

Modified: branches/proto/v3/libs/python/doc/v2/with_custodian_and_ward.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/with_custodian_and_ward.html (original)
+++ branches/proto/v3/libs/python/doc/v2/with_custodian_and_ward.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -363,7 +363,7 @@
       <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
       </p>
     <p>
- <i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
       Abrahams</a> 2002. </i>
     </p>
   </body>

Modified: branches/proto/v3/libs/python/doc/v2/wrapper.html
==============================================================================
--- branches/proto/v3/libs/python/doc/v2/wrapper.html (original)
+++ branches/proto/v3/libs/python/doc/v2/wrapper.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -231,7 +231,7 @@
     <!--webbot bot="Timestamp" endspan i-checksum="39359" -->
 
 
- <p><i>&copy; Copyright <a href="../../../../people/dave_abrahams.htm">Dave
+ <p><i>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
     Abrahams</a> 2004</i> Distributed under the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)</p>

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/ClassExporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/ClassExporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/ClassExporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import exporters
 from Exporter import Exporter

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/CodeExporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/CodeExporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/CodeExporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from Exporter import Exporter
 

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/CppParser.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/CppParser.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/CppParser.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from GCCXMLParser import ParseDeclarations
 import tempfile

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/EnumExporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/EnumExporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/EnumExporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from Exporter import Exporter
 from settings import *

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/Exporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/Exporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/Exporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import os.path
 

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/FunctionExporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/FunctionExporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/FunctionExporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from Exporter import Exporter
 from policies import *

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/GCCXMLParser.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/GCCXMLParser.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/GCCXMLParser.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from declarations import *
 # try to use cElementTree if avaiable

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/HeaderExporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/HeaderExporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/HeaderExporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from Exporter import Exporter
 from ClassExporter import ClassExporter

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/MultipleCodeUnit.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/MultipleCodeUnit.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/MultipleCodeUnit.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from SingleCodeUnit import SingleCodeUnit
 import os

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/SingleCodeUnit.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/SingleCodeUnit.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/SingleCodeUnit.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from settings import namespaces
 import settings

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/SmartFile.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/SmartFile.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/SmartFile.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import os
 import md5

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/VarExporter.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/VarExporter.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/VarExporter.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from Exporter import Exporter
 from settings import *

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/__init__.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/__init__.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/__init__.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/declarations.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/declarations.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/declarations.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 '''
 Defines classes that represent declarations found in C++ header files.

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/exporters.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/exporters.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/exporters.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 
 # a list of Exporter instances

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/exporterutils.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/exporterutils.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/exporterutils.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 '''
 Various helpers for interface files.

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/infos.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/infos.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/infos.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import os.path
 import copy

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/policies.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/policies.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/policies.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 
 

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/pyste.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/pyste.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/pyste.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 """
 Pyste version %s

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/settings.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/settings.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/settings.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 
 #==============================================================================

Modified: branches/proto/v3/libs/python/pyste/src/Pyste/utils.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/src/Pyste/utils.py (original)
+++ branches/proto/v3/libs/python/pyste/src/Pyste/utils.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 from __future__ import generators
 import string

Modified: branches/proto/v3/libs/python/pyste/tests/GCCXMLParserUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/GCCXMLParserUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/GCCXMLParserUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import sys
 sys.path.append('../src')

Modified: branches/proto/v3/libs/python/pyste/tests/SmartFileUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/SmartFileUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/SmartFileUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import sys
 sys.path.append('../src')
 from SmartFile import *

Modified: branches/proto/v3/libs/python/pyste/tests/abstract_test.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/abstract_test.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/abstract_test.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #include <vector>
 #include <string>

Modified: branches/proto/v3/libs/python/pyste/tests/abstract_testUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/abstract_testUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/abstract_testUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _abstract_test import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/add_test.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/add_test.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/add_test.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 namespace add_test {
 

Modified: branches/proto/v3/libs/python/pyste/tests/add_testUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/add_testUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/add_testUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _add_test import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/basic.cpp
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/basic.cpp (original)
+++ branches/proto/v3/libs/python/pyste/tests/basic.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #include "basic.h"
 

Modified: branches/proto/v3/libs/python/pyste/tests/basic.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/basic.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/basic.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef BASIC_H
 #define BASIC_H

Modified: branches/proto/v3/libs/python/pyste/tests/basicUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/basicUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/basicUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _basic import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/code_test.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/code_test.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/code_test.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 struct A {
     int x;

Modified: branches/proto/v3/libs/python/pyste/tests/code_testUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/code_testUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/code_testUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _code_test import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/enums.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/enums.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/enums.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef ENUMS_H
 #define ENUMS_H

Modified: branches/proto/v3/libs/python/pyste/tests/enumsUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/enumsUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/enumsUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _enums import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/header_test.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/header_test.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/header_test.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef HEADER_TEST_H
 #define HEADER_TEST_H

Modified: branches/proto/v3/libs/python/pyste/tests/header_testUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/header_testUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/header_testUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _header_test import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/infosUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/infosUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/infosUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import sys
 from Pyste.infos import *
 from Pyste.policies import *

Modified: branches/proto/v3/libs/python/pyste/tests/inherit.cpp
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit.cpp (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #include "inherit.h"
 

Modified: branches/proto/v3/libs/python/pyste/tests/inherit.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 namespace inherit {
     

Modified: branches/proto/v3/libs/python/pyste/tests/inherit2.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit2.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit2.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 namespace inherit2 {
 

Modified: branches/proto/v3/libs/python/pyste/tests/inherit2UT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit2UT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit2UT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _inherit2 import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/inherit3.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit3.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit3.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 
 namespace inherit3 {

Modified: branches/proto/v3/libs/python/pyste/tests/inherit3UT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit3UT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit3UT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _inherit3 import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/inherit4.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit4.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit4.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 namespace inherit4 {
     

Modified: branches/proto/v3/libs/python/pyste/tests/inherit4UT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inherit4UT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/inherit4UT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _inherit4 import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/inheritUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/inheritUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/inheritUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _inherit import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/nested.cpp
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/nested.cpp (original)
+++ branches/proto/v3/libs/python/pyste/tests/nested.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #include "nested.h"
 

Modified: branches/proto/v3/libs/python/pyste/tests/nested.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/nested.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/nested.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 
 #ifndef NESTED_H

Modified: branches/proto/v3/libs/python/pyste/tests/nestedUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/nestedUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/nestedUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _nested import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/opaque.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/opaque.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/opaque.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef OPAQUE_H
 #define OPAQUE_H

Modified: branches/proto/v3/libs/python/pyste/tests/opaqueUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/opaqueUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/opaqueUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _opaque import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/operators.cpp
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/operators.cpp (original)
+++ branches/proto/v3/libs/python/pyste/tests/operators.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #include "operators.h"
 

Modified: branches/proto/v3/libs/python/pyste/tests/operators.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/operators.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/operators.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef OPERATORS_H
 #define OPERATORS_H

Modified: branches/proto/v3/libs/python/pyste/tests/operatorsUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/operatorsUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/operatorsUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _operators import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/policiesUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/policiesUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/policiesUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import sys
 import unittest
 from Pyste.policies import *

Modified: branches/proto/v3/libs/python/pyste/tests/runtests.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/runtests.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/runtests.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 #!/usr/bin/python
 
 import sys

Modified: branches/proto/v3/libs/python/pyste/tests/smart_ptr.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/smart_ptr.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/smart_ptr.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 
 #ifndef SMART_PTR_H

Modified: branches/proto/v3/libs/python/pyste/tests/smart_ptrUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/smart_ptrUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/smart_ptrUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _smart_ptr import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/templates.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/templates.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/templates.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 namespace templates {
     

Modified: branches/proto/v3/libs/python/pyste/tests/templatesUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/templatesUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/templatesUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _templates import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/test_all.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/test_all.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/test_all.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import os
 import glob

Modified: branches/proto/v3/libs/python/pyste/tests/vars.cpp
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/vars.cpp (original)
+++ branches/proto/v3/libs/python/pyste/tests/vars.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #include "vars.h"
 

Modified: branches/proto/v3/libs/python/pyste/tests/vars.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/vars.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/vars.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 
 struct Color

Modified: branches/proto/v3/libs/python/pyste/tests/varsUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/varsUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/varsUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 import _vars
 

Modified: branches/proto/v3/libs/python/pyste/tests/virtual.cpp
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/virtual.cpp (original)
+++ branches/proto/v3/libs/python/pyste/tests/virtual.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 
 // Includes ====================================================================

Modified: branches/proto/v3/libs/python/pyste/tests/virtual.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/virtual.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/virtual.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 namespace virtual_ {
     

Modified: branches/proto/v3/libs/python/pyste/tests/virtual2.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/virtual2.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/virtual2.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 
 namespace virtual2 {

Modified: branches/proto/v3/libs/python/pyste/tests/virtual2UT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/virtual2UT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/virtual2UT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 
 import unittest
 from _virtual2 import *

Modified: branches/proto/v3/libs/python/pyste/tests/virtualUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/virtualUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/virtualUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _virtual import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/wrappertest.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/wrappertest.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/wrappertest.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef WRAPPER_TEST
 #define WRAPPER_TEST

Modified: branches/proto/v3/libs/python/pyste/tests/wrappertestUT.py
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/wrappertestUT.py (original)
+++ branches/proto/v3/libs/python/pyste/tests/wrappertestUT.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # Copyright Bruno da Silva de Oliveira 2003. Use, modification and
 # distribution is subject to the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or copy at
-# http:#www.boost.org/LICENSE_1_0.txt)
+# http://www.boost.org/LICENSE_1_0.txt)
 import unittest
 from _wrappertest import *
 

Modified: branches/proto/v3/libs/python/pyste/tests/wrappertest_wrappers.h
==============================================================================
--- branches/proto/v3/libs/python/pyste/tests/wrappertest_wrappers.h (original)
+++ branches/proto/v3/libs/python/pyste/tests/wrappertest_wrappers.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 /* Copyright Bruno da Silva de Oliveira 2003. Use, modification and
  distribution is subject to the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
- http:#www.boost.org/LICENSE_1_0.txt)
+ http://www.boost.org/LICENSE_1_0.txt)
  */
 #ifndef WRAPPER_TEST_WRAPPERS
 #define WRAPPER_TEST_WRAPPERS

Modified: branches/proto/v3/libs/python/src/object/stl_iterator.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/object/stl_iterator.cpp (original)
+++ branches/proto/v3/libs/python/src/object/stl_iterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,6 +2,10 @@
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
+//
+// Credits:
+// Andreas Kl\:ockner for fixing increment() to handle
+// error conditions.
 
 #include <boost/python/object.hpp>
 #include <boost/python/handle.hpp>
@@ -27,6 +31,8 @@
 {
     this->ob_ = boost::python::handle<>(
         boost::python::allow_null(PyIter_Next(this->it_.ptr())));
+ if (PyErr_Occurred())
+ throw boost::python::error_already_set();
 }
 
 bool stl_input_iterator_impl::equal(stl_input_iterator_impl const &that) const

Modified: branches/proto/v3/libs/python/test/stl_iterator.py
==============================================================================
--- branches/proto/v3/libs/python/test/stl_iterator.py (original)
+++ branches/proto/v3/libs/python/test/stl_iterator.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,6 +12,16 @@
 3
 4
 5
+>>> def generator():
+... yield 1
+... yield 2
+... raise RuntimeError, "oops"
+>>> try:
+... x.assign(iter(generator()))
+... print "NOT OK"
+... except RuntimeError:
+... print "OK"
+OK
 '''
 def run(args = None):
     import sys

Modified: branches/proto/v3/libs/random/index.html
==============================================================================
--- branches/proto/v3/libs/random/index.html (original)
+++ branches/proto/v3/libs/random/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,10 +20,10 @@
       <td><a href="../libraries.htm"><font face="Arial,Helvetica" color=
       "#FFFFFF"><big>Libraries</big></font></a></td>
 
- <td><a href="../../people/people.htm"><font face="Arial,Helvetica"
+ <td><a href="http://www.boost.org/people/people.htm"><font face="Arial,Helvetica"
       color="#FFFFFF"><big>People</big></font></a></td>
 
- <td><a href="../../more/faq.htm"><font face="Arial,Helvetica" color=
+ <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial,Helvetica" color=
       "#FFFFFF"><big>FAQ</big></font></a></td>
 
       <td><a href="../../more/index.htm"><font face="Arial,Helvetica" color=
@@ -47,7 +47,7 @@
   <pre>
   boost::mt19937 rng; // produces randomness out of thin air
                                       // see pseudo-random number generators
- boost::uniform_int&lt;&gt; six(1,6) // distribution that maps to 1..6
+ boost::uniform_int&lt;&gt; six(1,6); // distribution that maps to 1..6
                                       // see random number distributions
   boost::variate_generator&lt;boost::mt19937&amp;, boost::uniform_int&lt;&gt; &gt;
            die(rng, six); // glues randomness with mapping
@@ -199,7 +199,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2000-2005 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/nondet_random.html
==============================================================================
--- branches/proto/v3/libs/random/nondet_random.html (original)
+++ branches/proto/v3/libs/random/nondet_random.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -135,7 +135,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2000-2003 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/random-concepts.html
==============================================================================
--- branches/proto/v3/libs/random/random-concepts.html (original)
+++ branches/proto/v3/libs/random/random-concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -493,7 +493,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2000-2003 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/random-distributions.html
==============================================================================
--- branches/proto/v3/libs/random/random-distributions.html (original)
+++ branches/proto/v3/libs/random/random-distributions.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -851,7 +851,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2000-2007 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/random-generators.html
==============================================================================
--- branches/proto/v3/libs/random/random-generators.html (original)
+++ branches/proto/v3/libs/random/random-generators.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1195,7 +1195,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2000-2005 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/random-misc.html
==============================================================================
--- branches/proto/v3/libs/random/random-misc.html (original)
+++ branches/proto/v3/libs/random/random-misc.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -89,7 +89,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2000-2005 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/random-performance.html
==============================================================================
--- branches/proto/v3/libs/random/random-performance.html (original)
+++ branches/proto/v3/libs/random/random-performance.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -327,7 +327,7 @@
   <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->05
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
- <p><i>Copyright &copy; 2001 <a href="../../people/jens_maurer.htm">Jens
+ <p><i>Copyright &copy; 2001 <a href="http://www.boost.org/people/jens_maurer.htm">Jens
   Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See

Modified: branches/proto/v3/libs/random/random-variate.html
==============================================================================
--- branches/proto/v3/libs/random/random-variate.html (original)
+++ branches/proto/v3/libs/random/random-variate.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -154,7 +154,7 @@
   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2003-2004 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/random/wg21-proposal.html
==============================================================================
--- branches/proto/v3/libs/random/wg21-proposal.html (original)
+++ branches/proto/v3/libs/random/wg21-proposal.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3598,7 +3598,7 @@
   <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->05 December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2002 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/range/doc/Jamfile.v2
==============================================================================
Binary files. No diff available.

Modified: branches/proto/v3/libs/range/doc/boost_range.html
==============================================================================
--- branches/proto/v3/libs/range/doc/boost_range.html (original)
+++ branches/proto/v3/libs/range/doc/boost_range.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -493,7 +493,7 @@
         </p>
             <p>
                 <code>as_literal()</code> can be used <i>internally</i> in string
- algorithm librararies to such that arrays of characters are
+ algorithm librararies such that arrays of characters are
                 handled correctly.
                 </p>
             <p>
@@ -745,7 +745,13 @@
         
         <hr>
         <p>
- (C) Copyright Thorsten Ottosen 2003-2007
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
         </p>
         <br>
         <br>

Modified: branches/proto/v3/libs/range/doc/example.cpp
==============================================================================
--- branches/proto/v3/libs/range/doc/example.cpp (original)
+++ branches/proto/v3/libs/range/doc/example.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,3 +1,13 @@
+// Boost.Range library
+//
+// Copyright Thorsten Ottosen 2003-2008. Use, modification and
+// distribution is subject to the Boost Software License, Version
+// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+
 #include <boost/range.hpp>
 #include <iterator> // for std::iterator_traits, std::distance()
 

Modified: branches/proto/v3/libs/range/doc/examples.html
==============================================================================
--- branches/proto/v3/libs/range/doc/examples.html (original)
+++ branches/proto/v3/libs/range/doc/examples.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -41,9 +41,16 @@
         <li> array.cpp
     </ul>
 
+
     <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2004
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
     </p>
 
     <br>

Modified: branches/proto/v3/libs/range/doc/faq.html
==============================================================================
--- branches/proto/v3/libs/range/doc/faq.html (original)
+++ branches/proto/v3/libs/range/doc/faq.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -114,9 +114,16 @@
     </ol>
 
 
- <hr>
+ <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2004
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
     </p>
 
     <br>

Modified: branches/proto/v3/libs/range/doc/headers.html
==============================================================================
--- branches/proto/v3/libs/range/doc/headers.html (original)
+++ branches/proto/v3/libs/range/doc/headers.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -173,7 +173,14 @@
 
     <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2007
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
     </p>
 
     <br>

Modified: branches/proto/v3/libs/range/doc/history_ack.html
==============================================================================
--- branches/proto/v3/libs/range/doc/history_ack.html (original)
+++ branches/proto/v3/libs/range/doc/history_ack.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -18,10 +18,10 @@
 
     <h2 >History and Acknowledgement</h2><a name="History" ></a>
     <p >
- The library have been under way for a long time. Dietmar Kühl originally
- intended to submit an <code >array_traits</code> class template which
- had most of the functionality present now, but only for arrays and standard
- containers.
+ The library was under way for a long time. Dietmar Kühl originally intended
+ to submit an <code >array_traits</code> class template which had most of
+ the functionality present now, but only for arrays and standard containers.
+ I believe this was back in 2001 or 2002.
     </p>
     
     <p>
@@ -61,7 +61,14 @@
     
     <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2006
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
     </p>
 
     <br>

Modified: branches/proto/v3/libs/range/doc/intro.html
==============================================================================
--- branches/proto/v3/libs/range/doc/intro.html (original)
+++ branches/proto/v3/libs/range/doc/intro.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -63,8 +63,7 @@
 
     </ul>
     </p>
- <p >
- Below are given a small example (the complete example can be found <a
+ <p > Below is given a small example (the complete example can be found <a
     href="../test/algorithm_example.cpp" target="_self" >here</a>): <blockquote>
         <pre >
 <span class=comment>
@@ -136,7 +135,14 @@
 
     <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2007
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
     </p>
 
     <br>

Modified: branches/proto/v3/libs/range/doc/portability.html
==============================================================================
--- branches/proto/v3/libs/range/doc/portability.html (original)
+++ branches/proto/v3/libs/range/doc/portability.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -35,7 +35,7 @@
     </p>
     <p >
     Notice also that some compilers cannot do function template ordering properly.
- In that case one must rely of <a
+ In that case one must rely on <a
       href="boost_range.html#range_iterator"><code >range_iterator</code></a>
       and a single function definition instead of overloaded versions for const and
       non-const arguments.
@@ -73,11 +73,18 @@
     </ol>
     </p>
 
- <hr>
+ <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2004
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
     </p>
 
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
+ </p>>
+
     <br>
     <br>
     <br>

Modified: branches/proto/v3/libs/range/doc/range.html
==============================================================================
--- branches/proto/v3/libs/range/doc/range.html (original)
+++ branches/proto/v3/libs/range/doc/range.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -352,34 +352,16 @@
     <p> Boost Concept Check library</p>
 
     <hr>
-
- <!--
- <h3>Notes</h3>
-
-
- <P>
- <A name="1">[1]</A>
-
- The reference type does not have to be a real C++ reference. The requirements of
- the reference type is that it <i>behaves</i> like a real reference. Hence the
- reference type must be convertible to the value_type and assignment through
-
- <br>
- <br>
- <HR>
- <br>
--->
-
- <TABLE>
- <TR valign="top">
- <TD nowrap>Copyright &copy 2000</TD>
- <TD><A HREF=http://www.boost.org/people/jeremy_siek.htm>Jeremy Siek</A>
- </TR>
- <tr >
- <TD nowrap>Copyright &copy 2004-2007</TD>
- <TD>Thorsten Ottosen.
- </TABLE>
-
+ <p>
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
     <br>
     <br>
     <br>

Modified: branches/proto/v3/libs/range/doc/style.css
==============================================================================
--- branches/proto/v3/libs/range/doc/style.css (original)
+++ branches/proto/v3/libs/range/doc/style.css 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,3 +1,14 @@
+/*
+// Boost.Range library
+//
+// Copyright Thorsten Ottosen 2003-2008. Use, modification and
+// distribution is subject to the Boost Software License, Version
+// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+*/
 pre{
   BORDER-RIGHT: gray 1pt solid;
   PADDING-RIGHT: 2pt;

Modified: branches/proto/v3/libs/range/doc/style.html
==============================================================================
--- branches/proto/v3/libs/range/doc/style.html (original)
+++ branches/proto/v3/libs/range/doc/style.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -104,9 +104,15 @@
 
     <hr>
     <p>
- (C) Copyright Thorsten Ottosen 2003-2004
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
     </p>
 
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
     <br>
     <br>
     <br>

Modified: branches/proto/v3/libs/range/doc/utility_class.html
==============================================================================
--- branches/proto/v3/libs/range/doc/utility_class.html (original)
+++ branches/proto/v3/libs/range/doc/utility_class.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,11 +33,12 @@
     </ul>
     </ul>
 
- The <code>iterator_range</code> class is templated on an
- <a href="../../iterator/doc/new-iter-concepts.html#forward-traversal-iterators-lib-forward-traversal-iterators">Forward
+ The <code>iterator_range</code> class is templated on a <a
+ href="../../iterator/doc/new-iter-concepts.html#forward-traversal-iterators-lib-forward-traversal-iterators">Forward
     Traversal Iterator</a> and should be used whenever fairly general code is needed.
- The <code>sub_range</code> class is templated on an <a href="range.html#forward_range">Forward
- Range</a> and it is less general, but a bit easier to use since its template
+ The <code>sub_range</code> class is templated on a <a
+ href="range.html#forward_range">Forward Range</a> and it is less general,
+ but a bit easier to use since its template
     argument is easier to specify. The biggest difference is, however, that a
     <code>sub_range</code> can propagate constness because it knows what a
 corresponding <code>const_iterator</code> is. </p>
@@ -349,10 +350,17 @@
 </pre>
  </p>
 
-<hr>
- <p>
- (C) Copyright Thorsten Ottosen 2003-2007
- </p>
+ <hr>
+ <p>
+ &copy; <a name="Copyright" id="Copyright">Copyright</a> Thorsten Ottosen 2008.
+ </p>
+
+ <p>
+ Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file LICENSE_1_0.txt or copy
+ at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)
+ </p>
 
   <br>
   <br>

Deleted: branches/proto/v3/libs/range/test/TODO
==============================================================================
--- branches/proto/v3/libs/range/test/TODO 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1 +0,0 @@
-

Deleted: branches/proto/v3/libs/range/test/compat1.cpp
==============================================================================

Modified: branches/proto/v3/libs/range/test/partial_workaround.cpp
==============================================================================
--- branches/proto/v3/libs/range/test/partial_workaround.cpp (original)
+++ branches/proto/v3/libs/range/test/partial_workaround.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,6 +10,8 @@
 
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
+#include <boost/range/detail/implementation_help.hpp>
+#include <boost/test/test_tools.hpp>
 
 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
 # pragma warn -8091 // supress warning in Boost.Test
@@ -30,7 +32,6 @@
 
 #include <boost/static_assert.hpp>
 #include <boost/type_traits.hpp>
-#include <boost/test/test_tools.hpp>
 #include <iostream>
 #include <vector>
 
@@ -91,6 +92,11 @@
 
 void check_partial_workaround()
 {
+ //
+ // test if warnings are generated
+ //
+ std::size_t s = boost::range_detail::array_size( "foo" );
+ BOOST_CHECK_EQUAL( s, 4u );
 }
 
 #endif

Modified: branches/proto/v3/libs/rational/index.html
==============================================================================
--- branches/proto/v3/libs/rational/index.html (original)
+++ branches/proto/v3/libs/rational/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,8 +12,8 @@
     <td bgcolor="#FFFFFF"><img src="../../boost.png" alt="boost.png (6897 bytes)" WIDTH="277" HEIGHT="86"></td>
     <td>Home </td>
     <td>Libraries </td>
- <td>People </td>
- <td>FAQ </td>
+ <td>People </td>
+ <td>FAQ </td>
     <td>More </td>
   </tr>
 </table>
@@ -32,7 +32,7 @@
   <li>Documentation (HTML).</li>
   <li>Header rational.hpp.</li>
   <li>See the documentation for links to sample programs.</li>
- <li>Submitted by Paul Moore.</li>
+ <li>Submitted by Paul Moore.</li>
 </ul>
 
 <p>Revised&nbsp; December 14, 1999</p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/examples.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/examples.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/examples.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
       Example Programs</a>
 </h3></div></div></div>
 <a name="boost_regex.background_information.examples.test_programs"></a><h5>
-<a name="id647187"></a>
+<a name="id647277"></a>
         <a href="examples.html#boost_regex.background_information.examples.test_programs">Test
         Programs</a>
       </h5>
@@ -98,7 +98,7 @@
         Files: captures_test.cpp.
       </p>
 <a name="boost_regex.background_information.examples.example_programs"></a><h5>
-<a name="id647395"></a>
+<a name="id647485"></a>
         <a href="examples.html#boost_regex.background_information.examples.example_programs">Example
         programs</a>
       </h5>
@@ -124,7 +124,7 @@
         Files: regex_timer.cpp.
       </p>
 <a name="boost_regex.background_information.examples.code_snippets"></a><h5>
-<a name="id647476"></a>
+<a name="id647566"></a>
         <a href="examples.html#boost_regex.background_information.examples.code_snippets">Code
         snippets</a>
       </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/faq.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/faq.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/faq.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/futher.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/futher.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/futher.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/headers.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/headers.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/headers.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/history.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/history.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,7 +26,7 @@
 <a name="boost_regex.background_information.history"></a> History
 </h3></div></div></div>
 <a name="boost_regex.background_information.history.boost_1_34"></a><h5>
-<a name="id649643"></a>
+<a name="id649708"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_34">Boost
         1.34</a>
       </h5>
@@ -49,7 +49,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_33_1"></a><h5>
-<a name="id649694"></a>
+<a name="id649759"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost
         1.33.1</a>
       </h5>
@@ -119,7 +119,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_33_0"></a><h5>
-<a name="id649824"></a>
+<a name="id649888"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_33_0">Boost
         1.33.0</a>
       </h5>
@@ -174,7 +174,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_32_1"></a><h5>
-<a name="id649923"></a>
+<a name="id649995"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost
         1.32.1</a>
       </h5>
@@ -182,7 +182,7 @@
           Fixed bug in partial matches of bounded repeats of '.'.
         </li></ul></div>
 <a name="boost_regex.background_information.history.boost_1_31_0"></a><h5>
-<a name="id649957"></a>
+<a name="id650028"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost
         1.31.0</a>
       </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/locale.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/locale.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/locale.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -58,7 +58,7 @@
         There are three separate localization mechanisms supported by Boost.Regex:
       </p>
 <a name="boost_regex.background_information.locale.win32_localization_model_"></a><h5>
-<a name="id643689"></a>
+<a name="id643785"></a>
         <a href="locale.html#boost_regex.background_information.locale.win32_localization_model_">Win32
         localization model.</a>
       </h5>
@@ -90,7 +90,7 @@
         are treated as "unknown" graphic characters.
       </p>
 <a name="boost_regex.background_information.locale.c_localization_model_"></a><h5>
-<a name="id643933"></a>
+<a name="id644023"></a>
         <a href="locale.html#boost_regex.background_information.locale.c_localization_model_">C
         localization model.</a>
       </h5>
@@ -114,7 +114,7 @@
         libraries including version 1 of this library.
       </p>
 <a name="boost_regex.background_information.locale.c___localization_model_"></a><h5>
-<a name="id644045"></a>
+<a name="id644136"></a>
         <a href="locale.html#boost_regex.background_information.locale.c___localization_model_">C++
         localization model.</a>
       </h5>
@@ -151,7 +151,7 @@
         in your code. The best way to ensure this is to add the #define to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
       </p>
 <a name="boost_regex.background_information.locale.providing_a_message_catalogue"></a><h5>
-<a name="id644505"></a>
+<a name="id644596"></a>
         <a href="locale.html#boost_regex.background_information.locale.providing_a_message_catalogue">Providing
         a message catalogue</a>
       </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/performance.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/performance.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/performance.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/redist.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/redist.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/redist.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/standards.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/standards.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/standards.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
       Conformance</a>
 </h3></div></div></div>
 <a name="boost_regex.background_information.standards.c__"></a><h5>
-<a name="id648468"></a>
+<a name="id648552"></a>
         <a href="standards.html#boost_regex.background_information.standards.c__">C++</a>
       </h5>
 <p>
@@ -36,7 +36,7 @@
         Report on C++ Library Extensions</a>.
       </p>
 <a name="boost_regex.background_information.standards.ecmascript___javascript"></a><h5>
-<a name="id648507"></a>
+<a name="id648590"></a>
         <a href="standards.html#boost_regex.background_information.standards.ecmascript___javascript">ECMAScript
         / JavaScript</a>
       </h5>
@@ -49,7 +49,7 @@
         rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.
       </p>
 <a name="boost_regex.background_information.standards.perl"></a><h5>
-<a name="id648546"></a>
+<a name="id648630"></a>
         <a href="standards.html#boost_regex.background_information.standards.perl">Perl</a>
       </h5>
 <p>
@@ -62,7 +62,7 @@
         (??{code}) Not implementable in a compiled strongly typed language.
       </p>
 <a name="boost_regex.background_information.standards.posix"></a><h5>
-<a name="id648584"></a>
+<a name="id648668"></a>
         <a href="standards.html#boost_regex.background_information.standards.posix">POSIX</a>
       </h5>
 <p>
@@ -82,7 +82,7 @@
         a custom traits class.
       </p>
 <a name="boost_regex.background_information.standards.unicode"></a><h5>
-<a name="id648632"></a>
+<a name="id648709"></a>
         <a href="standards.html#boost_regex.background_information.standards.unicode">Unicode</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/thread_safety.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/thread_safety.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/background_information/thread_safety.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/captures.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/captures.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/captures.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -35,7 +35,7 @@
       accessed.
     </p>
 <a name="boost_regex.captures.marked_sub_expressions"></a><h5>
-<a name="id492844"></a>
+<a name="id493039"></a>
       <a href="captures.html#boost_regex.captures.marked_sub_expressions">Marked sub-expressions</a>
     </h5>
 <p>
@@ -218,7 +218,7 @@
       output stream.
     </p>
 <a name="boost_regex.captures.unmatched_sub_expressions"></a><h5>
-<a name="id493467"></a>
+<a name="id493666"></a>
       <a href="captures.html#boost_regex.captures.unmatched_sub_expressions">Unmatched Sub-Expressions</a>
     </h5>
 <p>
@@ -231,7 +231,7 @@
       you can determine which sub-expressions matched by accessing the <code class="computeroutput"><span class="identifier">sub_match</span><span class="special">::</span><span class="identifier">matched</span></code> data member.
     </p>
 <a name="boost_regex.captures.repeated_captures"></a><h5>
-<a name="id493529"></a>
+<a name="id493729"></a>
       <a href="captures.html#boost_regex.captures.repeated_captures">Repeated Captures</a>
     </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/configuration.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/configuration.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/configuration.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/algorithm.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/algorithm.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/algorithm.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/compiler.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/compiler.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/compiler.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/linkage.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/linkage.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/linkage.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/locale.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/locale.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/locale.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/tuning.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/tuning.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/configuration/tuning.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/format.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/format.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/format.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,7 +32,7 @@
         '$', '\', '(', ')', '?', and ':'.
       </p>
 <a name="boost_regex.format.boost_format_syntax.grouping"></a><h5>
-<a name="id515430"></a>
+<a name="id515629"></a>
         <a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.grouping">Grouping</a>
       </h5>
 <p>
@@ -40,7 +40,7 @@
         you want a to output literal parenthesis.
       </p>
 <a name="boost_regex.format.boost_format_syntax.conditionals"></a><h5>
-<a name="id515461"></a>
+<a name="id515659"></a>
         <a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.conditionals">Conditionals</a>
       </h5>
 <p>
@@ -66,7 +66,7 @@
         with "bar" otherwise.
       </p>
 <a name="boost_regex.format.boost_format_syntax.placeholder_sequences"></a><h5>
-<a name="id515518"></a>
+<a name="id515716"></a>
         <a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.placeholder_sequences">Placeholder
         Sequences</a>
       </h5>
@@ -161,7 +161,7 @@
         as a literal.
       </p>
 <a name="boost_regex.format.boost_format_syntax.escape_sequences"></a><h5>
-<a name="id515689"></a>
+<a name="id515888"></a>
         <a href="boost_format_syntax.html#boost_regex.format.boost_format_syntax.escape_sequences">Escape
         Sequences</a>
       </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/format/perl_format.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/format/perl_format.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/format/perl_format.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/format/sed_format.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/format/sed_format.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/format/sed_format.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/install.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/install.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/install.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -49,7 +49,7 @@
       file before you can use it, instructions for specific platforms are as follows:
     </p>
 <a name="boost_regex.install.building_with_bjam"></a><h5>
-<a name="id440369"></a>
+<a name="id436190"></a>
       <a href="install.html#boost_regex.install.building_with_bjam">Building with bjam</a>
     </h5>
 <p>
@@ -58,7 +58,7 @@
       started guide</a> for more information.
     </p>
 <a name="boost_regex.install.building_with_unicode_and_icu_support"></a><h5>
-<a name="id440403"></a>
+<a name="id440462"></a>
       <a href="install.html#boost_regex.install.building_with_unicode_and_icu_support">Building
       With Unicode and ICU Support</a>
     </h5>
@@ -96,11 +96,11 @@
       ICU you are using is binary compatible with the toolset you use to build Boost.
     </p>
 <a name="boost_regex.install.building_via_makefiles"></a><h5>
-<a name="id436006"></a>
+<a name="id435815"></a>
       <a href="install.html#boost_regex.install.building_via_makefiles">Building via makefiles</a>
     </h5>
 <a name="boost_regex.install.borland_c___builder_"></a><h6>
-<a name="id436029"></a>
+<a name="id489883"></a>
       <a href="install.html#boost_regex.install.borland_c___builder_">Borland C++ Builder:</a>
     </h6>
 <div class="itemizedlist"><ul type="disc">
@@ -166,7 +166,7 @@
       a lot in compile times!
     </p>
 <a name="boost_regex.install.microsoft_visual_c___6__7__7_1_and_8"></a><h5>
-<a name="id490078"></a>
+<a name="id490273"></a>
       <a href="install.html#boost_regex.install.microsoft_visual_c___6__7__7_1_and_8">Microsoft
       Visual C++ 6, 7, 7.1 and 8</a>
     </h5>
@@ -253,7 +253,7 @@
       </li>
 </ul></div>
 <a name="boost_regex.install.gcc_2_95_and_later_"></a><h6>
-<a name="id490390"></a>
+<a name="id490586"></a>
       <a href="install.html#boost_regex.install.gcc_2_95_and_later_">GCC(2.95 and later)</a>
     </h6>
 <p>
@@ -302,7 +302,7 @@
       see the config library documentation.
     </p>
 <a name="boost_regex.install.sun_workshop_6_1"></a><h6>
-<a name="id490591"></a>
+<a name="id490787"></a>
       <a href="install.html#boost_regex.install.sun_workshop_6_1">Sun Workshop 6.1</a>
     </h6>
 <p>
@@ -347,7 +347,7 @@
       will build v9 variants of the regex library named libboost_regex_v9.a etc.
     </p>
 <a name="boost_regex.install.makefiles_for_other_compilers"></a><h6>
-<a name="id490813"></a>
+<a name="id491009"></a>
       <a href="install.html#boost_regex.install.makefiles_for_other_compilers">Makefiles
       for Other compilers</a>
     </h6>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/introduction_and_overview.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/introduction_and_overview.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/introduction_and_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/partial_matches.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/partial_matches.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/partial_matches.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/bad_expression.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/bad_expression.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/bad_expression.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.bad_expression"></a> bad_expression
 </h3></div></div></div>
 <a name="boost_regex.ref.bad_expression.synopsis"></a><h5>
-<a name="id596250"></a>
+<a name="id596313"></a>
         <a href="bad_expression.html#boost_regex.ref.bad_expression.synopsis">Synopsis</a>
       </h5>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pattern_except</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -54,7 +54,7 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.bad_expression.description"></a><h5>
-<a name="id596753"></a>
+<a name="id596816"></a>
         <a href="bad_expression.html#boost_regex.ref.bad_expression.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="identifier">regex_error</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">error_type</span> <span class="identifier">err</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span> <span class="identifier">pos</span><span class="special">);</span>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/basic_regex.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/basic_regex.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/basic_regex.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.basic_regex"></a> basic_regex
 </h3></div></div></div>
 <a name="boost_regex.ref.basic_regex.synopsis"></a><h5>
-<a name="id516103"></a>
+<a name="id516301"></a>
         <a href="basic_regex.html#boost_regex.ref.basic_regex.synopsis">Synopsis</a>
       </h5>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -243,7 +243,7 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.basic_regex.description"></a><h5>
-<a name="id522034"></a>
+<a name="id522233"></a>
         <a href="basic_regex.html#boost_regex.ref.basic_regex.description">Description</a>
       </h5>
 <p>
@@ -326,7 +326,7 @@
         <code class="computeroutput"><span class="identifier">basic_regex</span></code>.
       </p>
 <div class="table">
-<a name="id523970"></a><p class="title"><b>Table 1. basic_regex default construction postconditions</b></p>
+<a name="id524168"></a><p class="title"><b>Table 1. basic_regex default construction postconditions</b></p>
 <div class="table-contents"><table class="table" summary="basic_regex default construction postconditions">
 <colgroup>
 <col>
@@ -406,7 +406,7 @@
         flags</a> specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id524369"></a><p class="title"><b>Table 2. Postconditions for basic_regex construction</b></p>
+<a name="id524567"></a><p class="title"><b>Table 2. Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -511,7 +511,7 @@
         specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id524915"></a><p class="title"><b>Table 3. Postconditions for basic_regex construction</b></p>
+<a name="id525113"></a><p class="title"><b>Table 3. Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -615,7 +615,7 @@
         according the option flags specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id525448"></a><p class="title"><b>Table 4. Postconditions for basic_regex construction</b></p>
+<a name="id525646"></a><p class="title"><b>Table 4. Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -726,7 +726,7 @@
         flags</a> specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id526084"></a><p class="title"><b>Table 5. Postconditions for basic_regex construction</b></p>
+<a name="id526281"></a><p class="title"><b>Table 5. Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -828,7 +828,7 @@
         flags</a> specified in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id526559"></a><p class="title"><b>Table 6. Postconditions for basic_regex construction</b></p>
+<a name="id526756"></a><p class="title"><b>Table 6. Postconditions for basic_regex construction</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex construction">
 <colgroup>
 <col>
@@ -1026,7 +1026,7 @@
         in <span class="emphasis"><em>f</em></span>.
       </p>
 <div class="table">
-<a name="id528412"></a><p class="title"><b>Table 7. Postconditions for basic_regex::assign</b></p>
+<a name="id528609"></a><p class="title"><b>Table 7. Postconditions for basic_regex::assign</b></p>
 <div class="table-contents"><table class="table" summary="Postconditions for basic_regex::assign">
 <colgroup>
 <col>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,7 +34,7 @@
           Boost-specific enhanced interface.
         </p>
 <a name="boost_regex.ref.concepts.traits_concept.minimal_requirements_"></a><h5>
-<a name="id622823"></a>
+<a name="id622895"></a>
           <a href="traits_concept.html#boost_regex.ref.concepts.traits_concept.minimal_requirements_">Minimal
           requirements.</a>
         </h5>
@@ -381,7 +381,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.ref.concepts.traits_concept.additional_optional_requirements"></a><h5>
-<a name="id623626"></a>
+<a name="id623722"></a>
           <a href="traits_concept.html#boost_regex.ref.concepts.traits_concept.additional_optional_requirements">Additional
           Optional Requirements</a>
         </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,7 +34,7 @@
           previous version of Boost.Regex and will not be further updated:
         </p>
 <a name="boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format"></a><h5>
-<a name="id624370"></a>
+<a name="id624460"></a>
           <a href="regex_format.html#boost_regex.ref.deprecated_interfaces.regex_format.algorithm_regex_format">Algorithm
           regex_format</a>
         </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/error_type.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/error_type.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/error_type.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.error_type"></a> error_type
 </h3></div></div></div>
 <a name="boost_regex.ref.error_type.synopsis"></a><h5>
-<a name="id602223"></a>
+<a name="id602297"></a>
         <a href="error_type.html#boost_regex.ref.error_type.synopsis">Synopsis</a>
       </h5>
 <p>
@@ -57,7 +57,7 @@
 </span><span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.error_type.description"></a><h5>
-<a name="id602787"></a>
+<a name="id602860"></a>
         <a href="error_type.html#boost_regex.ref.error_type.description">Description</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_flag_type.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_flag_type.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_flag_type.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -69,7 +69,7 @@
 </span><span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.match_flag_type.description"></a><h5>
-<a name="id601462"></a>
+<a name="id601531"></a>
         <a href="match_flag_type.html#boost_regex.ref.match_flag_type.description">Description</a>
       </h5>
 <p>
@@ -313,7 +313,7 @@
               </td>
 <td>
               <p>
- Specified that the expression "." does not match a character
+ Specifies that the expression "." does not match a character
                 null '\0'.
               </p>
               </td>
@@ -426,7 +426,7 @@
               </td>
 <td>
               <p>
- Specified that when a regular expression match is to be replaced
+ Specifies that when a regular expression match is to be replaced
                 by a new string, that the new string is a literal copy of the replacement
                 text.
               </p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_results.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_results.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/match_results.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,7 +27,7 @@
 <a name="boost_regex.ref.match_results"></a> match_results
 </h3></div></div></div>
 <a name="boost_regex.ref.match_results.synopsis"></a><h5>
-<a name="id531798"></a>
+<a name="id531997"></a>
         <a href="match_results.html#boost_regex.ref.match_results.synopsis">Synopsis</a>
       </h5>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -142,7 +142,7 @@
          <span class="identifier">match_results</span><span class="special">&lt;</span><span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">&gt;&amp;</span> <span class="identifier">m2</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.match_results.description"></a><h5>
-<a name="id534701"></a>
+<a name="id534900"></a>
         <a href="match_results.html#boost_regex.ref.match_results.description">Description</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -43,7 +43,7 @@
             on to the "real" algorithm.
           </p>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match"></a><h5>
-<a name="id605222"></a>
+<a name="id605295"></a>
             <a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_match">u32regex_match</a>
           </h5>
 <p>
@@ -89,7 +89,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search"></a><h5>
-<a name="id605941"></a>
+<a name="id606015"></a>
             <a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_search">u32regex_search</a>
           </h5>
 <p>
@@ -128,7 +128,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h5>
-<a name="id606534"></a>
+<a name="id606608"></a>
             <a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace">u32regex_replace</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
           Unicode Aware Regex Iterators</a>
 </h5></div></div></div>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator"></a><h5>
-<a name="id606994"></a>
+<a name="id607067"></a>
             <a href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_iterator">u32regex_iterator</a>
           </h5>
 <p>
@@ -126,7 +126,7 @@
             Provided of course that the input is encoded as UTF-8.
           </p>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator"></a><h5>
-<a name="id608741"></a>
+<a name="id608814"></a>
             <a href="unicode_iter.html#boost_regex.ref.non_std_strings.icu.unicode_iter.u32regex_token_iterator">u32regex_token_iterator</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,7 +34,7 @@
             here they are anyway:
           </p>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match"></a><h5>
-<a name="id613898"></a>
+<a name="id613970"></a>
             <a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match">regex_match</a>
           </h5>
 <p>
@@ -82,7 +82,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_"></a><h5>
-<a name="id614810"></a>
+<a name="id614882"></a>
             <a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_match__second_overload_">regex_match
             (second overload)</a>
           </h5>
@@ -110,7 +110,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search"></a><h5>
-<a name="id615401"></a>
+<a name="id615473"></a>
             <a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search">regex_search</a>
           </h5>
 <p>
@@ -149,7 +149,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_"></a><h5>
-<a name="id616138"></a>
+<a name="id616211"></a>
             <a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_search__second_overload_">regex_search
             (second overload)</a>
           </h5>
@@ -164,7 +164,7 @@
             <span class="special">+</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">GetLength</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">f</span><span class="special">);</span></code>
           </p>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace"></a><h5>
-<a name="id616543"></a>
+<a name="id616615"></a>
             <a href="mfc_algo.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_algo.regex_replace">regex_replace</a>
           </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,7 +32,7 @@
             an MFC/ATL string to a regex_iterator or regex_token_iterator:
           </p>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper"></a><h5>
-<a name="id617624"></a>
+<a name="id617695"></a>
             <a href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_iterator_creation_helper">regex_iterator
             creation helper</a>
           </h5>
@@ -68,7 +68,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers"></a><h5>
-<a name="id618372"></a>
+<a name="id618444"></a>
             <a href="mfc_iter.html#boost_regex.ref.non_std_strings.mfc_strings.mfc_iter.regex_token_iterator_creation_helpers">regex_token_iterator
             creation helpers</a>
           </h5>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/posix.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/posix.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/posix.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -165,7 +165,7 @@
 <a name="regcomp"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regcomp"></a><h5>
-<a name="id621289"></a>
+<a name="id621362"></a>
         <a href="posix.html#boost_regex.ref.posix.regcomp">regcomp</a>
       </h5>
 <p>
@@ -379,7 +379,7 @@
 <a name="regerror"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regerror"></a><h5>
-<a name="id621933"></a>
+<a name="id622005"></a>
         <a href="posix.html#boost_regex.ref.posix.regerror">regerror</a>
       </h5>
 <p>
@@ -467,7 +467,7 @@
 <a name="regexec"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regexec"></a><h5>
-<a name="id622116"></a>
+<a name="id622188"></a>
         <a href="posix.html#boost_regex.ref.posix.regexec">regexec</a>
       </h5>
 <p>
@@ -537,7 +537,7 @@
 <a name="regfree"></a><p>
       </p>
 <a name="boost_regex.ref.posix.regfree"></a><h5>
-<a name="id622257"></a>
+<a name="id622329"></a>
         <a href="posix.html#boost_regex.ref.posix.regfree">regfree</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_iterator.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_iterator.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_iterator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -78,7 +78,7 @@
                           <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_flag_type</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_iterator.description"></a><h5>
-<a name="id580264"></a>
+<a name="id580462"></a>
         <a href="regex_iterator.html#boost_regex.ref.regex_iterator.description">Description</a>
       </h5>
 <p>
@@ -436,7 +436,7 @@
         <span class="emphasis"><em>m</em></span>.
       </p>
 <a name="boost_regex.ref.regex_iterator.examples"></a><h5>
-<a name="id583397"></a>
+<a name="id583597"></a>
         <a href="regex_iterator.html#boost_regex.ref.regex_iterator.examples">Examples</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_match.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_match.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_match.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -80,7 +80,7 @@
                  <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_match.description"></a><h5>
-<a name="id563869"></a>
+<a name="id564067"></a>
         <a href="regex_match.html#boost_regex.ref.regex_match.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
@@ -360,7 +360,7 @@
         <span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_match</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
       </p>
 <a name="boost_regex.ref.regex_match.examples"></a><h5>
-<a name="id567048"></a>
+<a name="id567246"></a>
         <a href="regex_match.html#boost_regex.ref.regex_match.examples">Examples</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_replace.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_replace.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_replace.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -53,7 +53,7 @@
                                   <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_replace.description"></a><h5>
-<a name="id574348"></a>
+<a name="id574547"></a>
         <a href="regex_replace.html#boost_regex.ref.regex_replace.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">&gt;</span>
@@ -163,7 +163,7 @@
         and then returns <code class="computeroutput"><span class="identifier">result</span></code>.
       </p>
 <a name="boost_regex.ref.regex_replace.examples"></a><h5>
-<a name="id575897"></a>
+<a name="id576096"></a>
         <a href="regex_replace.html#boost_regex.ref.regex_replace.examples">Examples</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_search.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_search.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_search.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -73,7 +73,7 @@
                   <span class="identifier">match_flag_type</span> <span class="identifier">flags</span> <span class="special">=</span> <span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_search.description"></a><h5>
-<a name="id569258"></a>
+<a name="id569456"></a>
         <a href="regex_search.html#boost_regex.ref.regex_search.description">Description</a>
       </h5>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalIterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">charT</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">traits</span><span class="special">&gt;</span>
@@ -355,7 +355,7 @@
         <span class="bold"><strong>Effects</strong></span>: Returns the result of <code class="computeroutput"><span class="identifier">regex_search</span><span class="special">(</span><span class="identifier">s</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">s</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span></code>.
       </p>
 <a name="boost_regex.ref.regex_search.examples"></a><h5>
-<a name="id572523"></a>
+<a name="id572722"></a>
         <a href="regex_search.html#boost_regex.ref.regex_search.examples">Examples</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -136,7 +136,7 @@
          <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_flag_type</span> <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.ref.regex_token_iterator.description"></a><h5>
-<a name="id589351"></a>
+<a name="id589414"></a>
         <a href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.description">Description</a>
       </h5>
 <a name="boost_regex.regex_token_iterator.construct1"></a><p>
@@ -383,7 +383,7 @@
         <span class="emphasis"><em>m</em></span>.
       </p>
 <a name="boost_regex.ref.regex_token_iterator.examples"></a><h5>
-<a name="id593568"></a>
+<a name="id593630"></a>
         <a href="regex_token_iterator.html#boost_regex.ref.regex_token_iterator.examples">Examples</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_traits.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_traits.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/regex_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -46,7 +46,7 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.regex_traits.description"></a><h5>
-<a name="id603469"></a>
+<a name="id603542"></a>
         <a href="regex_traits.html#boost_regex.ref.regex_traits.description">Description</a>
       </h5>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/sub_match.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/sub_match.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/sub_match.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -329,11 +329,11 @@
 <span class="special">}</span> <span class="comment">// namespace boost
 </span></pre>
 <a name="boost_regex.ref.sub_match.description"></a><h5>
-<a name="id548389"></a>
+<a name="id548588"></a>
         <a href="sub_match.html#boost_regex.ref.sub_match.description">Description</a>
       </h5>
 <a name="boost_regex.ref.sub_match.members"></a><h6>
-<a name="id548412"></a>
+<a name="id548612"></a>
         <a href="sub_match.html#boost_regex.ref.sub_match.members">Members</a>
       </h6>
 <a name="boost_regex.sub_match.value_type"></a><p>
@@ -473,7 +473,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.ref.sub_match.sub_match_non_member_operators"></a><h6>
-<a name="id549987"></a>
+<a name="id550186"></a>
         <a href="sub_match.html#boost_regex.ref.sub_match.sub_match_non_member_operators">sub_match
         non-member operators</a>
       </h6>
@@ -1008,7 +1008,7 @@
         <span class="special">+</span> <span class="identifier">m2</span><span class="special">.</span><span class="identifier">str</span><span class="special">()</span></code>.
       </p>
 <a name="boost_regex.ref.sub_match.stream_inserter"></a><h6>
-<a name="id561958"></a>
+<a name="id562155"></a>
         <a href="sub_match.html#boost_regex.ref.sub_match.stream_inserter">Stream inserter</a>
       </h6>
 <a name="boost_regex.sub_match.op_stream"></a><p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_extended.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_extended.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_extended.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
       Expression Syntax</a>
 </h3></div></div></div>
 <a name="boost_regex.syntax.basic_extended.synopsis"></a><h4>
-<a name="id504146"></a>
+<a name="id504344"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.synopsis">Synopsis</a>
       </h4>
 <p>
@@ -46,7 +46,7 @@
 <a name="boost_regex.posix_extended_syntax"></a><p>
       </p>
 <a name="boost_regex.syntax.basic_extended.posix_extended_syntax"></a><h4>
-<a name="id504411"></a>
+<a name="id504609"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.posix_extended_syntax">POSIX
         Extended Syntax</a>
       </h4>
@@ -56,7 +56,7 @@
       </p>
 <pre class="programlisting">.[{()\*+?|^$</pre>
 <a name="boost_regex.syntax.basic_extended.wildcard_"></a><h5>
-<a name="id504451"></a>
+<a name="id504649"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.wildcard_">Wildcard:</a>
       </h5>
 <p>
@@ -74,7 +74,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.basic_extended.anchors_"></a><h5>
-<a name="id504519"></a>
+<a name="id504717"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.anchors_">Anchors:</a>
       </h5>
 <p>
@@ -86,7 +86,7 @@
         of an expression, or the last character of a sub-expression.
       </p>
 <a name="boost_regex.syntax.basic_extended.marked_sub_expressions_"></a><h5>
-<a name="id504554"></a>
+<a name="id504752"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.marked_sub_expressions_">Marked
         sub-expressions:</a>
       </h5>
@@ -98,7 +98,7 @@
         to by a back-reference.
       </p>
 <a name="boost_regex.syntax.basic_extended.repeats_"></a><h5>
-<a name="id504611"></a>
+<a name="id504809"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.repeats_">Repeats:</a>
       </h5>
 <p>
@@ -184,7 +184,7 @@
         operator to be applied to.
       </p>
 <a name="boost_regex.syntax.basic_extended.back_references_"></a><h5>
-<a name="id505058"></a>
+<a name="id505256"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.back_references_">Back references:</a>
       </h5>
 <p>
@@ -214,7 +214,7 @@
         </p></td></tr>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.alternation"></a><h5>
-<a name="id505152"></a>
+<a name="id505351"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.alternation">Alternation</a>
       </h5>
 <p>
@@ -227,7 +227,7 @@
         will match either of "abd" or "abef".
       </p>
 <a name="boost_regex.syntax.basic_extended.character_sets_"></a><h5>
-<a name="id505256"></a>
+<a name="id505454"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.character_sets_">Character
         sets:</a>
       </h5>
@@ -240,7 +240,7 @@
         A bracket expression may contain any combination of the following:
       </p>
 <a name="boost_regex.syntax.basic_extended.single_characters_"></a><h6>
-<a name="id505292"></a>
+<a name="id505490"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.single_characters_">Single
         characters:</a>
       </h6>
@@ -249,7 +249,7 @@
         or 'c'.
       </p>
 <a name="boost_regex.syntax.basic_extended.character_ranges_"></a><h6>
-<a name="id505342"></a>
+<a name="id505541"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.character_ranges_">Character
         ranges:</a>
       </h6>
@@ -265,7 +265,7 @@
         the code points of the characters only.
       </p>
 <a name="boost_regex.syntax.basic_extended.negation_"></a><h6>
-<a name="id505443"></a>
+<a name="id505642"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.negation_">Negation:</a>
       </h6>
 <p>
@@ -274,7 +274,7 @@
         range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
       </p>
 <a name="boost_regex.syntax.basic_extended.character_classes_"></a><h6>
-<a name="id505526"></a>
+<a name="id505724"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.character_classes_">Character
         classes:</a>
       </h6>
@@ -284,7 +284,7 @@
         <a href="character_classes.html" title="Character Class Names">character class names</a>.
       </p>
 <a name="boost_regex.syntax.basic_extended.collating_elements_"></a><h6>
-<a name="id505608"></a>
+<a name="id505806"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.collating_elements_">Collating
         Elements:</a>
       </h6>
@@ -312,7 +312,7 @@
         matches a NUL character.
       </p>
 <a name="boost_regex.syntax.basic_extended.equivalence_classes_"></a><h6>
-<a name="id505770"></a>
+<a name="id505968"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.equivalence_classes_">Equivalence
         classes:</a>
       </h6>
@@ -329,7 +329,7 @@
         or even all locales on one platform.
       </p>
 <a name="boost_regex.syntax.basic_extended.combinations_"></a><h6>
-<a name="id505874"></a>
+<a name="id506072"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.combinations_">Combinations:</a>
       </h6>
 <p>
@@ -337,7 +337,7 @@
         <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
       </p>
 <a name="boost_regex.syntax.basic_extended.escapes"></a><h5>
-<a name="id505953"></a>
+<a name="id506152"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.escapes">Escapes</a>
       </h5>
 <p>
@@ -363,7 +363,7 @@
         extensions are also supported by Boost.Regex:
       </p>
 <a name="boost_regex.syntax.basic_extended.escapes_matching_a_specific_character"></a><h6>
-<a name="id506024"></a>
+<a name="id506222"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.escapes_matching_a_specific_character">Escapes
         matching a specific character</a>
       </h6>
@@ -552,7 +552,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_"></a><h6>
-<a name="id506371"></a>
+<a name="id506569"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended._quot_single_character_quot__character_classes_">"Single
         character" character classes:</a>
       </h6>
@@ -706,7 +706,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.character_properties"></a><h6>
-<a name="id507003"></a>
+<a name="id507201"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.character_properties">Character
         Properties</a>
       </h6>
@@ -813,7 +813,7 @@
         matches any "digit" character, as does <code class="computeroutput"><span class="special">\</span><span class="identifier">p</span><span class="special">{</span><span class="identifier">digit</span><span class="special">}</span></code>.
       </p>
 <a name="boost_regex.syntax.basic_extended.word_boundaries"></a><h6>
-<a name="id507404"></a>
+<a name="id507602"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.word_boundaries">Word Boundaries</a>
       </h6>
 <p>
@@ -888,7 +888,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.buffer_boundaries"></a><h6>
-<a name="id507597"></a>
+<a name="id507795"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.buffer_boundaries">Buffer
         boundaries</a>
       </h6>
@@ -979,7 +979,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.continuation_escape"></a><h6>
-<a name="id507832"></a>
+<a name="id508030"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.continuation_escape">Continuation
         Escape</a>
       </h6>
@@ -991,7 +991,7 @@
         match to start where the last one ended.
       </p>
 <a name="boost_regex.syntax.basic_extended.quoting_escape"></a><h6>
-<a name="id507882"></a>
+<a name="id508079"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.quoting_escape">Quoting
         escape</a>
       </h6>
@@ -1005,7 +1005,7 @@
 <span class="special">\*+</span><span class="identifier">aaa</span>
 </pre>
 <a name="boost_regex.syntax.basic_extended.unicode_escapes"></a><h6>
-<a name="id508005"></a>
+<a name="id508203"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.unicode_escapes">Unicode
         escapes</a>
       </h6>
@@ -1056,7 +1056,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.basic_extended.any_other_escape"></a><h6>
-<a name="id508138"></a>
+<a name="id508336"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.any_other_escape">Any other
         escape</a>
       </h6>
@@ -1065,7 +1065,7 @@
         \@ matches a literal '@'.
       </p>
 <a name="boost_regex.syntax.basic_extended.operator_precedence"></a><h5>
-<a name="id508168"></a>
+<a name="id508366"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.operator_precedence">Operator
         precedence</a>
       </h5>
@@ -1101,7 +1101,7 @@
 </li>
 </ol></div>
 <a name="boost_regex.syntax.basic_extended.what_gets_matched"></a><h5>
-<a name="id508357"></a>
+<a name="id508555"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.what_gets_matched">What
         Gets Matched</a>
       </h5>
@@ -1111,11 +1111,11 @@
         rule</a>.
       </p>
 <a name="boost_regex.syntax.basic_extended.variations"></a><h4>
-<a name="id508397"></a>
+<a name="id508595"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.variations">Variations</a>
       </h4>
 <a name="boost_regex.syntax.basic_extended.egrep"></a><h5>
-<a name="id508420"></a>
+<a name="id508618"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.egrep">Egrep</a>
       </h5>
 <p>
@@ -1136,7 +1136,7 @@
         used with the -E option.
       </p>
 <a name="boost_regex.syntax.basic_extended.awk"></a><h5>
-<a name="id508578"></a>
+<a name="id508776"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.awk">awk</a>
       </h5>
 <p>
@@ -1150,7 +1150,7 @@
         these by default anyway.
       </p>
 <a name="boost_regex.syntax.basic_extended.options"></a><h4>
-<a name="id508625"></a>
+<a name="id508822"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.options">Options</a>
       </h4>
 <p>
@@ -1163,7 +1163,7 @@
         modify how the case and locale sensitivity are to be applied.
       </p>
 <a name="boost_regex.syntax.basic_extended.references"></a><h4>
-<a name="id508753"></a>
+<a name="id508952"></a>
         <a href="basic_extended.html#boost_regex.syntax.basic_extended.references">References</a>
       </h4>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
       Expression Syntax</a>
 </h3></div></div></div>
 <a name="boost_regex.syntax.basic_syntax.synopsis"></a><h4>
-<a name="id508835"></a>
+<a name="id509034"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.synopsis">Synopsis</a>
       </h4>
 <p>
@@ -45,7 +45,7 @@
 <a name="boost_regex.posix_basic"></a><p>
       </p>
 <a name="boost_regex.syntax.basic_syntax.posix_basic_syntax"></a><h4>
-<a name="id509127"></a>
+<a name="id509325"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.posix_basic_syntax">POSIX
         Basic Syntax</a>
       </h4>
@@ -55,7 +55,7 @@
       </p>
 <pre class="programlisting">.[\*^$</pre>
 <a name="boost_regex.syntax.basic_syntax.wildcard_"></a><h5>
-<a name="id509166"></a>
+<a name="id509364"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.wildcard_">Wildcard:</a>
       </h5>
 <p>
@@ -73,7 +73,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.basic_syntax.anchors_"></a><h5>
-<a name="id509235"></a>
+<a name="id509433"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.anchors_">Anchors:</a>
       </h5>
 <p>
@@ -85,7 +85,7 @@
         of an expression, or the last character of a sub-expression.
       </p>
 <a name="boost_regex.syntax.basic_syntax.marked_sub_expressions_"></a><h5>
-<a name="id509271"></a>
+<a name="id509469"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.marked_sub_expressions_">Marked
         sub-expressions:</a>
       </h5>
@@ -97,7 +97,7 @@
         by a back-reference.
       </p>
 <a name="boost_regex.syntax.basic_syntax.repeats_"></a><h5>
-<a name="id509328"></a>
+<a name="id509526"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.repeats_">Repeats:</a>
       </h5>
 <p>
@@ -155,7 +155,7 @@
         to.
       </p>
 <a name="boost_regex.syntax.basic_syntax.back_references_"></a><h5>
-<a name="id509572"></a>
+<a name="id509770"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.back_references_">Back references:</a>
       </h5>
 <p>
@@ -173,7 +173,7 @@
       </p>
 <pre class="programlisting">aaabba</pre>
 <a name="boost_regex.syntax.basic_syntax.character_sets_"></a><h5>
-<a name="id509646"></a>
+<a name="id509844"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_sets_">Character
         sets:</a>
       </h5>
@@ -186,7 +186,7 @@
         A bracket expression may contain any combination of the following:
       </p>
 <a name="boost_regex.syntax.basic_syntax.single_characters_"></a><h6>
-<a name="id509682"></a>
+<a name="id509880"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.single_characters_">Single
         characters:</a>
       </h6>
@@ -195,7 +195,7 @@
         or 'c'.
       </p>
 <a name="boost_regex.syntax.basic_syntax.character_ranges_"></a><h6>
-<a name="id509732"></a>
+<a name="id509930"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_ranges_">Character
         ranges:</a>
       </h6>
@@ -211,7 +211,7 @@
         of the characters only.
       </p>
 <a name="boost_regex.syntax.basic_syntax.negation_"></a><h6>
-<a name="id509824"></a>
+<a name="id510022"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.negation_">Negation:</a>
       </h6>
 <p>
@@ -220,7 +220,7 @@
         range a-c.
       </p>
 <a name="boost_regex.syntax.basic_syntax.character_classes_"></a><h6>
-<a name="id509885"></a>
+<a name="id510083"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.character_classes_">Character
         classes:</a>
       </h6>
@@ -230,7 +230,7 @@
         <a href="character_classes.html" title="Character Class Names">character class names</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.collating_elements_"></a><h6>
-<a name="id509968"></a>
+<a name="id510166"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.collating_elements_">Collating
         Elements:</a>
       </h6>
@@ -259,7 +259,7 @@
         element names</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.equivalence_classes_"></a><h6>
-<a name="id510116"></a>
+<a name="id510315"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.equivalence_classes_">Equivalence
         classes:</a>
       </h6>
@@ -276,7 +276,7 @@
         or even all locales on one platform.
       </p>
 <a name="boost_regex.syntax.basic_syntax.combinations_"></a><h6>
-<a name="id510221"></a>
+<a name="id510419"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.combinations_">Combinations:</a>
       </h6>
 <p>
@@ -284,7 +284,7 @@
         <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]].</span></code>
       </p>
 <a name="boost_regex.syntax.basic_syntax.escapes"></a><h5>
-<a name="id510299"></a>
+<a name="id510497"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.escapes">Escapes</a>
       </h5>
 <p>
@@ -299,7 +299,7 @@
         will match either a literal '\' or a '^'.
       </p>
 <a name="boost_regex.syntax.basic_syntax.what_gets_matched"></a><h4>
-<a name="id510356"></a>
+<a name="id510554"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.what_gets_matched">What Gets
         Matched</a>
       </h4>
@@ -309,13 +309,13 @@
         rule</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.variations"></a><h4>
-<a name="id510396"></a>
+<a name="id510594"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.variations">Variations</a>
       </h4>
 <a name="boost_regex.grep_syntax"></a><p>
       </p>
 <a name="boost_regex.syntax.basic_syntax.grep"></a><h5>
-<a name="id510428"></a>
+<a name="id510626"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.grep">Grep</a>
       </h5>
 <p>
@@ -333,7 +333,7 @@
         As its name suggests, this behavior is consistent with the Unix utility grep.
       </p>
 <a name="boost_regex.syntax.basic_syntax.emacs"></a><h5>
-<a name="id510572"></a>
+<a name="id510770"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.emacs">emacs</a>
       </h5>
 <p>
@@ -613,7 +613,7 @@
         leftmost-longest rule</a>.
       </p>
 <a name="boost_regex.syntax.basic_syntax.options"></a><h4>
-<a name="id511068"></a>
+<a name="id511266"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.options">Options</a>
       </h4>
 <p>
@@ -627,7 +627,7 @@
         options</a> modify how the case and locale sensitivity are to be applied.
       </p>
 <a name="boost_regex.syntax.basic_syntax.references"></a><h4>
-<a name="id511240"></a>
+<a name="id511438"></a>
         <a href="basic_syntax.html#boost_regex.syntax.basic_syntax.references">References</a>
       </h4>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
       Syntax</a>
 </h3></div></div></div>
 <a name="boost_regex.syntax.perl_syntax.synopsis"></a><h4>
-<a name="id497566"></a>
+<a name="id497765"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.synopsis">Synopsis</a>
       </h4>
 <p>
@@ -45,7 +45,7 @@
 </span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span> <span class="identifier">e2</span><span class="special">(</span><span class="identifier">my_expression</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">perl</span><span class="special">|</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">::</span><span class="identifier">icase</span><span class="special">);</span>
 </pre>
 <a name="boost_regex.syntax.perl_syntax.perl_regular_expression_syntax"></a><h4>
-<a name="id497787"></a>
+<a name="id497986"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_regular_expression_syntax">Perl
         Regular Expression Syntax</a>
       </h4>
@@ -55,7 +55,7 @@
       </p>
 <pre class="programlisting">.[{()\*+?|^$</pre>
 <a name="boost_regex.syntax.perl_syntax.wildcard"></a><h5>
-<a name="id497825"></a>
+<a name="id498024"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.wildcard">Wildcard</a>
       </h5>
 <p>
@@ -75,7 +75,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.syntax.perl_syntax.anchors"></a><h5>
-<a name="id497906"></a>
+<a name="id498105"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.anchors">Anchors</a>
       </h5>
 <p>
@@ -85,7 +85,7 @@
         A '$' character shall match the end of a line.
       </p>
 <a name="boost_regex.syntax.perl_syntax.marked_sub_expressions"></a><h5>
-<a name="id497940"></a>
+<a name="id498139"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.marked_sub_expressions">Marked
         sub-expressions</a>
       </h5>
@@ -97,7 +97,7 @@
         to by a back-reference.
       </p>
 <a name="boost_regex.syntax.perl_syntax.non_marking_grouping"></a><h5>
-<a name="id497996"></a>
+<a name="id498194"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_grouping">Non-marking
         grouping</a>
       </h5>
@@ -111,7 +111,7 @@
         out any separate sub-expressions.
       </p>
 <a name="boost_regex.syntax.perl_syntax.repeats"></a><h5>
-<a name="id498084"></a>
+<a name="id498283"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.repeats">Repeats</a>
       </h5>
 <p>
@@ -197,7 +197,7 @@
         operator to be applied to.
       </p>
 <a name="boost_regex.syntax.perl_syntax.non_greedy_repeats"></a><h5>
-<a name="id498557"></a>
+<a name="id498756"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_greedy_repeats">Non greedy
         repeats</a>
       </h5>
@@ -228,7 +228,7 @@
         input as possible.
       </p>
 <a name="boost_regex.syntax.perl_syntax.back_references"></a><h5>
-<a name="id498702"></a>
+<a name="id498897"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.back_references">Back references</a>
       </h5>
 <p>
@@ -248,7 +248,7 @@
 <pre class="programlisting"><span class="identifier">aaabba</span>
 </pre>
 <a name="boost_regex.syntax.perl_syntax.alternation"></a><h5>
-<a name="id498785"></a>
+<a name="id498980"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.alternation">Alternation</a>
       </h5>
 <p>
@@ -277,7 +277,7 @@
         <code class="computeroutput"><span class="special">(?:</span><span class="identifier">abc</span><span class="special">)??</span></code> has exactly the same effect.
       </p>
 <a name="boost_regex.syntax.perl_syntax.character_sets"></a><h5>
-<a name="id498974"></a>
+<a name="id499168"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_sets">Character sets</a>
       </h5>
 <p>
@@ -290,7 +290,7 @@
         A bracket expression may contain any combination of the following:
       </p>
 <a name="boost_regex.syntax.perl_syntax.single_characters"></a><h6>
-<a name="id499033"></a>
+<a name="id499227"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.single_characters">Single characters</a>
       </h6>
 <p>
@@ -298,7 +298,7 @@
         or 'c'.
       </p>
 <a name="boost_regex.syntax.perl_syntax.character_ranges"></a><h6>
-<a name="id499083"></a>
+<a name="id499277"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_ranges">Character
         ranges</a>
       </h6>
@@ -311,7 +311,7 @@
         regular expression, then ranges are locale sensitive.
       </p>
 <a name="boost_regex.syntax.perl_syntax.negation"></a><h6>
-<a name="id499164"></a>
+<a name="id499358"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.negation">Negation</a>
       </h6>
 <p>
@@ -320,7 +320,7 @@
         range <code class="computeroutput"><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span></code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.character_classes"></a><h6>
-<a name="id499246"></a>
+<a name="id499440"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_classes">Character
         classes</a>
       </h6>
@@ -330,7 +330,7 @@
         <a href="character_classes.html" title="Character Class Names">character class names</a>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.collating_elements"></a><h6>
-<a name="id499329"></a>
+<a name="id499523"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.collating_elements">Collating
         Elements</a>
       </h6>
@@ -354,7 +354,7 @@
         character.
       </p>
 <a name="boost_regex.syntax.perl_syntax.equivalence_classes"></a><h6>
-<a name="id499477"></a>
+<a name="id499675"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.equivalence_classes">Equivalence
         classes</a>
       </h6>
@@ -371,7 +371,7 @@
         or even all locales on one platform.
       </p>
 <a name="boost_regex.syntax.perl_syntax.escaped_characters"></a><h6>
-<a name="id499581"></a>
+<a name="id499778"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escaped_characters">Escaped
         Characters</a>
       </h6>
@@ -383,7 +383,7 @@
         is <span class="emphasis"><em>not</em></span> a "word" character.
       </p>
 <a name="boost_regex.syntax.perl_syntax.combinations"></a><h6>
-<a name="id499686"></a>
+<a name="id499884"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.combinations">Combinations</a>
       </h6>
 <p>
@@ -391,7 +391,7 @@
         <code class="computeroutput"><span class="special">[[:</span><span class="identifier">digit</span><span class="special">:]</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">c</span><span class="special">[.</span><span class="identifier">NUL</span><span class="special">.]]</span></code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.escapes"></a><h5>
-<a name="id499764"></a>
+<a name="id499962"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.escapes">Escapes</a>
       </h5>
 <p>
@@ -584,7 +584,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.perl_syntax._quot_single_character_quot__character_classes_"></a><h6>
-<a name="id500477"></a>
+<a name="id500675"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax._quot_single_character_quot__character_classes_">"Single
         character" character classes:</a>
       </h6>
@@ -738,7 +738,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.perl_syntax.character_properties"></a><h6>
-<a name="id501109"></a>
+<a name="id501307"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.character_properties">Character
         Properties</a>
       </h6>
@@ -846,7 +846,7 @@
         matches any "digit" character, as does <code class="computeroutput"><span class="special">\</span><span class="identifier">p</span><span class="special">{</span><span class="identifier">digit</span><span class="special">}</span></code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.word_boundaries"></a><h6>
-<a name="id501519"></a>
+<a name="id501717"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.word_boundaries">Word Boundaries</a>
       </h6>
 <p>
@@ -868,7 +868,7 @@
         Matches only when not at a word boundary.
       </p>
 <a name="boost_regex.syntax.perl_syntax.buffer_boundaries"></a><h6>
-<a name="id501620"></a>
+<a name="id501818"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.buffer_boundaries">Buffer boundaries</a>
       </h6>
 <p>
@@ -893,7 +893,7 @@
         to the regular expression <code class="computeroutput"><span class="special">\</span><span class="identifier">n</span><span class="special">*\</span><span class="identifier">z</span></code>
       </p>
 <a name="boost_regex.syntax.perl_syntax.continuation_escape"></a><h6>
-<a name="id501703"></a>
+<a name="id501902"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.continuation_escape">Continuation
         Escape</a>
       </h6>
@@ -905,7 +905,7 @@
         match to start where the last one ended.
       </p>
 <a name="boost_regex.syntax.perl_syntax.quoting_escape"></a><h6>
-<a name="id501754"></a>
+<a name="id501952"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.quoting_escape">Quoting escape</a>
       </h6>
 <p>
@@ -918,7 +918,7 @@
 <span class="special">\*+</span><span class="identifier">aaa</span>
 </pre>
 <a name="boost_regex.syntax.perl_syntax.unicode_escapes"></a><h6>
-<a name="id501860"></a>
+<a name="id502058"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.unicode_escapes">Unicode escapes</a>
       </h6>
 <p>
@@ -929,7 +929,7 @@
         combining characters.
       </p>
 <a name="boost_regex.syntax.perl_syntax.any_other_escape"></a><h6>
-<a name="id501924"></a>
+<a name="id502122"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.any_other_escape">Any other
         escape</a>
       </h6>
@@ -938,7 +938,7 @@
         \@ matches a literal '@'.
       </p>
 <a name="boost_regex.syntax.perl_syntax.perl_extended_patterns"></a><h5>
-<a name="id501953"></a>
+<a name="id502151"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.perl_extended_patterns">Perl
         Extended Patterns</a>
       </h5>
@@ -947,7 +947,7 @@
         <code class="computeroutput"><span class="special">(?</span></code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.comments"></a><h6>
-<a name="id501994"></a>
+<a name="id502192"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.comments">Comments</a>
       </h6>
 <p>
@@ -956,7 +956,7 @@
         are ignored.
       </p>
 <a name="boost_regex.syntax.perl_syntax.modifiers"></a><h6>
-<a name="id502047"></a>
+<a name="id502245"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.modifiers">Modifiers</a>
       </h6>
 <p>
@@ -971,7 +971,7 @@
         applies the specified modifiers to pattern only.
       </p>
 <a name="boost_regex.syntax.perl_syntax.non_marking_groups"></a><h6>
-<a name="id502174"></a>
+<a name="id502372"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.non_marking_groups">Non-marking
         groups</a>
       </h6>
@@ -980,7 +980,7 @@
         an additional sub-expression.
       </p>
 <a name="boost_regex.syntax.perl_syntax.lookahead"></a><h6>
-<a name="id502225"></a>
+<a name="id502423"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.lookahead">Lookahead</a>
       </h6>
 <p>
@@ -1003,7 +1003,7 @@
         could be used to validate the password.
       </p>
 <a name="boost_regex.syntax.perl_syntax.lookbehind"></a><h6>
-<a name="id502366"></a>
+<a name="id502564"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.lookbehind">Lookbehind</a>
       </h6>
 <p>
@@ -1017,7 +1017,7 @@
         (pattern must be of fixed length).
       </p>
 <a name="boost_regex.syntax.perl_syntax.independent_sub_expressions"></a><h6>
-<a name="id502445"></a>
+<a name="id502643"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.independent_sub_expressions">Independent
         sub-expressions</a>
       </h6>
@@ -1030,7 +1030,7 @@
         no match is found at all.
       </p>
 <a name="boost_regex.syntax.perl_syntax.conditional_expressions"></a><h6>
-<a name="id502509"></a>
+<a name="id502707"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.conditional_expressions">Conditional
         Expressions</a>
       </h6>
@@ -1050,7 +1050,7 @@
         sub-expression has been matched).
       </p>
 <a name="boost_regex.syntax.perl_syntax.operator_precedence"></a><h5>
-<a name="id502677"></a>
+<a name="id502875"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.operator_precedence">Operator
         precedence</a>
       </h5>
@@ -1086,7 +1086,7 @@
         </li>
 </ol></div>
 <a name="boost_regex.syntax.perl_syntax.what_gets_matched"></a><h4>
-<a name="id502856"></a>
+<a name="id503053"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.what_gets_matched">What gets
         matched</a>
       </h4>
@@ -1271,7 +1271,7 @@
 </tbody>
 </table></div>
 <a name="boost_regex.syntax.perl_syntax.variations"></a><h4>
-<a name="id503770"></a>
+<a name="id503968"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.variations">Variations</a>
       </h4>
 <p>
@@ -1280,7 +1280,7 @@
         <code class="computeroutput"><span class="identifier">JavaScript</span></code> and <code class="computeroutput"><span class="identifier">JScript</span></code></a> are all synonyms for <code class="computeroutput"><span class="identifier">perl</span></code>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.options"></a><h4>
-<a name="id503865"></a>
+<a name="id504063"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.options">Options</a>
       </h4>
 <p>
@@ -1293,7 +1293,7 @@
         sensitivity are to be applied.
       </p>
 <a name="boost_regex.syntax.perl_syntax.pattern_modifiers"></a><h4>
-<a name="id503966"></a>
+<a name="id504164"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.pattern_modifiers">Pattern
         Modifiers</a>
       </h4>
@@ -1305,7 +1305,7 @@
         and <code class="computeroutput"><span class="identifier">no_mod_s</span></code></a>.
       </p>
 <a name="boost_regex.syntax.perl_syntax.references"></a><h4>
-<a name="id504093"></a>
+<a name="id504291"></a>
         <a href="perl_syntax.html#boost_regex.syntax.perl_syntax.references">References</a>
       </h4>
 <p>

Modified: branches/proto/v3/libs/regex/doc/html/boost_regex/unicode.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/boost_regex/unicode.html (original)
+++ branches/proto/v3/libs/regex/doc/html/boost_regex/unicode.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,7 +30,7 @@
       There are two ways to use Boost.Regex with Unicode strings:
     </p>
 <a name="boost_regex.unicode.rely_on_wchar_t"></a><h5>
-<a name="id492571"></a>
+<a name="id492766"></a>
       <a href="unicode.html#boost_regex.unicode.rely_on_wchar_t">Rely on wchar_t</a>
     </h5>
 <p>
@@ -56,7 +56,7 @@
       </li>
 </ul></div>
 <a name="boost_regex.unicode.use_a_unicode_aware_regular_expression_type_"></a><h5>
-<a name="id492755"></a>
+<a name="id492949"></a>
       <a href="unicode.html#boost_regex.unicode.use_a_unicode_aware_regular_expression_type_">Use
       a Unicode Aware Regular Expression Type.</a>
     </h5>

Modified: branches/proto/v3/libs/regex/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/regex/doc/html/index.html (original)
+++ branches/proto/v3/libs/regex/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -28,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 1998 -2007 John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id435870"></a><p>
+<a name="id437578"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -190,9 +190,13 @@
 </dl></dd>
 </dl>
 </div>
+<p>
+ A printer-friendly <a href="http://svn.boost.org/svn/boost/sandbox/pdf/regex/release/regex.pdf" target="_top">PDF
+ version of this manual is also available</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 14, 2007 at 10:05:07 GMT</small></p></td>
+<td align="left"><p><small>Last revised: February 21, 2008 at 12:52:05 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/proto/v3/libs/regex/doc/match_flag_type.qbk
==============================================================================
--- branches/proto/v3/libs/regex/doc/match_flag_type.qbk (original)
+++ branches/proto/v3/libs/regex/doc/match_flag_type.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -74,7 +74,7 @@
 [[match_single_line][Equivalent to the inverse of Perl's m/ modifier; prevents ^ from matching after an embedded newline character (so that it only matches at the start of the text being matched), and $ from matching before an embedded newline (so that it only matches at the end of the text being matched).]]
 [[match_prev_avail][Specifies that --first is a valid iterator position, when this flag is set then the flags match_not_bol and match_not_bow are ignored by the regular expression algorithms (RE.7) and iterators (RE.8).]]
 [[match_not_dot_newline][Specifies that the expression "." does not match a newline character. This is the inverse of Perl's s/ modifier.]]
-[[match_not_dot_null][Specified that the expression "." does not match a character null '\\0'.]]
+[[match_not_dot_null][Specifies that the expression "." does not match a character null '\\0'.]]
 [[match_posix][Specifies that the expression should be matched according to the POSIX
    [link boost_regex.syntax.leftmost_longest_rule leftmost-longest rule],
    regardless of what kind of expression was compiled.
@@ -108,7 +108,7 @@
 [[format_perl][Specifies that when a regular expression match is to be replaced by
       a new string, that the new string is constructed using
       [link boost_regex.format.perl_format the same rules as Perl 5].]]
-[[format_literal][Specified that when a regular expression match is to be
+[[format_literal][Specifies that when a regular expression match is to be
       replaced by a new string, that the new string is a literal copy of
       the replacement text.]]
 [[format_all][Specifies that all syntax extensions are enabled, including

Modified: branches/proto/v3/libs/regex/doc/regex.qbk
==============================================================================
--- branches/proto/v3/libs/regex/doc/regex.qbk (original)
+++ branches/proto/v3/libs/regex/doc/regex.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -45,6 +45,10 @@
 [template regerror[] [link boost_regex.ref.posix.regerror `regerror`]]
 [template regfree[] [link boost_regex.ref.posix.regfree `regfree`]]
 
+A printer-friendly
+[@http://svn.boost.org/svn/boost/sandbox/pdf/regex/release/regex.pdf
+PDF version of this manual is also available].
+
 [include configuration.qbk]
 [include install.qbk]
 [include introduction.qbk]

Modified: branches/proto/v3/libs/regex/performance/input.html
==============================================================================
--- branches/proto/v3/libs/regex/performance/input.html (original)
+++ branches/proto/v3/libs/regex/performance/input.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,6 +5,7 @@
       <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
       <meta name="Template" content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
       <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
+ <!-- boostinspect:nounlinked -->
    </head>
    <body bgcolor="#ffffff" link="#0000ff" vlink="#800080">
       <h2>Regular Expression Performance Comparison</h2>
@@ -65,7 +66,7 @@
          the text indicated was measured.&nbsp;</p>
       <P>%short_matches%</P>
       <hr>
- <p><i>© Copyright John Maddock&nbsp;2003</i></p>
+ <p><i>© Copyright John Maddock&nbsp;2003</i></p>
       <p><i>Use, modification and distribution are subject to the Boost Software License,
             Version 1.0. (See accompanying file LICENSE_1_0.txt
             or copy at http://www.boost.org/LICENSE_1_0.txt)</i></p>

Modified: branches/proto/v3/libs/regex/test/regress/test_perl_ex.cpp
==============================================================================
--- branches/proto/v3/libs/regex/test/regress/test_perl_ex.cpp (original)
+++ branches/proto/v3/libs/regex/test/regress/test_perl_ex.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -121,6 +121,17 @@
    TEST_INVALID_REGEX("(?:(a)|b)(?(?:", perl);
    TEST_INVALID_REGEX("(?:(a)|b)(?(?<", perl);
    TEST_INVALID_REGEX("(?:(a)|b)(?(?<a", perl);
+
+ TEST_INVALID_REGEX("(?(?!#?)+)", perl);
+ TEST_INVALID_REGEX("(?(?=:-){0})", perl);
+ TEST_INVALID_REGEX("(?(123){1})", perl);
+ TEST_INVALID_REGEX("(?(?<=A)*)", perl);
+ TEST_INVALID_REGEX("(?(?<=A)+)", perl);
+
+ TEST_INVALID_REGEX("(?<!*|^)", perl);
+ TEST_INVALID_REGEX("(?<!*|A)", perl);
+ TEST_INVALID_REGEX("(?<=?|A)", perl);
+ TEST_INVALID_REGEX("(?<=*|\\B)", perl);
 }
 
 void test_options()

Modified: branches/proto/v3/libs/serialization/doc/acknowledgments.html
==============================================================================
--- branches/proto/v3/libs/serialization/doc/acknowledgments.html (original)
+++ branches/proto/v3/libs/serialization/doc/acknowledgments.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -36,21 +36,21 @@
   <li>Markus Sch&ouml;pflin tracked down issues with TRU64 compiler resulting in 100% passing.
   <li><a href="mailto::troy_at_[hidden]"> Troy D. Straszheim</a> made the initial version of variant serialization.
   <li>Tonko Juricic helped refine and complete project files for VC 7.1 ide
- <li>Rene Rivera tracked down several issues related to
+ <li>Rene Rivera tracked down several issues related to
   Code Warrior, toolset configuration and bjam and much else.
   <li>Martin Ecker detected (and fixed!) a number of sublte errors regarding cyclic
   pointers, shared pointers. He also built the library as a DLL and raised some issues
   <li>Pavel Vozenilek invested much effort in review of code and documentation
   resulting in many improvements. In addition he help a lot with porting to other
   platforms including VC 6.0, Intel, and especially Borland.
- <li>Jens Maurer and
- Beman Dawes who got the boost
+ <li>Jens Maurer and
+ Beman Dawes who got the boost
   serialization ball rolling. It was one or both of these two that invented
   the much beloved <code>&amp;</code> syntax used to implement both save and
   load in one fuction specification.
- <li>Vladimir Prus for evaluating an
+ <li>Vladimir Prus for evaluating an
   early draft and contributing the diamond inheritance example.
- <li>William E. Kempf
+ <li>William E. Kempf
   who made the templates for this and other boost manuals. This relieved
   me of much aggravation.
   <li><a href="mailto:vahan_at_[hidden]">Vahan Margaryan</a> and

Modified: branches/proto/v3/libs/signals/doc/faq.xml
==============================================================================
--- branches/proto/v3/libs/signals/doc/faq.xml (original)
+++ branches/proto/v3/libs/signals/doc/faq.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -86,23 +86,39 @@
   }
 </programlisting>
 
- <para>The second way, provided by Frank Hess, involves
+ <para>The second way, provided by Frank Hess and improved by
+ Niels Dekker, involves
         creating a header <code>signalslib.hpp</code> that contains
           the following code:</para>
 
- <programlisting>#ifdef signals
-#error "signalslib.hpp must be included before any qt header"
+ <programlisting>#ifndef SIGNALSLIB_HPP_INCLUDED
+#define SIGNALSLIB_HPP_INCLUDED
+
+#if defined(signals) && defined(QOBJECTDEFS_H) && \
+ !defined(QT_MOC_CPP)
+# undef signals
+# define signals signals
 #endif
 
 #include &lt;boost/signal.hpp&gt;
 namespace boost
 {
   namespace signalslib = signals;
-}</programlisting>
+}
+
+#if defined(signals) && defined(QOBJECTDEFS_H) && \
+ !defined(QT_MOC_CPP)
+# undef signals
+// Restore the macro definition of "signals", as it was
+// defined by Qt's &lt;qobjectdefs.h&gt;.
+# define signals protected
+#endif
+
+#endif</programlisting>
 
- <para>This header must be included before any Qt headers. Once
- it has been included, you can refer to the Signals library via
- the namespace <code>boost::signalslib</code>. This option is
+ <para>Use this header to include the Boost library, then refer
+ to it in the namespace <code>boost::signalslib</code>. This
+ option is often
         preferable to the first option because it can be used without
         recompiling the Signals library binary. </para>
       </answer>

Modified: branches/proto/v3/libs/smart_ptr/shared_ptr.htm
==============================================================================
--- branches/proto/v3/libs/smart_ptr/shared_ptr.htm (original)
+++ branches/proto/v3/libs/smart_ptr/shared_ptr.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -373,8 +373,8 @@
                 <pre>long use_count() const; // never throws</pre>
                 <blockquote>
                         <p><b>Returns:</b> the number of <b>shared_ptr</b> objects, <STRONG>*this</STRONG> included,
- that <i>share ownership</i> with <b>*this</b>, or an unspecified nonnegative
- value when <STRONG>*this</STRONG> is <EM>empty</EM>.</p>
+ that <i>share ownership</i> with <b>*this</b>, or 0 when <STRONG>*this</STRONG>
+ is <EM>empty</EM>.</p>
                         <p><b>Throws:</b> nothing.</p>
                         <P><B>Notes:</B> <code>use_count()</code> is not necessarily efficient. Use only
                                 for debugging and testing purposes, not for production code.</P>
@@ -709,8 +709,8 @@
                 <p>
                         $Date$</p>
                 <p><small>Copyright 1999 Greg Colvin and Beman Dawes. Copyright 2002 Darin Adler.
- Copyright 2002-2005 Peter Dimov. Distributed under the Boost Software License, Version
- 1.0. See accompanying file LICENSE_1_0.txt or
- copy at http://www.boost.org/LICENSE_1_0.txt.</small></p>
+ Copyright 2002-2005 Peter Dimov. Distributed under the Boost Software License,
+ Version 1.0. See accompanying file LICENSE_1_0.txt
+ or copy at http://www.boost.org/LICENSE_1_0.txt.</small></p>
         </body>
 </html>

Modified: branches/proto/v3/libs/smart_ptr/smart_ptr.htm
==============================================================================
--- branches/proto/v3/libs/smart_ptr/smart_ptr.htm (original)
+++ branches/proto/v3/libs/smart_ptr/smart_ptr.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -105,7 +105,7 @@
                         and that is thrown only by functions which are explicitly documented as
                         possibly throwing <b>std::bad_alloc</b>.</p>
                 <h2><a name="Exception-specifications">Exception-specifications</a></h2>
- <p>Exception-specifications are not used; see <a href="../../more/lib_guide.htm#Exception-specification">
+ <p>Exception-specifications are not used; see <a href="http://www.boost.org/more/lib_guide.htm#Exception-specification">
                                 exception-specification rationale</a>.</p>
                 <p>All the smart pointer templates contain member functions which can never throw
                         exceptions, because they neither throw exceptions themselves nor call other

Modified: branches/proto/v3/libs/smart_ptr/smarttests.htm
==============================================================================
--- branches/proto/v3/libs/smart_ptr/smarttests.htm (original)
+++ branches/proto/v3/libs/smart_ptr/smarttests.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -21,10 +21,10 @@
   mailing list and the tests which this page describes were performed to provide
   a guide for current and future investigations into smart pointer implementation
   strategies.</p>
-<p>Thanks are due to Dave Abrahams,
+<p>Thanks are due to Dave Abrahams,
 Gavin Collings,
-Greg Colvin and
-Beman Dawes
+Greg Colvin and
+Beman Dawes
   for test code and trial implementations, the final version of which can be found
   in .zip format here.</p>
 <h2>Description</h2>

Modified: branches/proto/v3/libs/smart_ptr/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/smart_ptr/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/smart_ptr/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,5 +33,7 @@
           [ run shared_ptr_move_test.cpp ]
           [ compile-fail shared_ptr_pv_fail.cpp ]
           [ run sp_unary_addr_test.cpp ]
+ [ compile-fail scoped_ptr_eq_fail.cpp ]
+ [ compile-fail scoped_array_eq_fail.cpp ]
         ;
 }

Modified: branches/proto/v3/libs/smart_ptr/test/shared_ptr_test.cpp
==============================================================================
--- branches/proto/v3/libs/smart_ptr/test/shared_ptr_test.cpp (original)
+++ branches/proto/v3/libs/smart_ptr/test/shared_ptr_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -62,6 +62,7 @@
         BOOST_TEST(pi? false: true);
         BOOST_TEST(!pi);
         BOOST_TEST(pi.get() == 0);
+ BOOST_TEST(pi.use_count() == 0);
     }
 
     {
@@ -69,6 +70,7 @@
         BOOST_TEST(pv? false: true);
         BOOST_TEST(!pv);
         BOOST_TEST(pv.get() == 0);
+ BOOST_TEST(pv.use_count() == 0);
     }
 
     {
@@ -76,6 +78,7 @@
         BOOST_TEST(px? false: true);
         BOOST_TEST(!px);
         BOOST_TEST(px.get() == 0);
+ BOOST_TEST(px.use_count() == 0);
     }
 }
 
@@ -1565,6 +1568,7 @@
         BOOST_TEST(pi? false: true);
         BOOST_TEST(!pi);
         BOOST_TEST(pi.get() == 0);
+ BOOST_TEST(pi.use_count() == 0);
     }
 
     {
@@ -1573,6 +1577,7 @@
         BOOST_TEST(pi? false: true);
         BOOST_TEST(!pi);
         BOOST_TEST(pi.get() == 0);
+ BOOST_TEST(pi.use_count() == 0);
     }
 
     {
@@ -1581,6 +1586,7 @@
         BOOST_TEST(pi? false: true);
         BOOST_TEST(!pi);
         BOOST_TEST(pi.get() == 0);
+ BOOST_TEST(pi.use_count() == 0);
     }
 
     {
@@ -1589,6 +1595,7 @@
         BOOST_TEST(px? false: true);
         BOOST_TEST(!px);
         BOOST_TEST(px.get() == 0);
+ BOOST_TEST(px.use_count() == 0);
     }
 
     {
@@ -1597,6 +1604,7 @@
         BOOST_TEST(px? false: true);
         BOOST_TEST(!px);
         BOOST_TEST(px.get() == 0);
+ BOOST_TEST(px.use_count() == 0);
     }
 
     {
@@ -1605,6 +1613,7 @@
         BOOST_TEST(px? false: true);
         BOOST_TEST(!px);
         BOOST_TEST(px.get() == 0);
+ BOOST_TEST(px.use_count() == 0);
     }
 
     {
@@ -1615,6 +1624,7 @@
         BOOST_TEST(px? false: true);
         BOOST_TEST(!px);
         BOOST_TEST(px.get() == 0);
+ BOOST_TEST(px.use_count() == 0);
         BOOST_TEST(X::instances == 0);
     }
 
@@ -1624,6 +1634,7 @@
         BOOST_TEST(pv? false: true);
         BOOST_TEST(!pv);
         BOOST_TEST(pv.get() == 0);
+ BOOST_TEST(pv.use_count() == 0);
     }
 
     {
@@ -1634,6 +1645,7 @@
         BOOST_TEST(pv? false: true);
         BOOST_TEST(!pv);
         BOOST_TEST(pv.get() == 0);
+ BOOST_TEST(pv.use_count() == 0);
         BOOST_TEST(X::instances == 0);
     }
 }

Modified: branches/proto/v3/libs/statechart/doc/acknowledgments.html
==============================================================================
--- branches/proto/v3/libs/statechart/doc/acknowledgments.html (original)
+++ branches/proto/v3/libs/statechart/doc/acknowledgments.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -88,21 +88,21 @@
   Philippe David, Peter Dimov, Reece Dunn, John Fuller, Jeff Garland, Eugene
   Gladyshev, David A. Greene, Douglas Gregor, Gustavo Guerra, Aleksey
   Gurtovoy, Federico J. Fern&aacute;ndez, Iain K. Hanson, David B. Held,
- J&uuml;rgen Hunold, Oliver Kowalke, Simon Meiklejohn, Jiang Miao, Johan
- Nilsson, Matthieu Paindavoine, Chris Paulse, Yuval Ronen, Chris Russell,
- Rob Stewart, Kwee Heong Tan, Marcin Tustin, Vincent N. Virgilio, Gang Wang,
- Steven Watanabe and Scott Woods.</p>
+ J&uuml;rgen Hunold, Sean Kelly, Oliver Kowalke, Simon Meiklejohn, Jiang
+ Miao, Johan Nilsson, Matthieu Paindavoine, Chris Paulse, Yuval Ronen, Chris
+ Russell, Rob Stewart, Kwee Heong Tan, Marcin Tustin, Vincent N. Virgilio,
+ Gang Wang, Steven Watanabe and Scott Woods.</p>
   <hr>
 
   <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
   "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
   height="31" width="88"></a></p>
 
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->03 December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38512" --></p>
+ <p>Revised 05 January, 2008</p>
+
+ <p><i>Copyright &copy; 2003-2008 <a href="contact.html">Andreas Huber
+ D&ouml;nni</a></i></p>
 
- <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2006<!--webbot bot="Timestamp" endspan i-checksum="770" -->
- Andreas Huber Dönni</i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/statechart/doc/configuration.html
==============================================================================
--- branches/proto/v3/libs/statechart/doc/configuration.html (original)
+++ branches/proto/v3/libs/statechart/doc/configuration.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -42,12 +42,6 @@
 
     <dd><a href="#ApplicationDefinedMacros">Application Defined
     Macros</a></dd>
-
- <dt><a href="#CompilerSpecificConfiguration">Compiler-specific
- configuration</a></dt>
-
- <dd><a href="#Intel70">Intel 7.0 (Win32, MS Visual Studio 6 std
- library)</a></dd>
   </dl>
 
   <h1><a id="GeneralConfiguration" name="GeneralConfiguration">General
@@ -158,29 +152,14 @@
   technology such violations may or may not manifest themselves in link-time
   errors.</p>
 
- <h1><a id="CompilerSpecificConfiguration" name=
- "CompilerSpecificConfiguration">Compiler-specific configuration</a></h1>
-
- <h2><a id="Intel70" name="Intel70">Intel 7.0 (Win32, MS Visual Studio 6 std
- library)</a></h2>
-
- <p>By default, this compiler has argument dependent lookup disabled. ADL
- must be enabled to compile the library without errors. To enable ADL,
- <code>/Qoption,c,--arg_dep_lookup</code> must be added to the compiler
- command line. See <a href=
- "../../../boost/config/compiler/intel.hpp">&lt;boost/config/compiler/intel.hpp&gt;</a>
- for more information.</p>
- <hr>
-
   <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
   "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
   height="31" width="88"></a></p>
 
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->03 December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38512" --></p>
+ <p>Revised 05 January, 2008</p>
 
- <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2006<!--webbot bot="Timestamp" endspan i-checksum="770" -->
- Andreas Huber Dönni</i></p>
+ <p><i>Copyright &copy; 2003-2008 <a href="contact.html">Andreas Huber
+ D&ouml;nni</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/statechart/doc/contact.html
==============================================================================
--- branches/proto/v3/libs/statechart/doc/contact.html (original)
+++ branches/proto/v3/libs/statechart/doc/contact.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -36,11 +36,11 @@
   people:</p>
 
   <ul>
- <li>Boost Users for
+ <li>Boost Users for
     questions and comments about the documentation, the interface or the
     semantics</li>
 
- <li>Boost Developers for
+ <li>Boost Developers for
     bug reports and patches</li>
   </ul>
 

Modified: branches/proto/v3/libs/statechart/doc/faq.html
==============================================================================
--- branches/proto/v3/libs/statechart/doc/faq.html (original)
+++ branches/proto/v3/libs/statechart/doc/faq.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -768,11 +768,10 @@
   "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
   height="31" width="88"></a></p>
 
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->15 November, 2007<!--webbot bot="Timestamp" endspan i-checksum="38512" --></p>
+ <p>Revised 05 January, 2008</p>
 
- <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="770" -->
- Andreas Huber Dönni</i></p>
+ <p><i>Copyright &copy; 2003-2008 <a href="contact.html">Andreas Huber
+ D&ouml;nni</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/statechart/doc/future_and_history.html
==============================================================================
--- branches/proto/v3/libs/statechart/doc/future_and_history.html (original)
+++ branches/proto/v3/libs/statechart/doc/future_and_history.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -46,7 +46,8 @@
 
   <ol>
     <li>Implement a choice-point-like class, as discussed in
- this thread</li>
+ <a href="http://thread.gmane.org/gmane.comp.lib.boost.devel/164460">this
+ thread</a></li>
 
     <li>Optimize state-entry and state-exit for speed and code-size</li>
 
@@ -148,6 +149,9 @@
     <li>Added the FAQ item <a href="faq.html#AssertInStateDestructor">Why
       do I get an assert when I access the state machine from a state
       destructor?</a> (due to feedback from Jiang Miao)</li>
+ <li>Added defaults for the last two template parameters of <a href=
+ "reference.html#ClassTemplatein_state_reaction">in_state_reaction<></a>
+ (due to feedback from Sean Kelly)</li>
   </ul>
 
   <p>1.35.0</p>
@@ -680,11 +684,10 @@
   "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
   height="31" width="88"></a></p>
 
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->09 April, 2007<!--webbot bot="Timestamp" endspan i-checksum="30014" --></p>
+ <p>Revised 05 January, 2008</p>
 
- <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
- Andreas Huber Dönni</i></p>
+ <p><i>Copyright &copy; 2003-2008 <a href="contact.html">Andreas Huber
+ D&ouml;nni</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/statechart/doc/reference.html
==============================================================================
--- branches/proto/v3/libs/statechart/doc/reference.html (original)
+++ branches/proto/v3/libs/statechart/doc/reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,11 +4,17 @@
 <head>
   <meta http-equiv="Content-Language" content="en-us">
   <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
+ <meta name="GENERATOR" content="Microsoft FrontPage 12.0">
   <meta name="ProgId" content="FrontPage.Editor.Document">
   <link rel="stylesheet" type="text/css" href="../../../boost.css">
 
   <title>The Boost Statechart Library - Reference</title>
+ <style type="text/css">
+ .style1
+ {
+ width: 45%;
+ }
+ </style>
 </head>
 
 <body link="#0000FF" vlink="#800080">
@@ -184,27 +190,27 @@
 
   <table border="3" cellpadding="2" width="100%" summary="Scheduler concept">
     <tr>
- <td width="24%"><b>Expression</b></td>
+ <td><b>Expression</b></td>
 
- <td width="25%"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="48%"><b>Result</b></td>
+ <td><b>Result</b></td>
     </tr>
 
     <tr>
- <td width="24%"><code>cpc.my_scheduler()</code></td>
+ <td><code>cpc.my_scheduler()</code></td>
 
- <td width="25%"><code>S &amp;</code></td>
+ <td><code>S &amp;</code></td>
 
- <td width="48%">A reference to the scheduler</td>
+ <td>A reference to the scheduler</td>
     </tr>
 
     <tr>
- <td width="24%"><code>cpc.my_handle()</code></td>
+ <td><code>cpc.my_handle()</code></td>
 
- <td width="25%"><code>S::processor_handle</code></td>
+ <td><code>S::processor_handle</code></td>
 
- <td width="48%">The handle identifying the
+ <td>The handle identifying the
       <code>event_processor&lt;&gt;</code> subtype object</td>
     </tr>
   </table>
@@ -235,57 +241,56 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "FifoWorker concept">
     <tr>
- <td width="36%"><b>Expression/Statement</b></td>
+ <td><b>Expression/Statement</b></td>
 
- <td width="10%"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="52%"><b>Effects/Result</b></td>
+ <td><b>Effects/Result</b></td>
     </tr>
 
     <tr>
- <td width="36%"><code>F::work_item</code></td>
+ <td><code>F::work_item</code></td>
 
- <td width="10%"><code>boost::function0&lt;<br>
- &nbsp; void &gt;</code></td>
+ <td><code>boost::function0&lt; void &gt;</code></td>
 
- <td width="52%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="36%"><code>F()</code> or <code>F( false )</code></td>
+ <td><code>F()</code> or <code>F( false )</code></td>
 
- <td width="10%"><code>F</code></td>
+ <td><code>F</code></td>
 
- <td width="52%">Constructs a <b>non-blocking</b> (see below) object of
+ <td>Constructs a <b>non-blocking</b> (see below) object of
       the FifoWorker type. In single-threaded builds the second expression is
       not well-formed</td>
     </tr>
 
     <tr>
- <td width="36%"><code>F( true )</code></td>
+ <td><code>F( true )</code></td>
 
- <td width="10%"><code>F</code></td>
+ <td><code>F</code></td>
 
- <td width="52%">Constructs a <b>blocking</b> (see below) object of the
+ <td>Constructs a <b>blocking</b> (see below) object of the
       FifoWorker type. Not well-formed in single-threaded builds</td>
     </tr>
 
     <tr>
- <td width="36%"><code>f.queue_work_item( w );</code></td>
+ <td><code>f.queue_work_item( w );</code></td>
 
- <td width="10%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="52%">Constructs and queues an object of type
+ <td>Constructs and queues an object of type
       <code>F::work_item</code>, passing <code>w</code> as the only
       argument</td>
     </tr>
 
     <tr>
- <td width="36%"><code>f.terminate();</code></td>
+ <td><code>f.terminate();</code></td>
 
- <td width="10%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="52%">Creates and queues an object of type
+ <td>Creates and queues an object of type
       <code>F::work_item</code> that, when later executed in
       <code>operator()()</code>, leads to a modification of internal state so
       that <code>terminated()</code> henceforth returns
@@ -293,11 +298,11 @@
     </tr>
 
     <tr>
- <td width="36%"><code>cf.terminated();</code></td>
+ <td><code>cf.terminated();</code></td>
 
- <td width="10%"><code>bool</code></td>
+ <td><code>bool</code></td>
 
- <td width="52%"><code>true</code> if <code>terminate()</code> has been
+ <td><code>true</code> if <code>terminate()</code> has been
       called and the resulting work item has been executed in
       <code>operator()()</code>. Returns <code>false</code> otherwise<br>
       <br>
@@ -306,11 +311,11 @@
     </tr>
 
     <tr>
- <td width="36%"><code>f( n );</code></td>
+ <td><code>f( n );</code></td>
 
- <td width="10%"><code>unsigned long</code></td>
+ <td><code>unsigned long</code></td>
 
- <td width="52%">
+ <td>
         Enters a loop that, with each cycle, dequeues and calls
         <code>operator()()</code> on the oldest work item in the queue.
 
@@ -341,11 +346,11 @@
     </tr>
 
     <tr>
- <td width="36%"><code>f();</code></td>
+ <td><code>f();</code></td>
 
- <td width="10%"><code>unsigned long</code></td>
+ <td><code>unsigned long</code></td>
 
- <td width="52%">Has exactly the same semantics as <code>f( n );</code>
+ <td>Has exactly the same semantics as <code>f( n );</code>
       with <code>n == 0</code> (see above)</td>
     </tr>
   </table>
@@ -367,19 +372,19 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "ExceptionTranslator concept">
     <tr>
- <td width="299"><b>Expression</b></td>
+ <td><b>Expression</b></td>
 
- <td width="101"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="1129"><b>Effects/Result</b></td>
+ <td><b>Effects/Result</b></td>
     </tr>
 
     <tr>
- <td width="299"><code>et( a, eh );</code></td>
+ <td><code>et(&nbsp;a,&nbsp;eh&nbsp;);</code></td>
 
- <td width="101"><code>result</code></td>
+ <td><code>result</code></td>
 
- <td width="1129">
+ <td>
         <ol>
           <li>Attempts to execute <code>return a();</code></li>
 
@@ -408,29 +413,29 @@
 
   <table border="3" cellpadding="2" width="100%" summary="StateBase concept">
     <tr>
- <td width="26%"><b>Expression</b></td>
+ <td><b>Expression</b></td>
 
- <td width="12%"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="60%"><b>Result</b></td>
+ <td><b>Result</b></td>
     </tr>
 
     <tr>
- <td width="26%"><code>cs.outer_state_ptr()</code></td>
+ <td><code>cs.outer_state_ptr()</code></td>
 
- <td width="12%"><code>const S *</code></td>
+ <td><code>const S *</code></td>
 
- <td width="60%"><code>0</code> if <code>cs</code> is an <a href=
+ <td><code>0</code> if <code>cs</code> is an <a href=
       "definitions.html#OutermostState">outermost state</a>, a pointer to the
       direct outer state of <code>cs</code> otherwise</td>
     </tr>
 
     <tr>
- <td width="25%"><code>cs.dynamic_type()</code></td>
+ <td><code>cs.dynamic_type()</code></td>
 
- <td width="12%"><code>S::id_type</code></td>
+ <td><code>S::id_type</code></td>
 
- <td width="60%">A value unambiguously identifying the most-derived type
+ <td>A value unambiguously identifying the most-derived type
       of <code>cs</code>. <code>S::id_type</code> values are comparable with
       <code>operator==()</code> and <code>operator!=()</code>. An unspecified
       collating order can be established with <code>std::less&lt; S::id_type
@@ -440,12 +445,12 @@
     </tr>
 
     <tr>
- <td width="25%"><code>cs.custom_dynamic_type_ptr&lt;<br>
+ <td><code>cs.custom_dynamic_type_ptr&lt;<br>
       &nbsp; Type &gt;()</code></td>
 
- <td width="12%"><code>const Type *</code></td>
+ <td><code>const Type *</code></td>
 
- <td width="60%">A pointer to the custom type identifier or
+ <td>A pointer to the custom type identifier or
       <code>0</code>. If <code>!= 0</code>, <code>Type</code> must match the
       type of the previously set pointer. This function is only available if
       <a href=
@@ -466,22 +471,22 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "SimpleState concept">
     <tr>
- <td width="28%"><b>Expression/Statement</b></td>
+ <td><b>Expression/Statement</b></td>
 
- <td width="29%"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="42%"><b>Effects/Result/Notes</b></td>
+ <td><b>Effects/Result/Notes</b></td>
     </tr>
 
     <tr>
- <td width="28%"><code><a href=
+ <td><code><a href=
       "#ClassTemplatesimple_state">simple_state</a>&lt;<br>
- &nbsp; S, C, I, h &gt; * pB =<br>
- &nbsp;&nbsp;&nbsp; pS;</code></td>
+ &nbsp;&nbsp;S,&nbsp;C,&nbsp;I,&nbsp;h&nbsp;&gt;&nbsp;*&nbsp;pB&nbsp;=<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;pS;</code></td>
 
- <td width="29%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="42%"><code>simple_state&lt; S, C, I, h &gt;</code> must be
+ <td><code>simple_state&lt; S, C, I, h &gt;</code> must be
       an unambiguous public base of <code>S</code>. See <code><a href=
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code>
       documentation for the requirements and semantics of <code>C</code>,
@@ -489,22 +494,22 @@
     </tr>
 
     <tr>
- <td width="28%"><code>new S()</code></td>
+ <td><code>new S()</code></td>
 
- <td width="29%"><code>S *</code></td>
+ <td><code>S *</code></td>
 
- <td width="42%">Enters the state <code>S</code>. Certain functions must
+ <td>Enters the state <code>S</code>. Certain functions must
       not be called from <code>S::S()</code>, see <a href=
       "#ClassTemplatesimple_state"><code>simple_state&lt;&gt;</code></a>
       documentation for more information</td>
     </tr>
 
     <tr>
- <td width="28%"><code>pS-&gt;exit();</code></td>
+ <td><code>pS-&gt;exit();</code></td>
 
- <td width="29%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="42%">Exits the state <code>S</code> (first stage). The
+ <td>Exits the state <code>S</code> (first stage). The
       definition of an <code>exit</code> member function within models of the
       SimpleState concept is optional since <code>simple_state&lt;&gt;</code>
       already defines the following public member: <code>void exit()
@@ -515,17 +520,17 @@
     </tr>
 
     <tr>
- <td width="28%"><code>delete pS;</code></td>
+ <td><code>delete pS;</code></td>
 
- <td width="29%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="42%">Exits the state <code>S</code> (second stage)</td>
+ <td>Exits the state <code>S</code> (second stage)</td>
     </tr>
 
     <tr>
- <td width="28%"><code>S::reactions</code></td>
+ <td><code>S::reactions</code></td>
 
- <td width="29%">An <code>mpl::list&lt;&gt;</code> that is either empty
+ <td>An <code>mpl::list&lt;&gt;</code> that is either empty
       or contains instantiations of the <code><a href=
       "#ClassTemplatecustom_reaction">custom_reaction</a></code>,
       <code><a href=
@@ -537,7 +542,7 @@
       <code>typedef</code>ed directly, without wrapping it into an
       <code>mpl::list&lt;&gt;</code></td>
 
- <td width="42%">The declaration of a <code>reactions</code> member
+ <td>The declaration of a <code>reactions</code> member
       <code>typedef</code> within models of the SimpleState concept is
       optional since <code>simple_state&lt;&gt;</code> already defines the
       following public member: <code>typedef mpl::list&lt;&gt;
@@ -558,21 +563,20 @@
 
   <table border="3" cellpadding="2" width="100%" summary="State concept">
     <tr>
- <td width="28%"><b>Expression/Statement</b></td>
+ <td><b>Expression/Statement</b></td>
 
- <td width="29%"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="42%"><b>Effects/Result/Notes</b></td>
+ <td><b>Effects/Result/Notes</b></td>
     </tr>
 
     <tr>
- <td width="28%"><code>state&lt; S, C,
- I, h &gt; *<br>
- &nbsp; pB = pS;</code></td>
+ <td><code>state&lt;&nbsp;S,&nbsp;C,&nbsp;I,&nbsp;h&nbsp;&gt;&nbsp;*<br>
+ &nbsp;&nbsp;pB = pS;</code></td>
 
- <td width="29%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="42%"><code>state&lt; S, C, I, h &gt;</code> must be an
+ <td><code>state&lt; S, C, I, h &gt;</code> must be an
       unambiguous public base of <code>S</code>. See <code><a href=
       "#ClassTemplatestate">state&lt;&gt;</a></code> documentation for the
       requirements and semantics of <code>C</code>, <code>I</code> and
@@ -580,11 +584,11 @@
     </tr>
 
     <tr>
- <td width="28%"><code>new S( mc )</code></td>
+ <td><code>new S( mc )</code></td>
 
- <td width="29%"><code>S *</code></td>
+ <td><code>S *</code></td>
 
- <td width="42%">Enters the state <code>S</code>. No restrictions exist
+ <td>Enters the state <code>S</code>. No restrictions exist
       regarding the functions that can be called from <code>S::S()</code> (in
       contrast to the constructors of models of the SimpleState concept).
       <code>mc</code> must be forwarded to <code>state&lt; S, C, I, h
@@ -604,29 +608,29 @@
 
   <table border="3" cellpadding="2" width="100%" summary="Event concept">
     <tr>
- <td width="28%"><b>Expression/Statement</b></td>
+ <td><b>Expression/Statement</b></td>
 
- <td width="29%"><b>Type</b></td>
+ <td><b>Type</b></td>
 
- <td width="42%"><b>Effects/Result/Notes</b></td>
+ <td><b>Effects/Result/Notes</b></td>
     </tr>
 
     <tr>
- <td width="28%"><code>const event&lt;
+ <td><code>const event&lt;
       E &gt; * pCB = pCE;</code></td>
 
- <td width="29%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="42%"><code>event&lt; E &gt;</code> must be an unambiguous
+ <td><code>event&lt; E &gt;</code> must be an unambiguous
       public base of <code>E</code></td>
     </tr>
 
     <tr>
- <td width="28%"><code>new E( *pCE )</code></td>
+ <td><code>new E( *pCE )</code></td>
 
- <td width="29%"><code>E *</code></td>
+ <td><code>E *</code></td>
 
- <td width="42%">Makes a copy of <code>pE</code></td>
+ <td>Makes a copy of <code>pE</code></td>
     </tr>
   </table>
 
@@ -644,29 +648,29 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "state_machine parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="51%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="18%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="19%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>MostDerived</code></td>
+ <td><code>MostDerived</code></td>
 
- <td width="51%">The most-derived subtype of this class template</td>
+ <td>The most-derived subtype of this class template</td>
 
- <td width="18%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>InitialState</code></td>
+ <td><code>InitialState</code></td>
 
- <td width="51%">A model of the SimpleState
+ <td>A model of the SimpleState
       or State concepts. The <code>Context</code>
       argument passed to the <code><a href=
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code> or
@@ -676,34 +680,34 @@
       "definitions.html#OutermostState">outermost state</a> of this state
       machine</td>
 
- <td width="18%">The state that is entered when
+ <td>The state that is entered when
       <code>state_machine&lt;&gt;<br>
       ::initiate()</code> is called</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>Allocator</code></td>
+ <td><code>Allocator</code></td>
 
- <td width="51%">A model of the standard Allocator concept</td>
+ <td>A model of the standard Allocator concept</td>
 
- <td width="18%"><code>Allocator::rebind&lt;&gt;::other</code> is used
+ <td><code>Allocator::rebind&lt;&gt;::other</code> is used
       to allocate and deallocate all <code>simple_state</code> subtype
       objects and internal objects of dynamic storage duration</td>
 
- <td width="19%"><code>std::allocator&lt; void &gt;</code></td>
+ <td><code>std::allocator&lt; void &gt;</code></td>
     </tr>
 
     <tr>
- <td width="15%"><code>ExceptionTranslator</code></td>
+ <td><code>ExceptionTranslator</code></td>
 
- <td width="51%">A model of the ExceptionTranslator concept</td>
+ <td>A model of the ExceptionTranslator concept</td>
 
- <td width="18%">see <a href=
+ <td>see <a href=
       "#ExceptionTranslator">ExceptionTranslator</a> concept</td>
 
- <td width="19%"><code>null_exception_translator</code></td>
+ <td><code>null_exception_translator</code></td>
     </tr>
   </table>
 
@@ -1214,29 +1218,29 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "asynchronous_state_machine parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="51%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="18%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="19%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>MostDerived</code></td>
+ <td><code>MostDerived</code></td>
 
- <td width="51%">The most-derived subtype of this class template</td>
+ <td>The most-derived subtype of this class template</td>
 
- <td width="18%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>InitialState</code></td>
+ <td><code>InitialState</code></td>
 
- <td width="51%">A model of the SimpleState
+ <td>A model of the SimpleState
       or State concepts. The <code>Context</code>
       argument passed to the <code><a href=
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code> or
@@ -1246,41 +1250,41 @@
       "definitions.html#OutermostState">outermost state</a> of this state
       machine</td>
 
- <td width="18%">The state that is entered when the state machine is
+ <td>The state that is entered when the state machine is
       initiated through the <code>Scheduler</code> object</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>Scheduler</code></td>
+ <td><code>Scheduler</code></td>
 
- <td width="51%">A model of the Scheduler concept</td>
+ <td>A model of the Scheduler concept</td>
 
- <td width="18%">see Scheduler concept</td>
+ <td>see Scheduler concept</td>
 
- <td width="19%"><code>fifo_scheduler&lt;&gt;</code></td>
+ <td><code>fifo_scheduler&lt;&gt;</code></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Allocator</code></td>
+ <td><code>Allocator</code></td>
 
- <td width="51%">A model of the standard Allocator concept</td>
+ <td>A model of the standard Allocator concept</td>
 
- <td width="18%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="19%"><code>std::allocator&lt; void &gt;</code></td>
+ <td><code>std::allocator&lt; void &gt;</code></td>
     </tr>
 
     <tr>
- <td width="15%"><code>ExceptionTranslator</code></td>
+ <td><code>ExceptionTranslator</code></td>
 
- <td width="51%">A model of the ExceptionTranslator concept</td>
+ <td>A model of the ExceptionTranslator concept</td>
 
- <td width="18%">see <a href=
+ <td>see <a href=
       "#ExceptionTranslator">ExceptionTranslator</a> concept</td>
 
- <td width="19%"><code>null_exception_translator</code></td>
+ <td><code>null_exception_translator</code></td>
     </tr>
   </table>
 
@@ -1350,23 +1354,19 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "event_processor parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="51%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="18%"><b>Semantics</b></td>
-
- <td width="19%"><b>Default</b></td>
+ <td><b>Semantics</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Scheduler</code></td>
-
- <td width="51%">A model of the Scheduler concept</td>
+ <td><code>Scheduler</code></td>
 
- <td width="18%">see Scheduler concept</td>
+ <td>A model of the Scheduler concept</td>
 
- <td width="19%">&nbsp;</td>
+ <td>see Scheduler concept</td>
     </tr>
   </table>
 
@@ -1487,33 +1487,33 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "fifo_scheduler parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="28%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="26%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="29%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>FifoWorker</code></td>
+ <td><code>FifoWorker</code></td>
 
- <td width="28%">A model of the FifoWorker concept</td>
+ <td>A model of the FifoWorker concept</td>
 
- <td width="26%">see FifoWorker concept</td>
+ <td>see FifoWorker concept</td>
 
- <td width="29%"><code>fifo_worker&lt;&gt;</code></td>
+ <td><code>fifo_worker&lt;&gt;</code></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Allocator</code></td>
+ <td><code>Allocator</code></td>
 
- <td width="28%">A model of the standard Allocator concept</td>
+ <td>A model of the standard Allocator concept</td>
 
- <td width="26%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="29%"><code>std::allocator&lt; void &gt;</code></td>
+ <td><code>std::allocator&lt;&nbsp;void&nbsp;&gt;</code></td>
     </tr>
   </table>
 
@@ -1787,24 +1787,24 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "exception_translator parameters">
     <tr>
- <td width="12%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="30%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="35%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="24%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="12%"><code>ExceptionEvent</code></td>
+ <td><code>ExceptionEvent</code></td>
 
- <td width="30%">A model of the Event concept</td>
+ <td>A model of the Event concept</td>
 
- <td width="35%">The type of event that is dispatched when an exception
+ <td>The type of event that is dispatched when an exception
       is propagated into the framework</td>
 
- <td width="24%"><code>exception_thrown</code></td>
+ <td><code>exception_thrown</code></td>
     </tr>
   </table>
 
@@ -1945,29 +1945,29 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "simple_state parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="51%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="18%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="19%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>MostDerived</code></td>
+ <td><code>MostDerived</code></td>
 
- <td width="51%">The most-derived subtype of this class template</td>
+ <td>The most-derived subtype of this class template</td>
 
- <td width="18%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>Context</code></td>
+ <td><code>Context</code></td>
 
- <td width="51%">A most-derived direct or indirect subtype of the
+ <td>A most-derived direct or indirect subtype of the
       <code>state_machine</code> or
       <code><a href=
       "#ClassTemplateasynchronous_state_machine">asynchronous_state_machine</a></code>
@@ -1977,16 +1977,16 @@
       "#ClassTemplatesimple_state">simple_state&lt;&gt;::orthogonal</a></code>
       class template. Must be a complete type</td>
 
- <td width="18%">Defines the states' position in the state
+ <td>Defines the states' position in the state
       hierarchy</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>InnerInitial</code></td>
+ <td><code>InnerInitial</code></td>
 
- <td width="51%">An <code>mpl::list&lt;&gt;</code> containing models of
+ <td>An <code>mpl::list&lt;&gt;</code> containing models of
       the SimpleState or <a href=
       "#State">State</a> concepts or instantiations of the <code><a href=
       "#ClassTemplateshallow_history">shallow_history</a></code> or
@@ -2004,22 +2004,22 @@
       <code>MostDerived::orthogonal&lt; 0 &gt;</code> and
       <code>MostDerived</code> are synonymous</td>
 
- <td width="18%">Defines the inner initial state for each orthogonal
+ <td>Defines the inner initial state for each orthogonal
       region. By default, a state does not have inner states</td>
 
- <td width="19%"><i><code>unspecified</code></i></td>
+ <td><i><code>unspecified</code></i></td>
     </tr>
 
     <tr>
- <td width="15%"><code>historyMode</code></td>
+ <td><code>historyMode</code></td>
 
- <td width="51%">One of the values defined in the <code><a href=
+ <td>One of the values defined in the <code><a href=
       "#Enumhistory_mode">history_mode</a></code> enumeration</td>
 
- <td width="18%">Defines whether the state saves shallow, deep or both
+ <td>Defines whether the state saves shallow, deep or both
       histories upon exit</td>
 
- <td width="19%"><code>has_no_history</code></td>
+ <td><code>has_no_history</code></td>
     </tr>
   </table>
 
@@ -2756,17 +2756,17 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "shallow_history parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="45%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>DefaultState</code></td>
+ <td><code>DefaultState</code></td>
 
- <td width="45%">A model of the SimpleState
+ <td>A model of the SimpleState
       or State concepts. The type passed as
       <code>Context</code> argument to the <code><a href=
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code> or
@@ -2777,8 +2777,7 @@
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code> or
       <code>state<></code> base</td>
 
- <td width="24%">The state that is entered if shallow history is not
- available</td>
+ <td>The state that is entered if shallow history is not available</td>
     </tr>
   </table>
 
@@ -2814,17 +2813,17 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "deep_history parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="45%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>DefaultState</code></td>
+ <td><code>DefaultState</code></td>
 
- <td width="45%">A model of the SimpleState
+ <td>A model of the SimpleState
       or State concepts. The type passed as
       <code>Context</code> argument to the <code><a href=
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code> or
@@ -2835,8 +2834,7 @@
       "#ClassTemplatesimple_state">simple_state&lt;&gt;</a></code> or
       <code>state<></code> base</td>
 
- <td width="24%">The state that is entered if deep history is not
- available</td>
+ <td>The state that is entered if deep history is not available</td>
     </tr>
   </table>
 
@@ -2954,36 +2952,36 @@
 
   <table border="3" cellpadding="2" width="100%" summary="event parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="51%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="18%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="19%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>MostDerived</code></td>
+ <td><code>MostDerived</code></td>
 
- <td width="51%">The most-derived subtype of this class template</td>
+ <td>The most-derived subtype of this class template</td>
 
- <td width="18%">&nbsp;</td>
+ <td>&nbsp;</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>Allocator</code></td>
+ <td><code>Allocator</code></td>
 
- <td width="51%">A model of the standard Allocator concept</td>
+ <td>A model of the standard Allocator concept</td>
 
- <td width="18%"><code>Allocator::rebind&lt; MostDerived
+ <td><code>Allocator::rebind&lt; MostDerived
       &gt;::other</code> is used to allocate and deallocate all event subtype
       objects of dynamic storage duration, see <code><a href=
       "#event::operatornew">operator new</a></code></td>
 
- <td width="19%"><code>std::allocator&lt; void &gt;</code></td>
+ <td><code>std::allocator&lt; void &gt;</code></td>
     </tr>
   </table>
 
@@ -3104,33 +3102,33 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "transition parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="45%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="19%"><b>Default</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Event</code></td>
+ <td><code>Event</code></td>
 
- <td width="45%">A model of the Event concept or
+ <td>A model of the Event concept or
       the class <code>event_base</code></td>
 
- <td width="24%">The event triggering the transition. If <code><a href=
+ <td>The event triggering the transition. If <code><a href=
       "#Classevent_base">event_base</a></code> is specified, the transition
       is triggered by all models of the Event
       concept</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>Destination</code></td>
+ <td><code>Destination</code></td>
 
- <td width="45%">A model of the SimpleState
+ <td>A model of the SimpleState
       or State concepts or an instantiation of the
       <code><a href=
       "#ClassTemplateshallow_history">shallow_history</a></code> or
@@ -3139,35 +3137,35 @@
       is defined) and <code>Destination</code> must have a common direct or
       indirect context</td>
 
- <td width="24%">The destination state to make a transition to</td>
+ <td>The destination state to make a transition to</td>
 
- <td width="19%">&nbsp;</td>
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>TransitionContext</code></td>
+ <td><code>TransitionContext</code></td>
 
- <td width="45%">A common context of the source and
+ <td>A common context of the source and
       <code>Destination</code> state</td>
 
- <td width="24%">The state of which the transition action is a
+ <td>The state of which the transition action is a
       member</td>
 
- <td width="19%"><i><code>unspecified</code></i></td>
+ <td><i><code>unspecified</code></i></td>
     </tr>
 
     <tr>
- <td width="15%"><code>pTransitionAction</code></td>
+ <td><code>pTransitionAction</code></td>
 
- <td width="45%">A pointer to a member function of
+ <td>A pointer to a member function of
       <code>TransitionContext</code>. The member function must accept a
       <code>const Event &amp;</code> parameter and return
       <code>void</code></td>
 
- <td width="24%">The transition action that is executed during the
+ <td>The transition action that is executed during the
       transition. By default no transition action is executed</td>
 
- <td width="19%"><i><code>unspecified</code></i></td>
+ <td><i><code>unspecified</code></i></td>
     </tr>
   </table>
 
@@ -3222,44 +3220,52 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "in_state_reaction parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
+
+ <td><b>Requirements</b></td>
 
- <td width="45%"><b>Requirements</b></td>
+ <td><b>Semantics</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Default</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Event</code></td>
+ <td><code>Event</code></td>
 
- <td width="45%">A model of the Event concept or
+ <td>A model of the Event concept or
       the class <code>event_base</code></td>
 
- <td width="24%">The event triggering the in-state reaction. If
+ <td>The event triggering the in-state reaction. If
       <code>event_base</code> is specified,
       the in-state reaction is triggered by all models of the <a href=
       "#Event">Event</a> concept</td>
+
+ <td>&nbsp;</td>
     </tr>
 
     <tr>
- <td width="15%"><code>ReactionContext</code></td>
+ <td><code>ReactionContext</code></td>
 
- <td width="45%">Either the state defining the in-state reaction itself
+ <td>Either the state defining the in-state reaction itself
       or one of it direct or indirect contexts</td>
 
- <td width="24%">The state of which the action is a member</td>
+ <td>The state of which the action is a member</td>
+
+ <td><i><code>unspecified</code></i></td>
     </tr>
 
     <tr>
- <td width="15%"><code>pAction</code></td>
+ <td><code>pAction</code></td>
 
- <td width="45%">A pointer to a member function of
+ <td>A pointer to a member function of
       <code>ReactionContext</code>. The member function must accept a
       <code>const Event &amp;</code> parameter and return
       <code>void</code></td>
 
- <td width="24%">The action that is executed during the in-state
+ <td>The action that is executed during the in-state
       reaction</td>
+
+ <td><i><code>unspecified</code></i></td>
     </tr>
   </table>
 
@@ -3271,8 +3277,9 @@
 {
   template&lt;
     class Event,
- class ReactionContext,
- void ( ReactionContext::*pAction )( const Event &amp; ) &gt;
+ class ReactionContext = <i>unspecified</i>,
+ void ( ReactionContext::*pAction )(
+ const Event &amp; ) = <i>unspecified</i> &gt;
   class in_state_reaction
   {
     // <i>implementation-defined</i>
@@ -3283,10 +3290,14 @@
 
   <h3>Class template <code>in_state_reaction</code> semantics</h3>
 
- <p>When executed, <code>pAction</code> is called, passing the triggering
- event as the only argument. Afterwards, a call is made to the
- <code>discard_event</code> member function of
- the state for which the reaction was defined.</p>
+ <p>When executed then the following happens:</p>
+ <ol>
+ <li>If an action was specified, <code>pAction</code> is called, passing
+ the triggering event as the only argument</li>
+ <li>A call is made to the <code>discard_event
+ </code> member function of the state for which the reaction was defined
+ </li>
+ </ol>
 
   <h1>Header &lt;boost/statechart/<a name="termination.hpp" id=
   "termination.hpp">termination.hpp</a>&gt;</h1>
@@ -3304,20 +3315,20 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "termination parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="45%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Event</code></td>
+ <td><code>Event</code></td>
 
- <td width="45%">A model of the Event concept or
+ <td>A model of the Event concept or
       the class <code>event_base</code></td>
 
- <td width="24%">The event triggering the termination. If <code><a href=
+ <td>The event triggering the termination. If <code><a href=
       "#Classevent_base">event_base</a></code> is specified, the termination
       is triggered by all models of the Event
       concept</td>
@@ -3361,20 +3372,20 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "deferral parameters">
     <tr>
- <td width="15%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="45%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
     </tr>
 
     <tr>
- <td width="15%"><code>Event</code></td>
+ <td><code>Event</code></td>
 
- <td width="45%">A model of the Event concept or
+ <td>A model of the Event concept or
       the class <code>event_base</code></td>
 
- <td width="24%">The event triggering the deferral. If <code><a href=
+ <td>The event triggering the deferral. If <code><a href=
       "#Classevent_base">event_base</a></code> is specified, the deferral is
       triggered by all models of the Event concept</td>
     </tr>
@@ -3418,20 +3429,20 @@
   <table border="3" cellpadding="2" width="100%" summary=
   "custom_reaction parameters">
     <tr>
- <td width="17%"><b>Template parameter</b></td>
+ <td><b>Template parameter</b></td>
 
- <td width="56%"><b>Requirements</b></td>
+ <td><b>Requirements</b></td>
 
- <td width="24%"><b>Semantics</b></td>
+ <td><b>Semantics</b></td>
     </tr>
 
     <tr>
- <td width="17%"><code>Event</code></td>
+ <td><code>Event</code></td>
 
- <td width="56%">A model of the Event concept or
+ <td>A model of the Event concept or
       the class <code>event_base</code></td>
 
- <td width="24%">The event triggering the custom reaction. If
+ <td>The event triggering the custom reaction. If
       <code>event_base</code> is specified,
       the custom reaction is triggered by all models of the <a href=
       "#Event">Event</a> concept</td>
@@ -3535,11 +3546,10 @@
   "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
   height="31" width="88"></a></p>
 
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->09 April, 2007<!--webbot bot="Timestamp" endspan i-checksum="30014" --></p>
+ <p>Revised 06 January, 2008</p>
 
- <p><i>Copyright &copy; 2003-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y" startspan -->2007<!--webbot bot="Timestamp" endspan i-checksum="778" -->
- Andreas Huber Dönni</i></p>
+ <p><i>Copyright &copy; 2003-2008 <a href="contact.html">Andreas Huber
+ D&ouml;nni</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/statechart/doc/reference.pdf
==============================================================================
Binary files. No diff available.

Modified: branches/proto/v3/libs/statechart/example/Performance/Performance.cpp
==============================================================================
--- branches/proto/v3/libs/statechart/example/Performance/Performance.cpp (original)
+++ branches/proto/v3/libs/statechart/example/Performance/Performance.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -62,6 +62,7 @@
 #include <iostream>
 #include <fstream>
 #include <iomanip>
+#include <ios>
 #include <string>
 #include <algorithm>
 

Modified: branches/proto/v3/libs/statechart/test/InStateReactionTest.cpp
==============================================================================
--- branches/proto/v3/libs/statechart/test/InStateReactionTest.cpp (original)
+++ branches/proto/v3/libs/statechart/test/InStateReactionTest.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 //////////////////////////////////////////////////////////////////////////////
-// Copyright 2005-2006 Andreas Huber Doenni
+// Copyright 2005-2008 Andreas Huber Doenni
 // Distributed under the Boost Software License, Version 1.0. (See accompany-
 // ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //////////////////////////////////////////////////////////////////////////////
@@ -24,10 +24,10 @@
 struct F : sc::event< F > {};
 struct G : sc::event< G > {};
 struct H : sc::event< H > {};
+struct I : sc::event< I > {};
 
 struct A;
-struct InStateReactionTest :
- sc::state_machine< InStateReactionTest, A > {};
+struct InStateReactionTest : sc::state_machine< InStateReactionTest, A > {};
 
 struct B;
 struct A : sc::simple_state< A, InStateReactionTest, B >
@@ -59,7 +59,8 @@
 
     typedef mpl::list<
       sc::in_state_reaction< F, B, &B::IncrementCount >,
- sc::in_state_reaction< G, A, &A::IncrementCount >
+ sc::in_state_reaction< G, A, &A::IncrementCount >,
+ sc::in_state_reaction< I >
> reactions;
 
     unsigned int eventCount_;
@@ -67,29 +68,35 @@
 
 
 
+void RequireEventCounts(
+ const InStateReactionTest & machine,
+ unsigned int aCount, unsigned int bCount)
+{
+ BOOST_REQUIRE(
+ machine.state_downcast< const A & >().eventCount_ == aCount );
+ BOOST_REQUIRE(
+ machine.state_downcast< const B & >().eventCount_ == bCount );
+}
+
 int test_main( int, char* [] )
 {
   InStateReactionTest machine;
   machine.initiate();
 
- BOOST_REQUIRE( machine.state_downcast< const A & >().eventCount_ == 0 );
- BOOST_REQUIRE( machine.state_downcast< const B & >().eventCount_ == 0 );
+ RequireEventCounts(machine, 0, 0);
   machine.process_event( F() );
- BOOST_REQUIRE( machine.state_downcast< const A & >().eventCount_ == 0 );
- BOOST_REQUIRE( machine.state_downcast< const B & >().eventCount_ == 1 );
+ RequireEventCounts(machine, 0, 1);
   machine.process_event( E() );
- BOOST_REQUIRE( machine.state_downcast< const A & >().eventCount_ == 1 );
- BOOST_REQUIRE( machine.state_downcast< const B & >().eventCount_ == 1 );
+ RequireEventCounts(machine, 1, 1);
   machine.process_event( E() );
   machine.process_event( F() );
- BOOST_REQUIRE( machine.state_downcast< const A & >().eventCount_ == 2 );
- BOOST_REQUIRE( machine.state_downcast< const B & >().eventCount_ == 2 );
+ RequireEventCounts(machine, 2, 2);
   machine.process_event( G() );
- BOOST_REQUIRE( machine.state_downcast< const A & >().eventCount_ == 3 );
- BOOST_REQUIRE( machine.state_downcast< const B & >().eventCount_ == 2 );
+ RequireEventCounts(machine, 3, 2);
   machine.process_event( H() );
- BOOST_REQUIRE( machine.state_downcast< const A & >().eventCount_ == 4 );
- BOOST_REQUIRE( machine.state_downcast< const B & >().eventCount_ == 2 );
+ RequireEventCounts(machine, 4, 2);
+ machine.process_event( I() );
+ RequireEventCounts(machine, 4, 2);
 
   return 0;
 }

Modified: branches/proto/v3/libs/static_assert/doc/static_assert.qbk
==============================================================================
--- branches/proto/v3/libs/static_assert/doc/static_assert.qbk (original)
+++ branches/proto/v3/libs/static_assert/doc/static_assert.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,6 +15,10 @@
     [last-revision $Date$]
 ]
 
+This manual is also available in
+[@http:svn.boost.org/svn/boost/sandbox/pdf/static_assert/release/static_assert.pdf
+printer friendly PDF format].
+
 [section:intro Overview and Tutorial]
 
 The header `<boost/static_assert.hpp>` supplies a single macro `BOOST_STATIC_ASSERT(x)`,
@@ -94,12 +98,17 @@
    #include <boost/type_traits.hpp>
 
    template <class RandomAccessIterator >
- RandomAccessIterator foo(RandomAccessIterator from, RandomAccessIterator to)
+ RandomAccessIterator foo(RandomAccessIterator from,
+ RandomAccessIterator to)
    {
       // this template can only be used with
       // random access iterators...
- typedef typename std::iterator_traits< RandomAccessIterator >::iterator_category cat;
- BOOST_STATIC_ASSERT((boost::is_convertible<cat, const std::random_access_iterator_tag&>::value));
+ typedef typename std::iterator_traits<
+ RandomAccessIterator >::iterator_category cat;
+ BOOST_STATIC_ASSERT(
+ (boost::is_convertible<
+ cat,
+ const std::random_access_iterator_tag&>::value));
       //
       // detail goes here...
       return from;

Modified: branches/proto/v3/libs/system/doc/index.html
==============================================================================
--- branches/proto/v3/libs/system/doc/index.html (original)
+++ branches/proto/v3/libs/system/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,10 +11,10 @@
 
 <body>
 
-<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="637">
+<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
   <tr>
     <td width="277">
-<a href="../../../index.htm">
+<a href="../../../index.html">
 <img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"></a></td>
     <td width="337" align="middle">
     <font size="7">System Library</font>
@@ -132,14 +132,16 @@
 paper. Johan Nilsson's comments led to several of the refinements in N2066 .</p>
 <hr>
 
-<p>© Copyright Beman Dawes, 1999<br>
-Distributed under the Boost Software License, Version 1.0. See
-www.boost.org/LICENSE_1_0.txt</p>
-
 <p>Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%B %d, %Y" startspan -->November 12, 2007<!--webbot bot="Timestamp" endspan i-checksum="39581" --> </font>
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%B %d, %Y" startspan -->February 23, 2008<!--webbot bot="Timestamp" endspan i-checksum="41408" --> </font>
 </p>
 
+<p>© Copyright Beman Dawes, 1999</p>
+
+<p>Distributed under the Boost Software License, Version 1.0.
+(See file LICENSE_1_0.txt
+or&nbsp; www.boost.org/LICENSE_1_0.txt) </p>
+
 </body>
 
 </html>
\ No newline at end of file

Modified: branches/proto/v3/libs/system/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/system/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/system/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -19,31 +19,24 @@
            : # command line
            : # input files
            : # requirements
- <define>BOOST_SYSTEM_STATIC_LINK
                    <link>static
          ]
          [ run error_code_test.cpp
- : : : <define>BOOST_SYSTEM_DYN_LINK
- : error_code_test_dll
+ : : : : error_code_test_dll
          ]
          [ run error_code_user_test.cpp
- : : : <define>BOOST_SYSTEM_STATIC_LINK
- <link>static
+ : : : <link>static
          ]
          [ run error_code_user_test.cpp
- : : : <define>BOOST_SYSTEM_DYN_LINK
- : error_code_user_test_dll
+ : : : : error_code_user_test_dll
          ]
          [ run system_error_test.cpp
- : : : <define>BOOST_SYSTEM_STATIC_LINK
- <link>static
+ : : : <link>static
          ]
          [ run system_error_test.cpp
- : : : <define>BOOST_SYSTEM_DYN_LINK
- : system_error_test_dll
+ : : : : system_error_test_dll
          ]
          [ run initialization_test.cpp
- : : : <define>BOOST_SYSTEM_DYN_LINK
          ]
          [ run header_only_test.cpp
            : : : <link>static

Modified: branches/proto/v3/libs/test/doc/components/prg_exec_monitor/compilation.html
==============================================================================
--- branches/proto/v3/libs/test/doc/components/prg_exec_monitor/compilation.html (original)
+++ branches/proto/v3/libs/test/doc/components/prg_exec_monitor/compilation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -75,7 +75,7 @@
     to the list of objects to be linked with. By default this feature is on.
     To disable this feature you should define the flag BOOST_TEST_NO_LIB. More
     detailes on autolinking feature implementation and configuration you could
- see here.</P>
+ see here.</P>
   <H4>Using &quot;included&quot; option<A name="included_header"></A></H4>
   <P class="first-line-indented">While building standalone library is preferred
     solution, some users prefer &quot;quick and dirty&quot; include one. The

Modified: branches/proto/v3/libs/test/doc/components/utf/compilation.html
==============================================================================
--- branches/proto/v3/libs/test/doc/components/utf/compilation.html (original)
+++ branches/proto/v3/libs/test/doc/components/utf/compilation.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -93,7 +93,7 @@
     automatically select proper library name and add it to the list of objects
     to be linked with. By default this feature is on. To disable this feature
     you should define the flag BOOST_TEST_NO_LIB. More detailes on autolinking
- feature implementation and configuration you could see here.</P>
+ feature implementation and configuration you could see here.</P>
   <H4>Using &quot;included&quot; option<A name="included_header"></A></H4>
   <P class="first-line-indented">While building standalone library is preferred
     solution, some users prefer &quot;quick and dirty&quot; include one. The Unit Test

Modified: branches/proto/v3/libs/thread/doc/acknowledgements.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/acknowledgements.xml (original)
+++ branches/proto/v3/libs/thread/doc/acknowledgements.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.acknowledgements"
 last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/barrier-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/barrier-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/barrier-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/barrier.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/bibliography.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/bibliography.xml (original)
+++ branches/proto/v3/libs/thread/doc/bibliography.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <bibliography id="thread.bibliography"
 last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/build.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/build.xml (original)
+++ branches/proto/v3/libs/thread/doc/build.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,7 +7,7 @@
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Copyright (c) 2007 Roland Schwarz
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.build" last-revision="$Date$">
         <title>Build</title>

Modified: branches/proto/v3/libs/thread/doc/concepts.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/concepts.xml (original)
+++ branches/proto/v3/libs/thread/doc/concepts.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.concepts" last-revision="$Date$">
         <title>Concepts</title>

Modified: branches/proto/v3/libs/thread/doc/condition-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/condition-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/condition-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/condition.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/configuration.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/configuration.xml (original)
+++ branches/proto/v3/libs/thread/doc/configuration.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.configuration" last-revision="$Date$">
         <title>Configuration</title>

Modified: branches/proto/v3/libs/thread/doc/design.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/design.xml (original)
+++ branches/proto/v3/libs/thread/doc/design.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.design" last-revision="$Date$">
   <title>Design</title>

Modified: branches/proto/v3/libs/thread/doc/entities.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/entities.xml (original)
+++ branches/proto/v3/libs/thread/doc/entities.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <!ENTITY Boost "<emphasis role='bold'>Boost</emphasis>">
 <!ENTITY Boost.Thread "<emphasis role='bold'>Boost.Thread</emphasis>">

Modified: branches/proto/v3/libs/thread/doc/exceptions-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/exceptions-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/exceptions-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/exceptions.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/faq.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/faq.xml (original)
+++ branches/proto/v3/libs/thread/doc/faq.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.faq" last-revision="$Date$">
   <title>Frequently Asked Questions</title>

Modified: branches/proto/v3/libs/thread/doc/glossary.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/glossary.xml (original)
+++ branches/proto/v3/libs/thread/doc/glossary.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <glossary id="thread.glossary" last-revision="$Date$">
   <title>Glossary</title>

Modified: branches/proto/v3/libs/thread/doc/implementation_notes.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/implementation_notes.xml (original)
+++ branches/proto/v3/libs/thread/doc/implementation_notes.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.implementation_notes" last-revision="$Date$">
         <title>Implementation Notes</title>

Modified: branches/proto/v3/libs/thread/doc/index.html
==============================================================================
--- branches/proto/v3/libs/thread/doc/index.html (original)
+++ branches/proto/v3/libs/thread/doc/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 <!-- Copyright (c) 2002-2003 Beman Dawes, William E. Kempf.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <html>
 <head>

Modified: branches/proto/v3/libs/thread/doc/mutex-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/mutex-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/mutex-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/mutex.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/once-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/once-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/once-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/once.hpp"
         last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/overview.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/overview.xml (original)
+++ branches/proto/v3/libs/thread/doc/overview.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.overview" last-revision="$Date$">
   <title>Overview</title>

Modified: branches/proto/v3/libs/thread/doc/rationale.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/rationale.xml (original)
+++ branches/proto/v3/libs/thread/doc/rationale.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.rationale" last-revision="$Date$">
   <title>Rationale</title>

Modified: branches/proto/v3/libs/thread/doc/read_write_mutex-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/read_write_mutex-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/read_write_mutex-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/read_write_mutex.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/recursive_mutex-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/recursive_mutex-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/recursive_mutex-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/recursive_mutex.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/reference.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/reference.xml (original)
+++ branches/proto/v3/libs/thread/doc/reference.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <library-reference id="thread.reference"
   last-revision="$Date$"

Modified: branches/proto/v3/libs/thread/doc/release_notes.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/release_notes.xml (original)
+++ branches/proto/v3/libs/thread/doc/release_notes.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <section id="thread.release_notes" last-revision="$Date$">
         <title>Release Notes</title>

Modified: branches/proto/v3/libs/thread/doc/thread-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/thread-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/thread-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/thread.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/thread.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/thread.xml (original)
+++ branches/proto/v3/libs/thread/doc/thread.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <library name="Thread" dirname="thread" id="thread"
 last-revision="$Date$"
@@ -25,7 +25,7 @@
     </copyright>
     <legalnotice>
       <para>Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)</para>
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)</para>
     </legalnotice>
     <librarypurpose>Portable C++ multi-threading</librarypurpose>
     <librarycategory name="category:concurrent" />

Modified: branches/proto/v3/libs/thread/doc/tss-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/tss-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/tss-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/tss.hpp"
         last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/doc/xtime-ref.xml
==============================================================================
--- branches/proto/v3/libs/thread/doc/xtime-ref.xml (original)
+++ branches/proto/v3/libs/thread/doc/xtime-ref.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 ]>
 <!-- Copyright (c) 2002-2003 William E. Kempf, Michael Glassford
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 <header name="boost/thread/xtime.hpp"
   last-revision="$Date$">

Modified: branches/proto/v3/libs/thread/index.html
==============================================================================
--- branches/proto/v3/libs/thread/index.html (original)
+++ branches/proto/v3/libs/thread/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 <!-- Copyright (c) 2002-2003 William E. Kempf.
      Subject to the Boost Software License, Version 1.0.
- (See accompanying file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0)
+ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 -->
 
 <html>

Modified: branches/proto/v3/libs/thread/src/tss_null.cpp
==============================================================================
--- branches/proto/v3/libs/thread/src/tss_null.cpp (original)
+++ branches/proto/v3/libs/thread/src/tss_null.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
 #include <boost/thread/detail/config.hpp>
 
-#if defined(BOOST_HAS_WINTHREADS) && (defined(BOOST_THREAD_BUILD_LIB) || defined(BOOST_THREAD_TEST)) && (!defined(_MSC_VER) || defined(UNDER_CE))
+#if defined(BOOST_HAS_WINTHREADS) && (defined(BOOST_THREAD_BUILD_LIB) || defined(BOOST_THREAD_TEST) || defined(UNDER_CE)) && (!defined(_MSC_VER) || defined(UNDER_CE))
 
     /*
     This file is a "null" implementation of tss cleanup; it's

Modified: branches/proto/v3/libs/thread/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/thread/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/thread/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -38,6 +38,7 @@
           [ thread-run test_thread_id.cpp ]
           [ thread-run test_hardware_concurrency.cpp ]
           [ thread-run test_thread_move.cpp ]
+ [ thread-run test_thread_launching.cpp ]
           [ thread-run test_move_function.cpp ]
           [ thread-run test_mutex.cpp ]
           [ thread-run test_condition_notify_one.cpp ]

Modified: branches/proto/v3/libs/thread/test/test_mutex.cpp
==============================================================================
--- branches/proto/v3/libs/thread/test/test_mutex.cpp (original)
+++ branches/proto/v3/libs/thread/test/test_mutex.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -150,6 +150,17 @@
         boost::system_time target = boost::get_system_time()+boost::posix_time::milliseconds(100);
         BOOST_CHECK(lock.timed_lock(target));
         BOOST_CHECK(lock ? true : false);
+ lock.unlock();
+ BOOST_CHECK(!lock);
+
+ BOOST_CHECK(mutex.timed_lock(boost::posix_time::milliseconds(100)));
+ mutex.unlock();
+
+ BOOST_CHECK(lock.timed_lock(boost::posix_time::milliseconds(100)));
+ BOOST_CHECK(lock ? true : false);
+ lock.unlock();
+ BOOST_CHECK(!lock);
+
     }
 };
 

Modified: branches/proto/v3/libs/thread/test/test_tss.cpp
==============================================================================
--- branches/proto/v3/libs/thread/test/test_tss.cpp (original)
+++ branches/proto/v3/libs/thread/test/test_tss.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -187,12 +187,54 @@
     timed_test(&do_test_tss, 2);
 }
 
+bool tss_cleanup_called=false;
+
+struct Dummy
+{};
+
+void tss_custom_cleanup(Dummy* d)
+{
+ delete d;
+ tss_cleanup_called=true;
+}
+
+boost::thread_specific_ptr<Dummy> tss_with_cleanup(tss_custom_cleanup);
+
+void tss_thread_with_custom_cleanup()
+{
+ tss_with_cleanup.reset(new Dummy);
+}
+
+void do_test_tss_with_custom_cleanup()
+{
+ boost::thread t(tss_thread_with_custom_cleanup);
+ try
+ {
+ t.join();
+ }
+ catch(...)
+ {
+ t.interrupt();
+ t.join();
+ throw;
+ }
+
+ BOOST_CHECK(tss_cleanup_called);
+}
+
+
+void test_tss_with_custom_cleanup()
+{
+ timed_test(&do_test_tss_with_custom_cleanup, 2);
+}
+
 boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
 {
     boost::unit_test_framework::test_suite* test =
         BOOST_TEST_SUITE("Boost.Threads: tss test suite");
 
     test->add(BOOST_TEST_CASE(test_tss));
+ test->add(BOOST_TEST_CASE(test_tss_with_custom_cleanup));
 
     return test;
 }

Modified: branches/proto/v3/libs/timer/index.html
==============================================================================
--- branches/proto/v3/libs/timer/index.html (original)
+++ branches/proto/v3/libs/timer/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
     <td bgcolor="#FFFFFF"><img src="../../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
     <td>Home </td>
     <td>Libraries </td>
- <td>People </td>
- <td>FAQ </td>
+ <td>People </td>
+ <td>FAQ </td>
     <td>More </td>
   </tr>
 </table>
@@ -30,7 +30,7 @@
   <li>Documentation (HTML).</li>
   <li>Headers timer.hpp and progress.hpp</li>
   <li>Test program timer_test.cpp</li>
- <li>Submitted by Beman Dawes.</li>
+ <li>Submitted by Beman Dawes.</li>
 </ul>
 
 <p>&nbsp;</p>

Modified: branches/proto/v3/libs/tokenizer/tokenizer.htm
==============================================================================
--- branches/proto/v3/libs/tokenizer/tokenizer.htm (original)
+++ branches/proto/v3/libs/tokenizer/tokenizer.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 <head>
   <meta http-equiv="Content-Language" content="en-us">
   <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
+ <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
   <meta name="ProgId" content="FrontPage.Editor.Document">
 
   <title>Boost Tokenizer Class</title>
@@ -16,8 +16,7 @@
   "86"><br></p>
 
   <h1 align="center">Tokenizer Class</h1>
- <pre>
- template &lt;
+ <pre> template &lt;
         class TokenizerFunc = char_delimiters_separator&lt;char&gt;,
         class Iterator = std::string::const_iterator,
         class Type = std::string
@@ -33,8 +32,7 @@
   iterator provided by begin.</p>
 
   <h2>Example</h2>
- <pre>
-// simple_example_1.cpp
+ <pre>// simple_example_1.cpp
 #include&lt;iostream&gt;
 #include&lt;boost/tokenizer.hpp&gt;
 #include&lt;string&gt;
@@ -50,7 +48,16 @@
 }
 </pre>
 
- <p>&nbsp;</p>
+ <p>The output from simple_example_1 is:</p>
+
+ <blockquote>
+
+ <p><code>This<br>
+ is<br>
+ a<br>
+ test</code></p>
+
+ </blockquote>
 
   <h3>Template Parameters</h3>
 
@@ -156,8 +163,7 @@
   <p>&nbsp;</p>
 
   <h2>Construction and Member Functions</h2>
- <pre>
-tokenizer(Iterator first, Iterator last,const TokenizerFunc&amp; f = TokenizerFunc())
+ <pre>tokenizer(Iterator first, Iterator last,const TokenizerFunc&amp; f = TokenizerFunc())
 
 template&lt;class Container&gt;
 tokenizer(const Container&amp; c,const TokenizerFunc&amp; f = TokenizerFunc())
@@ -226,7 +232,7 @@
   height="31" width="88"></a></p>
 
   <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->25 December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38518" --></p>
+ <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->16 February, 2008<!--webbot bot="Timestamp" endspan i-checksum="40414" --></p>
 
   <p><i>Copyright &copy; 2001 John R. Bandela</i></p>
 
@@ -235,4 +241,4 @@
   copy at <a href=
   "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)</i></p>
 </body>
-</html>
+</html>
\ No newline at end of file

Modified: branches/proto/v3/libs/tr1/doc/tr1.qbk
==============================================================================
--- branches/proto/v3/libs/tr1/doc/tr1.qbk (original)
+++ branches/proto/v3/libs/tr1/doc/tr1.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -448,7 +448,7 @@
 arbitrary code may be called. However a polymorphic function wrapper can call
 any callable object with a compatible call signature, this could be a function
 pointer, or it could be a function object produced by std::tr1::bind, or some
-other mechanism. For more information see the [@../../doc/html/function.html"
+other mechanism. For more information see the [@../../doc/html/function.html
 Boost.Function documentation].
 
    
@@ -1311,8 +1311,8 @@
 for arguments of type `std::complex<T>`.
 These algorithms are entirely
 classical, and behave as specified in the C99 standard section 7.3.5.
-See the [@boost_math/inverse_complex.html Boost.Math documentation
-for more information].
+See the [@../../libs/math/doc/complex/html/complex_number_tr1_algorithms/inverse_complex.html
+Boost.Math documentation for more information].
    
    namespace std {
    namespace tr1 {
@@ -1697,7 +1697,7 @@
 forward on to your existing standard library header in one of two ways: for
 gcc it uses `#include_next`, and for other compilers it uses the
 macro `BOOST_TR1_STD_HEADER(header)` (defined in
-[@../../boost/tr1/detail/config.hpp" boost/tr1/detail/config.hpp])
+[@../../boost/tr1/detail/config.hpp boost/tr1/detail/config.hpp])
 which evaluates to `#include <../include/header>`. This
 should work "straight out the box" for most compilers, but does mean that
 these headers should [*never] be placed inside a

Modified: branches/proto/v3/libs/tr1/test/test_random.cpp
==============================================================================
--- branches/proto/v3/libs/tr1/test/test_random.cpp (original)
+++ branches/proto/v3/libs/tr1/test/test_random.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,6 +10,7 @@
 #endif
 
 #include <boost/type_traits/is_arithmetic.hpp>
+#include <boost/cstdint.hpp>
 #include <boost/static_assert.hpp>
 #include "verify_return.hpp"
 #include <iostream>

Modified: branches/proto/v3/libs/tuple/doc/tuple_users_guide.html
==============================================================================
--- branches/proto/v3/libs/tuple/doc/tuple_users_guide.html (original)
+++ branches/proto/v3/libs/tuple/doc/tuple_users_guide.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -516,7 +516,7 @@
 
 <p>Last modified 2003-09-07</p>
 
-<p>&copy; Copyright
Jaakko Järvi 2001.
+<p>&copy; Copyright Jaakko Järvi 2001.
 
 Permission to copy, use, modify, sell and distribute this software and its documentation is granted provided this copyright notice appears in all copies.
 This software and its documentation is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.

Modified: branches/proto/v3/libs/type_traits/cxx_type_traits.htm
==============================================================================
--- branches/proto/v3/libs/type_traits/cxx_type_traits.htm (original)
+++ branches/proto/v3/libs/type_traits/cxx_type_traits.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,8 @@
 <html>
   <head>
     <meta http-equiv="refresh" content="0; URL=doc/html/boost_typetraits/background.html">
- </head>
+ <!-- boostinspect:nounlinked -->
+ </head>
   <body><P>
     Automatic redirection failed, please go to
     <a href="doc/html/boost_typetraits/background.html">doc/html/boost_typetraits/background.html.</a></P>

Modified: branches/proto/v3/libs/type_traits/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/type_traits/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -39,7 +39,7 @@
         
         # PDF Options:
         # TOC Generation: this is needed for FOP-0.9 and later:
- # <xsl:param>fop1.extensions=1
+ <xsl:param>fop1.extensions=0
         <xsl:param>xep.extensions=1
         # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
         <xsl:param>fop.extensions=0
@@ -65,3 +65,4 @@
 
 
 
+

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/background.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -56,7 +56,7 @@
       method available to them.
     </p>
 <a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id437803"></a>
+<a name="id436266"></a>
       <a href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
     </h5>
 <p>
@@ -84,7 +84,7 @@
       given.
     </p>
 <a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id437920"></a>
+<a name="id436376"></a>
       <a href="background.html#boost_typetraits.background.implementation">Implementation</a>
     </h5>
 <p>
@@ -97,8 +97,7 @@
       from <code class="computeroutput">true_type</code>
       only if <code class="computeroutput"><span class="identifier">T</span></code> is <code class="computeroutput"><span class="keyword">void</span></code>.
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> is_void <span class="special">:</span> <span class="keyword">public</span> false_type<span class="special">{};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
@@ -116,8 +115,7 @@
       a pointer, and a partial specialization to handle all the cases where T is
       a pointer:
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> is_pointer <span class="special">:</span> <span class="keyword">public</span> false_type<span class="special">{};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -134,15 +132,13 @@
       but as a rule of thumb if you can legally write two function overloads of the
       form:
     </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
 <span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">U</span><span class="special">);</span>
 </pre>
 <p>
       Then you can also write a partial specialization of the form:
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">c</span><span class="special">{</span> <span class="comment">/*details*/</span> <span class="special">};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -158,8 +154,7 @@
       that is the same type as T but with any top-level array bounds removed; this
       is an example of a traits class that performs a transformation on a type:
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> remove_extent
 <span class="special">{</span> <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">type</span><span class="special">;</span> <span class="special">};</span>
 
@@ -179,15 +174,14 @@
       in the default template.
     </p>
 <a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id490307"></a>
+<a name="id490295"></a>
       <a href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
     </h5>
 <p>
       As an example of how the type traits classes can be used, consider the standard
       library algorithm copy:
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iter1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iter2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iter1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iter2</span><span class="special">&gt;</span>
 <span class="identifier">Iter2</span> <span class="identifier">copy</span><span class="special">(</span><span class="identifier">Iter1</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iter1</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">Iter2</span> <span class="identifier">out</span><span class="special">);</span>
 </pre>
 <p>
@@ -253,7 +247,7 @@
       otherwise it will call the "slow but safe version".
     </p>
 <a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id490852"></a>
+<a name="id490840"></a>
       <a href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
     </h5>
 <p>
@@ -286,7 +280,7 @@
       </li>
 </ul></div>
 <div class="table">
-<a name="id490923"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy&lt;const
+<a name="id490911"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy&lt;const
     T*, T*&gt;` (times in micro-seconds)</b></p>
 <div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy&lt;const
     T*, T*&gt;` (times in micro-seconds)">
@@ -385,7 +379,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id491080"></a>
+<a name="id491068"></a>
       <a href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
     </h5>
 <p>
@@ -401,8 +395,7 @@
       the comparison operators, default constructor, and template copy constructor
       for simplicity:
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">pair</span>
 <span class="special">{</span>
 <span class="keyword">typedef</span> <span class="identifier">T1</span> <span class="identifier">first_type</span><span class="special">;</span>
@@ -423,7 +416,7 @@
       to hold non-reference types, references, and constant references:
     </p>
 <div class="table">
-<a name="id491443"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
+<a name="id491430"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
 <div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
 <colgroup>
 <col>
@@ -488,7 +481,7 @@
       adds a reference to its type, unless it is already a reference.
     </p>
 <div class="table">
-<a name="id491567"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
+<a name="id491554"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
     type</b></p>
 <div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor
     type">
@@ -574,8 +567,7 @@
       that can contain non-reference types, reference types, and constant reference
       types:
     </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">pair</span>
 <span class="special">{</span>
 <span class="keyword">typedef</span> <span class="identifier">T1</span> <span class="identifier">first_type</span><span class="special">;</span>
@@ -606,7 +598,7 @@
       easier to maintain and easier to understand.
     </p>
 <a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id492190"></a>
+<a name="id492176"></a>
       <a href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
     </h5>
 <p>
@@ -619,7 +611,7 @@
       can be optimal as well as generic.
     </p>
 <a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id492491"></a>
+<a name="id492222"></a>
       <a href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
     </h5>
 <p>
@@ -627,7 +619,7 @@
       comments when preparing this article.
     </p>
 <a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id492525"></a>
+<a name="id492256"></a>
       <a href="background.html#boost_typetraits.background.references">References</a>
     </h5>
 <div class="orderedlist"><ol type="1">
@@ -677,13 +669,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -47,13 +47,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/alignment.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/alignment.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/alignment.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,8 +36,7 @@
 <p>
         <span class="bold"><strong>Synopsis</strong></span>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> type_with_alignment<span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Size</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
@@ -46,13 +45,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Deleted: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/background.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/background.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,699 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Background and Tutorial</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_2006-12-17_0120">
-<link rel="start" href="../../index.html" title="Chapter 1. Boost.TypeTraits">
-<link rel="up" href="../category.html" title="Type Traits by Category">
-<link rel="prev" href="../category.html" title="Type Traits by Category">
-<link rel="next" href="value_traits.html" title="Type Traits that Describe the Properties of a Type">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="../category.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../category.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="value_traits.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.category.background"></a><a href="background.html" title="Background and Tutorial"> Background and
- Tutorial</a>
-</h3></div></div></div>
-<p>
- The following is an updated version of the article "C++ Type traits"
- by John Maddock and Steve Cleary that appeared in the October 2000 issue
- of Dr Dobb's Journal.
- </p>
-<p>
- Generic programming (writing code which works with any data type meeting
- a set of requirements) has become the method of choice for providing reusable
- code. However, there are times in generic programming when "generic"
- just isn't good enough - sometimes the differences between types are too
- large for an efficient generic implementation. This is when the traits technique
- becomes important - by encapsulating those properties that need to be considered
- on a type by type basis inside a traits class, we can minimize the amount
- of code that has to differ from one type to another, and maximize the amount
- of generic code.
- </p>
-<p>
- Consider an example: when working with character strings, one common operation
- is to determine the length of a null terminated string. Clearly it's possible
- to write generic code that can do this, but it turns out that there are much
- more efficient methods available: for example, the C library functions <code class="computeroutput"><span class="identifier">strlen</span></code> and <code class="computeroutput"><span class="identifier">wcslen</span></code>
- are usually written in assembler, and with suitable hardware support can
- be considerably faster than a generic version written in C++. The authors
- of the C++ standard library realized this, and abstracted the properties
- of <code class="computeroutput"><span class="keyword">char</span></code> and <code class="computeroutput"><span class="keyword">wchar_t</span></code>
- into the class <code class="computeroutput"><span class="identifier">char_traits</span></code>.
- Generic code that works with character strings can simply use <code class="computeroutput"><span class="identifier">char_traits</span><span class="special">&lt;&gt;::</span><span class="identifier">length</span></code> to determine the length of a null
- terminated string, safe in the knowledge that specializations of <code class="computeroutput"><span class="identifier">char_traits</span></code> will use the most appropriate
- method available to them.
- </p>
-<a name="boost_typetraits.category.background.type_traits"></a><h5>
-<a name="id437674"></a>
- Type Traits
- </h5>
-<p>
- Class <code class="computeroutput"><span class="identifier">char_traits</span></code> is a classic
- example of a collection of type specific properties wrapped up in a single
- class - what Nathan Myers termed a <span class="emphasis"><em>baggage class</em></span>[1]. In the Boost type-traits library,
- we[2] have written a set of
- very specific traits classes, each of which encapsulate a single trait from
- the C++ type system; for example, is a type a pointer or a reference type?
- Or does a type have a trivial constructor, or a const-qualifier? The type-traits
- classes share a unified design: each class inherits from a the type true_type if
- the type has the specified property and inherits from false_type
- otherwise. As we will show, these classes can be used in generic programming
- to determine the properties of a given type and introduce optimizations that
- are appropriate for that case.
- </p>
-<p>
- The type-traits library also contains a set of classes that perform a specific
- transformation on a type; for example, they can remove a top-level const
- or volatile qualifier from a type. Each class that performs a transformation
- defines a single typedef-member <code class="computeroutput"><span class="identifier">type</span></code>
- that is the result of the transformation. All of the type-traits classes
- are defined inside namespace <code class="computeroutput"><span class="identifier">boost</span></code>;
- for brevity, namespace-qualification is omitted in most of the code samples
- given.
- </p>
-<a name="boost_typetraits.category.background.implementation"></a><h5>
-<a name="id437797"></a>
- Implementation
- </h5>
-<p>
- There are far too many separate classes contained in the type-traits library
- to give a full implementation here - see the source code in the Boost library
- for the full details - however, most of the implementation is fairly repetitive
- anyway, so here we will just give you a flavor for how some of the classes
- are implemented. Beginning with possibly the simplest class in the library,
- <code class="computeroutput"><span class="identifier">is_void</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> inherits
- from <code class="computeroutput">true_type</code>
- only if <code class="computeroutput"><span class="identifier">T</span></code> is <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> is_void <span class="special">:</span> <span class="keyword">public</span> false_type<span class="special">{};</span>
-
-<span class="keyword">template</span> <span class="special">&lt;&gt;</span>
-<span class="keyword">struct</span> is_void<span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span> <span class="special">:</span> <span class="keyword">public</span> true_type<span class="special">{};</span>
-</pre>
-<p>
- Here we define a primary version of the template class <code class="computeroutput">is_void</code>,
- and provide a full-specialization when <code class="computeroutput"><span class="identifier">T</span></code>
- is <code class="computeroutput"><span class="keyword">void</span></code>. While full specialization
- of a template class is an important technique, sometimes we need a solution
- that is halfway between a fully generic solution, and a full specialization.
- This is exactly the situation for which the standards committee defined partial
- template-class specialization. As an example, consider the class <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_pointer</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>:
- here we needed a primary version that handles all the cases where T is not
- a pointer, and a partial specialization to handle all the cases where T is
- a pointer:
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> is_pointer <span class="special">:</span> <span class="keyword">public</span> false_type<span class="special">{};</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> is_pointer<span class="special">&lt;</span><span class="identifier">T</span><span class="special">*&gt;</span> <span class="special">:</span> <span class="keyword">public</span> true_type<span class="special">{};</span>
-</pre>
-<p>
- The syntax for partial specialization is somewhat arcane and could easily
- occupy an article in its own right; like full specialization, in order to
- write a partial specialization for a class, you must first declare the primary
- template. The partial specialization contains an extra &lt;...&gt; after
- the class name that contains the partial specialization parameters; these
- define the types that will bind to that partial specialization rather than
- the default template. The rules for what can appear in a partial specialization
- are somewhat convoluted, but as a rule of thumb if you can legally write
- two function overloads of the form:
- </p>
-<pre class="programlisting">
-<span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">T</span><span class="special">);</span>
-<span class="keyword">void</span> <span class="identifier">foo</span><span class="special">(</span><span class="identifier">U</span><span class="special">);</span>
-</pre>
-<p>
- Then you can also write a partial specialization of the form:
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">class</span> <span class="identifier">c</span><span class="special">{</span> <span class="comment">/*details*/</span> <span class="special">};</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">class</span> <span class="identifier">c</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;{</span> <span class="comment">/*details*/</span> <span class="special">};</span>
-</pre>
-<p>
- This rule is by no means foolproof, but it is reasonably simple to remember
- and close enough to the actual rule to be useful for everyday use.
- </p>
-<p>
- As a more complex example of partial specialization consider the class <code class="computeroutput"><span class="identifier">remove_extent</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>.
- This class defines a single typedef-member <code class="computeroutput"><span class="identifier">type</span></code>
- that is the same type as T but with any top-level array bounds removed; this
- is an example of a traits class that performs a transformation on a type:
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> remove_extent
-<span class="special">{</span> <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">type</span><span class="special">;</span> <span class="special">};</span>
-
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> remove_extent<span class="special">&lt;</span><span class="identifier">T</span><span class="special">[</span><span class="identifier">N</span><span class="special">]&gt;</span>
-<span class="special">{</span> <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">type</span><span class="special">;</span> <span class="special">};</span>
-</pre>
-<p>
- The aim of <code class="computeroutput">remove_extent</code>
- is this: imagine a generic algorithm that is passed an array type as a template
- parameter, <code class="computeroutput">remove_extent</code>
- provides a means of determining the underlying type of the array. For example
- <code class="computeroutput"><span class="identifier">remove_extent</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">[</span><span class="number">4</span><span class="special">][</span><span class="number">5</span><span class="special">]&gt;::</span><span class="identifier">type</span></code> would evaluate to the type <code class="computeroutput"><span class="keyword">int</span><span class="special">[</span><span class="number">5</span><span class="special">]</span></code>. This example also shows that the number
- of template parameters in a partial specialization does not have to match
- the number in the default template. However, the number of parameters that
- appear after the class name do have to match the number and type of the parameters
- in the default template.
- </p>
-<a name="boost_typetraits.category.background.optimized_copy"></a><h5>
-<a name="id490244"></a>
- <a href="background.html#boost_typetraits.category.background.optimized_copy">Optimized
- copy</a>
- </h5>
-<p>
- As an example of how the type traits classes can be used, consider the standard
- library algorithm copy:
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iter1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iter2</span><span class="special">&gt;</span>
-<span class="identifier">Iter2</span> <span class="identifier">copy</span><span class="special">(</span><span class="identifier">Iter1</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iter1</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">Iter2</span> <span class="identifier">out</span><span class="special">);</span>
-</pre>
-<p>
- Obviously, there's no problem writing a generic version of copy that works
- for all iterator types <code class="computeroutput"><span class="identifier">Iter1</span></code>
- and <code class="computeroutput"><span class="identifier">Iter2</span></code>; however, there
- are some circumstances when the copy operation can best be performed by a
- call to <code class="computeroutput"><span class="identifier">memcpy</span></code>. In order
- to implement copy in terms of <code class="computeroutput"><span class="identifier">memcpy</span></code>
- all of the following conditions need to be met:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- Both of the iterator types <code class="computeroutput"><span class="identifier">Iter1</span></code>
- and <code class="computeroutput"><span class="identifier">Iter2</span></code> must be pointers.
- </li>
-<li>
- Both <code class="computeroutput"><span class="identifier">Iter1</span></code> and <code class="computeroutput"><span class="identifier">Iter2</span></code> must point to the same type - excluding
- const and volatile-qualifiers.
- </li>
-<li>
- The type pointed to by <code class="computeroutput"><span class="identifier">Iter1</span></code>
- must have a trivial assignment operator.
- </li>
-</ul></div>
-<p>
- By trivial assignment operator we mean that the type is either a scalar type[3] or:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- The type has no user defined assignment operator.
- </li>
-<li>
- The type does not have any data members that are references.
- </li>
-<li>
- All base classes, and all data member objects must have trivial assignment
- operators.
- </li>
-</ul></div>
-<p>
- If all these conditions are met then a type can be copied using <code class="computeroutput"><span class="identifier">memcpy</span></code> rather than using a compiler generated
- assignment operator. The type-traits library provides a class <code class="computeroutput">has_trivial_assign</code>,
- such that <code class="computeroutput"><span class="identifier">has_trivial_assign</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is true only if T has a trivial assignment
- operator. This class "just works" for scalar types, but has to
- be explicitly specialised for class/struct types that also happen to have
- a trivial assignment operator. In other words if has_trivial_assign
- gives the wrong answer, it will give the "safe" wrong answer -
- that trivial assignment is not allowable.
- </p>
-<p>
- The code for an optimized version of copy that uses <code class="computeroutput"><span class="identifier">memcpy</span></code>
- where appropriate is given in the examples.
- The code begins by defining a template function <code class="computeroutput"><span class="identifier">do_copy</span></code>
- that performs a "slow but safe" copy. The last parameter passed
- to this function may be either a <code class="computeroutput">true_type</code>
- or a <code class="computeroutput">false_type</code>.
- Following that there is an overload of do<span class="underline">copy
- that uses `memcpy`: this time the iterators are required to actually be pointers
- to the same type, and the final parameter must be a `</span>_true_type<code class="computeroutput"><span class="special">.</span> <span class="identifier">Finally</span><span class="special">,</span> <span class="identifier">the</span> <span class="identifier">version</span> <span class="identifier">of</span>
- </code>copy<code class="computeroutput"> <span class="identifier">calls</span> </code>do<span class="underline">copy`, passing `</span>_has_trivial_assign&lt;value_type&gt;()`
- as the final parameter: this will dispatch to the optimized version where
- appropriate, otherwise it will call the "slow but safe version".
- </p>
-<a name="boost_typetraits.category.background.was_it_worth_it_"></a><h5>
-<a name="id490786"></a>
- <a href="background.html#boost_typetraits.category.background.was_it_worth_it_">Was
- it worth it?</a>
- </h5>
-<p>
- It has often been repeated in these columns that "premature optimization
- is the root of all evil" [4].
- So the question must be asked: was our optimization premature? To put this
- in perspective the timings for our version of copy compared a conventional
- generic copy[5] are shown in
- table 1.
- </p>
-<p>
- Clearly the optimization makes a difference in this case; but, to be fair,
- the timings are loaded to exclude cache miss effects - without this accurate
- comparison between algorithms becomes difficult. However, perhaps we can
- add a couple of caveats to the premature optimization rule:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- If you use the right algorithm for the job in the first place then optimization
- will not be required; in some cases, memcpy is the right algorithm.
- </li>
-<li>
- If a component is going to be reused in many places by many people then
- optimizations may well be worthwhile where they would not be so for a single
- case - in other words, the likelihood that the optimization will be absolutely
- necessary somewhere, sometime is that much higher. Just as importantly
- the perceived value of the stock implementation will be higher: there is
- no point standardizing an algorithm if users reject it on the grounds that
- there are better, more heavily optimized versions available.
- </li>
-</ul></div>
-<div class="table">
-<a name="id490853"></a><p class="title"><b>Table 1.1. Time taken to copy 1000 elements using `copy&lt;const
- T*, T*&gt;` (times in micro-seconds)</b></p>
-<div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy&lt;const
- T*, T*&gt;` (times in micro-seconds)">
-<colgroup>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Version
- </p>
- </th>
-<th>
- <p>
- T
- </p>
- </th>
-<th>
- <p>
- Time
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- "Optimized" copy
- </p>
- </td>
-<td>
- <p>
- char
- </p>
- </td>
-<td>
- <p>
- 0.99
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Conventional copy
- </p>
- </td>
-<td>
- <p>
- char
- </p>
- </td>
-<td>
- <p>
- 8.07
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- "Optimized" copy
- </p>
- </td>
-<td>
- <p>
- int
- </p>
- </td>
-<td>
- <p>
- 2.52
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Conventional copy
- </p>
- </td>
-<td>
- <p>
- int
- </p>
- </td>
-<td>
- <p>
- 8.02
- </p>
- </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<br class="table-break"><a name="boost_typetraits.category.background.pair_of_references"></a><h5>
-<a name="id491010"></a>
- <a href="background.html#boost_typetraits.category.background.pair_of_references">Pair
- of References</a>
- </h5>
-<p>
- The optimized copy example shows how type traits may be used to perform optimization
- decisions at compile-time. Another important usage of type traits is to allow
- code to compile that otherwise would not do so unless excessive partial specialization
- is used. This is possible by delegating partial specialization to the type
- traits classes. Our example for this form of usage is a pair that can hold
- references [6].
- </p>
-<p>
- First, let us examine the definition of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>,
- omitting the comparison operators, default constructor, and template copy
- constructor for simplicity:
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">pair</span>
-<span class="special">{</span>
-<span class="keyword">typedef</span> <span class="identifier">T1</span> <span class="identifier">first_type</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">T2</span> <span class="identifier">second_type</span><span class="special">;</span>
-
-<span class="identifier">T1</span> <span class="identifier">first</span><span class="special">;</span>
-<span class="identifier">T2</span> <span class="identifier">second</span><span class="special">;</span>
-
-<span class="identifier">pair</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T1</span> <span class="special">&amp;</span> <span class="identifier">nfirst</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T2</span> <span class="special">&amp;</span> <span class="identifier">nsecond</span><span class="special">)</span>
-<span class="special">:</span><span class="identifier">first</span><span class="special">(</span><span class="identifier">nfirst</span><span class="special">),</span> <span class="identifier">second</span><span class="special">(</span><span class="identifier">nsecond</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span>
-<span class="special">};</span>
-</pre>
-<p>
- Now, this "pair" cannot hold references as it currently stands,
- because the constructor would require taking a reference to a reference,
- which is currently illegal [7].
- Let us consider what the constructor's parameters would have to be in order
- to allow "pair" to hold non-reference types, references, and constant
- references:
- </p>
-<div class="table">
-<a name="id491374"></a><p class="title"><b>Table 1.2. Required Constructor Argument Types</b></p>
-<div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Type of <code class="computeroutput"><span class="identifier">T1</span></code>
- </p>
- </th>
-<th>
- <p>
- Type of parameter to initializing constructor
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- T
- </p>
- </td>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- T &amp;
- </p>
- </td>
-<td>
- <p>
- T &amp;
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<br class="table-break"><p>
- A little familiarity with the type traits classes allows us to construct
- a single mapping that allows us to determine the type of parameter from the
- type of the contained class. The type traits classes provide a transformation
- add_reference,
- which adds a reference to its type, unless it is already a reference.
- </p>
-<div class="table">
-<a name="id491508"></a><p class="title"><b>Table 1.3. Using add_reference to synthesize the correct constructor
- type</b></p>
-<div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor
- type">
-<colgroup>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Type of <code class="computeroutput"><span class="identifier">T1</span></code>
- </p>
- </th>
-<th>
- <p>
- Type of <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">T1</span></code>
- </p>
- </th>
-<th>
- <p>
- Type of <code class="computeroutput"><span class="identifier">add_reference</span><span class="special">&lt;</span><span class="keyword">const</span>
- <span class="identifier">T1</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- T
- </p>
- </td>
-<td>
- <p>
- const T
- </p>
- </td>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- T &amp;
- </p>
- </td>
-<td>
- <p>
- T &amp; [8]
- </p>
- </td>
-<td>
- <p>
- T &amp;
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-<td>
- <p>
- const T &amp;
- </p>
- </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<br class="table-break"><p>
- This allows us to build a primary template definition for <code class="computeroutput"><span class="identifier">pair</span></code>
- that can contain non-reference types, reference types, and constant reference
- types:
- </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">pair</span>
-<span class="special">{</span>
-<span class="keyword">typedef</span> <span class="identifier">T1</span> <span class="identifier">first_type</span><span class="special">;</span>
-<span class="keyword">typedef</span> <span class="identifier">T2</span> <span class="identifier">second_type</span><span class="special">;</span>
-
-<span class="identifier">T1</span> <span class="identifier">first</span><span class="special">;</span>
-<span class="identifier">T2</span> <span class="identifier">second</span><span class="special">;</span>
-
-<span class="identifier">pair</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span>add_reference<span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">T1</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">nfirst</span><span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span>add_reference<span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">T2</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">nsecond</span><span class="special">)</span>
-<span class="special">:</span><span class="identifier">first</span><span class="special">(</span><span class="identifier">nfirst</span><span class="special">),</span> <span class="identifier">second</span><span class="special">(</span><span class="identifier">nsecond</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span>
-<span class="special">};</span>
-</pre>
-<p>
- Add back in the standard comparison operators, default constructor, and template
- copy constructor (which are all the same), and you have a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>
- that can hold reference types!
- </p>
-<p>
- This same extension could have been done using partial template specialization
- of <code class="computeroutput"><span class="identifier">pair</span></code>, but to specialize
- <code class="computeroutput"><span class="identifier">pair</span></code> in this way would require
- three partial specializations, plus the primary template. Type traits allows
- us to define a single primary template that adjusts itself auto-magically
- to any of these partial specializations, instead of a brute-force partial
- specialization approach. Using type traits in this fashion allows programmers
- to delegate partial specialization to the type traits classes, resulting
- in code that is easier to maintain and easier to understand.
- </p>
-<a name="boost_typetraits.category.background.conclusion"></a><h5>
-<a name="id492124"></a>
- Conclusion
- </h5>
-<p>
- We hope that in this article we have been able to give you some idea of what
- type-traits are all about. A more complete listing of the available classes
- are in the boost documentation, along with further examples using type traits.
- Templates have enabled C++ uses to take the advantage of the code reuse that
- generic programming brings; hopefully this article has shown that generic
- programming does not have to sink to the lowest common denominator, and that
- templates can be optimal as well as generic.
- </p>
-<a name="boost_typetraits.category.background.acknowledgements"></a><h5>
-<a name="id492161"></a>
- Acknowledgements
- </h5>
-<p>
- The authors would like to thank Beman Dawes and Howard Hinnant for their
- helpful comments when preparing this article.
- </p>
-<a name="boost_typetraits.category.background.references"></a><h5>
-<a name="id492191"></a>
- References
- </h5>
-<div class="orderedlist"><ol type="1">
-<li>
- Nathan C. Myers, C++ Report, June 1995.
- </li>
-<li>
- The type traits library is based upon contributions by Steve Cleary, Beman
- Dawes, Howard Hinnant and John Maddock: it can be found at www.boost.org.
- </li>
-<li>
- A scalar type is an arithmetic type (i.e. a built-in integer or floating
- point type), an enumeration type, a pointer, a pointer to member, or a
- const- or volatile-qualified version of one of these types.
- </li>
-<li>
- This quote is from Donald Knuth, ACM Computing Surveys, December 1974,
- pg 268.
- </li>
-<li>
- The test code is available as part of the boost utility library (see algo_opt_examples.cpp),
- the code was compiled with gcc 2.95 with all optimisations turned on, tests
- were conducted on a 400MHz Pentium II machine running Microsoft Windows
- 98.
- </li>
-<li>
- John Maddock and Howard Hinnant have submitted a "compressed_pair"
- library to Boost, which uses a technique similar to the one described here
- to hold references. Their pair also uses type traits to determine if any
- of the types are empty, and will derive instead of contain to conserve
- space -- hence the name "compressed".
- </li>
-<li>
- This is actually an issue with the C++ Core Language Working Group (issue
- #106), submitted by Bjarne Stroustrup. The tentative resolution is to allow
- a "reference to a reference to T" to mean the same thing as a
- "reference to T", but only in template instantiation, in a method
- similar to multiple cv-qualifiers.
- </li>
-<li>
- For those of you who are wondering why this shouldn't be const-qualified,
- remember that references are always implicitly constant (for example, you
- can't re-assign a reference). Remember also that "const T &amp;"
- is something completely different. For this reason, cv-qualifiers on template
- type arguments that are references are ignored.
- </li>
-</ol></div>
-</div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"></td>
-<td align="right"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
- Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
- Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
- Ramey and Jeremy Siek</small></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="../category.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../category.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="value_traits.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/function.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/function.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,20 +36,20 @@
 <p>
         <span class="bold"><strong>Synopsis</strong></span>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> function_traits<span class="special">;</span>
 </pre>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,8 +36,7 @@
 <p>
         <span class="bold"><strong>Synopsis:</strong></span>
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> add_const<span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -92,7 +91,7 @@
 <span class="keyword">struct</span> remove_volatile<span class="special">;</span>
 </pre>
 <a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id496340"></a>
+<a name="id496203"></a>
         <a href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
         Compiler Workarounds:</a>
       </h5>
@@ -117,8 +116,7 @@
 <p>
         The first part guarantees the successful compilation of something like this:
       </p>
-<pre class="programlisting">
-<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
+<pre class="programlisting"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
 <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
 <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">volatile</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">volatile</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
 <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span> <span class="keyword">volatile</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
@@ -133,8 +131,7 @@
         <code class="computeroutput"><span class="keyword">int</span></code> or other built-in type,
         but for their own types as well:
       </p>
-<pre class="programlisting">
-<span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
    <span class="keyword">struct</span> <span class="identifier">MyClass</span> <span class="special">{};</span>
 <span class="special">}</span>
 <span class="comment">// declare this at global scope:
@@ -152,13 +149,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -48,13 +48,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -48,8 +48,7 @@
 <p>
           <span class="bold"><strong>Synopsis:</strong></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> is_array<span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -93,8 +92,7 @@
           A type may belong to more than one of these categories, in addition to
           one of the primary categories.
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> is_arithmetic<span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -115,13 +113,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,8 +33,7 @@
 <p>
           <span class="bold"><strong>Synopsis:</strong></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> alignment_of<span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -109,13 +108,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,8 +34,7 @@
 <p>
           <span class="bold"><strong>Synopsis:</strong></span>
         </p>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> is_base_of<span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">From</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">To</span><span class="special">&gt;</span>
@@ -47,13 +46,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/credits.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/credits.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/credits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -13,8 +13,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -61,13 +61,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -41,13 +41,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/copy.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/copy.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/copy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,8 +33,7 @@
         to determine whether to use <code class="computeroutput"><span class="identifier">memcpy</span></code>
         to optimise the copy operation (see copy_example.cpp):
       </p>
-<pre class="programlisting">
-<span class="comment">//
+<pre class="programlisting"><span class="comment">//
 </span><span class="comment">// opt::copy
 </span><span class="comment">// same semantics as std::copy
 </span><span class="comment">// calls memcpy where appropriate.
@@ -79,13 +78,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,8 +31,7 @@
         Demonstrates a simple algorithm that uses <code class="computeroutput"><span class="identifier">__has_trivial_destruct</span></code>
         to determine whether to destructors need to be called (see trivial_destructor_example.cpp):
       </p>
-<pre class="programlisting">
-<span class="comment">//
+<pre class="programlisting"><span class="comment">//
 </span><span class="comment">// algorithm destroy_array:
 </span><span class="comment">// The reverse of std::unitialized_copy, takes a block of
 </span><span class="comment">// initialized memory and calls destructors on all objects therein.
@@ -66,13 +65,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/fill.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/fill.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/fill.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -33,8 +33,7 @@
         to determine whether to use <code class="computeroutput"><span class="identifier">memset</span></code>
         to optimise the fill operation (see fill_example.cpp):
       </p>
-<pre class="programlisting">
-<span class="comment">//
+<pre class="programlisting"><span class="comment">//
 </span><span class="comment">// fill
 </span><span class="comment">// same as std::fill, but uses memset where appropriate
 </span><span class="comment">//
@@ -73,13 +72,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/iter.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/iter.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/iter.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -36,8 +36,7 @@
         the swap to ensure that the algorithm works correctly for both proxying iterators,
         and even iterators of different types (see iter_swap_example.cpp):
       </p>
-<pre class="programlisting">
-<span class="comment">//
+<pre class="programlisting"><span class="comment">//
 </span><span class="comment">// iter_swap:
 </span><span class="comment">// tests whether iterator is a proxying iterator or not, and
 </span><span class="comment">// uses optimal form accordingly:
@@ -82,13 +81,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -31,8 +31,7 @@
         Demonstrates a conversion of <a href="../../../../libs/numeric/conversion/doc/definitions.html#numtypes" target="_top">Numeric
         Types</a> and enum types to double:
       </p>
-<pre class="programlisting">
-<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">double</span> <span class="identifier">to_double</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">value</span><span class="special">)</span>
 <span class="special">{</span>
     <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">promote</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">promoted</span><span class="special">;</span>
@@ -42,13 +41,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intrinsics.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intrinsics.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -71,7 +71,7 @@
       of the following macros:
     </p>
 <div class="table">
-<a name="id498584"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
+<a name="id498434"></a><p class="title"><b>Table 1.4. Macros for Compiler Intrinsics</b></p>
 <div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
 <colgroup>
 <col>
@@ -227,13 +227,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intro.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intro.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/intro.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -48,13 +48,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/mpl.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/mpl.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/mpl.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -45,13 +45,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -104,13 +104,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.add_const"></a> add_const
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_const</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id503727"></a><p class="title"><b>Table 1.5. Examples</b></p>
+<a name="id503567"></a><p class="title"><b>Table 1.5. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -129,13 +128,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.add_cv"></a> add_cv
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_cv</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -55,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id504366"></a><p class="title"><b>Table 1.6. Examples</b></p>
+<a name="id504206"></a><p class="title"><b>Table 1.6. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -132,13 +131,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.add_pointer"></a> add_pointer
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_pointer</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -57,7 +56,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id505080"></a><p class="title"><b>Table 1.7. Examples</b></p>
+<a name="id504918"></a><p class="title"><b>Table 1.7. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -131,13 +130,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.add_reference"></a> add_reference
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_reference</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id505719"></a><p class="title"><b>Table 1.8. Examples</b></p>
+<a name="id505555"></a><p class="title"><b>Table 1.8. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -128,13 +127,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.add_volatile"></a> add_volatile
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_volatile</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id506349"></a><p class="title"><b>Table 1.9. Examples</b></p>
+<a name="id506185"></a><p class="title"><b>Table 1.9. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -130,13 +129,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.aligned_storage"></a> aligned_storage
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Size</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Size</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">aligned_storage</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -46,13 +45,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.alignment_of"></a> alignment_of
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">alignment_of</span> <span class="special">:</span> <span class="keyword">public</span> integral_constant<span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
@@ -89,13 +88,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/decay.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/decay.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.decay"></a> decay
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">decay</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -49,7 +48,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id508010"></a><p class="title"><b>Table 1.10. Examples</b></p>
+<a name="id507843"></a><p class="title"><b>Table 1.10. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -135,13 +134,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/extent.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/extent.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/extent.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.extent"></a> extent
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="number">0</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="number">0</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">extent</span> <span class="special">:</span> <span class="keyword">public</span> integral_constant<span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">EXTENT</span><span class="special">(</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">)&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
@@ -121,13 +120,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_typetraits.reference.floating_point_promotion"></a><a href="floating_point_promotion.html" title="floating_point_promotion">
       floating_point_promotion</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">floating_point_promotion</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -50,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id509798"></a><p class="title"><b>Table 1.11. Examples</b></p>
+<a name="id509628"></a><p class="title"><b>Table 1.11. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -113,13 +112,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.function_traits"></a> function_traits
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">function_traits</span>
 <span class="special">{</span>
    <span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">arity</span> <span class="special">=</span> <em class="replaceable"><code>see-below</code></em><span class="special">;</span>
@@ -60,7 +59,7 @@
         </p></td></tr>
 </table></div>
 <div class="table">
-<a name="id510280"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
+<a name="id510108"></a><p class="title"><b>Table 1.12. Function Traits Members</b></p>
 <div class="table-contents"><table class="table" summary="Function Traits Members">
 <colgroup>
 <col>
@@ -123,7 +122,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id510557"></a><p class="title"><b>Table 1.13. Examples</b></p>
+<a name="id510386"></a><p class="title"><b>Table 1.13. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -259,13 +258,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,13 +32,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.has_nothrow_assign"></a> has_nothrow_assign
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_nothrow_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -57,13 +56,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_typetraits.reference.has_nothrow_constructor"></a><a href="has_nothrow_constructor.html" title="has_nothrow_constructor">
       has_nothrow_constructor</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_nothrow_constructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -64,13 +63,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.has_nothrow_copy"></a> has_nothrow_copy
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_nothrow_copy</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -63,13 +62,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,13 +32,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.has_trivial_assign"></a> has_trivial_assign
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -114,13 +113,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_typetraits.reference.has_trivial_constructor"></a><a href="has_trivial_constructor.html" title="has_trivial_constructor">
       has_trivial_constructor</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_constructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -124,13 +123,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.has_trivial_copy"></a> has_trivial_copy
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_copy</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -120,13 +119,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,13 +32,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -32,13 +32,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.has_trivial_destructor"></a> has_trivial_destructor
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_destructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -117,13 +116,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.has_virtual_destructor"></a> has_virtual_destructor
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_virtual_destructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -56,13 +55,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.integral_constant"></a> integral_constant
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">val</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">val</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">integral_constant</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <span class="identifier">integral_constant</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">val</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
@@ -48,13 +47,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.integral_promotion"></a> integral_promotion
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">integral_promotion</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -50,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id516064"></a><p class="title"><b>Table 1.14. Examples</b></p>
+<a name="id515875"></a><p class="title"><b>Table 1.14. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -113,13 +112,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_abstract"></a> is_abstract
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_abstract</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -106,13 +105,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_arithmetic"></a> is_arithmetic
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_arithmetic</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -89,13 +88,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_array"></a> is_array
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_array</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -92,13 +91,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_base_of"></a> is_base_of
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_base_of</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -141,13 +140,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_class"></a> is_class
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_class</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -125,13 +124,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_complex"></a> is_complex
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_complex</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -47,13 +46,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_compound"></a> is_compound
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_compound</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -108,13 +107,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_const"></a> is_const
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_const</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -118,13 +117,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_convertible"></a> is_convertible
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">From</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">To</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">From</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">To</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_convertible</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -59,8 +58,7 @@
         This template will also produce compiler errors if the conversion is ambiguous,
         for example:
       </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{};</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{};</span>
 <span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">:</span> <span class="identifier">A</span> <span class="special">{};</span>
 <span class="keyword">struct</span> <span class="identifier">C</span> <span class="special">:</span> <span class="identifier">A</span> <span class="special">{};</span>
 <span class="keyword">struct</span> <span class="identifier">D</span> <span class="special">:</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span> <span class="special">{};</span>
@@ -159,13 +157,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_empty"></a> is_empty
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_empty</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -121,13 +120,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_enum"></a> is_enum
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_enum</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -125,13 +124,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_floating_point"></a> is_floating_point
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_floating_point</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -87,13 +86,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_function"></a> is_function
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_function</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -37,8 +36,7 @@
         Note that this template does not detect <span class="emphasis"><em>pointers to functions</em></span>,
         or <span class="emphasis"><em>references to functions</em></span>, these are detected by is_pointer and is_reference respectively:
       </p>
-<pre class="programlisting">
-<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">f1</span><span class="special">();</span> <span class="comment">// f1 is of function type.
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">f1</span><span class="special">();</span> <span class="comment">// f1 is of function type.
 </span><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f2</span><span class="special">*)();</span> <span class="comment">// f2 is a pointer to a function.
 </span><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f3</span><span class="special">&amp;)();</span> <span class="comment">// f3 is a reference to a function.
 </span></pre>
@@ -175,13 +173,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_fundamental"></a> is_fundamental
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_fundamental</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -92,13 +91,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_integral"></a> is_integral
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_integral</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -88,13 +87,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_typetraits.reference.is_member_function_pointer"></a><a href="is_member_function_pointer.html" title="is_member_function_pointer">
       is_member_function_pointer</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_member_function_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -102,13 +101,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -27,8 +27,7 @@
 <a name="boost_typetraits.reference.is_member_object_pointer"></a><a href="is_member_object_pointer.html" title="is_member_object_pointer">
       is_member_object_pointer</a>
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_member_object_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -102,13 +101,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_member_pointer"></a> is_member_pointer
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_member_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -88,13 +87,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_object"></a> is_object
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_object</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -131,13 +130,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_pod"></a> is_pod
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_pod</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -118,13 +117,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_pointer"></a> is_pointer
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -124,13 +123,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_polymorphic"></a> is_polymorphic
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_polymorphic</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -104,13 +103,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_reference"></a> is_reference
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_reference</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -95,13 +94,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_same"></a> is_same
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_same</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -109,13 +108,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_scalar"></a> is_scalar
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_scalar</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -124,13 +123,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_signed"></a> is_signed
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_signed</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -118,13 +117,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_stateless"></a> is_stateless
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_stateless</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -44,8 +43,7 @@
         only inherits from true_type
         if the following expression is <code class="computeroutput"><span class="keyword">true</span></code>:
       </p>
-<pre class="programlisting">
-<span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_trivial_constructor</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
+<pre class="programlisting"><span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_trivial_constructor</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
 <span class="special">&amp;&amp;</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_trivial_copy</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
 <span class="special">&amp;&amp;</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_trivial_destructor</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
 <span class="special">&amp;&amp;</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_class</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span>
@@ -74,13 +72,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_union"></a> is_union
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_union</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -111,13 +110,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_unsigned"></a> is_unsigned
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_unsigned</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -120,13 +119,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_void"></a> is_void
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_void</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -98,13 +97,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.is_volatile"></a> is_volatile
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_volatile</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code>true_type-or-false_type</code></em> <span class="special">{};</span>
 </pre>
 <p>
@@ -98,13 +97,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.make_signed"></a> make_signed
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">make_signed</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -55,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id536444"></a><p class="title"><b>Table 1.15. Examples</b></p>
+<a name="id536226"></a><p class="title"><b>Table 1.15. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -144,13 +143,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.make_unsigned"></a> make_unsigned
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">make_unsigned</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -55,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id537077"></a><p class="title"><b>Table 1.16. Examples</b></p>
+<a name="id536858"></a><p class="title"><b>Table 1.16. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -145,13 +144,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/promote.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/promote.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.promote"></a> promote
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">promote</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -52,7 +51,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id537779"></a><p class="title"><b>Table 1.17. Examples</b></p>
+<a name="id537558"></a><p class="title"><b>Table 1.17. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -114,13 +113,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/rank.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/rank.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/rank.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.rank"></a> rank
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">rank</span> <span class="special">:</span> <span class="keyword">public</span> integral_constant<span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">RANK</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
@@ -109,13 +108,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_all_extents"></a> remove_all_extents
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_all_extents</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -55,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id539214"></a><p class="title"><b>Table 1.18. Examples</b></p>
+<a name="id538991"></a><p class="title"><b>Table 1.18. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -141,13 +140,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_const"></a> remove_const
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_const</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id539936"></a><p class="title"><b>Table 1.19. Examples</b></p>
+<a name="id539713"></a><p class="title"><b>Table 1.19. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -141,13 +140,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_cv"></a> remove_cv
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_cv</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id540641"></a><p class="title"><b>Table 1.20. Examples</b></p>
+<a name="id540417"></a><p class="title"><b>Table 1.20. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -141,13 +140,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_extent"></a> remove_extent
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_extent</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -55,7 +54,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id541346"></a><p class="title"><b>Table 1.21. Examples</b></p>
+<a name="id541121"></a><p class="title"><b>Table 1.21. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -141,13 +140,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_pointer"></a> remove_pointer
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_pointer</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id542083"></a><p class="title"><b>Table 1.22. Examples</b></p>
+<a name="id541855"></a><p class="title"><b>Table 1.22. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -140,13 +139,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_reference"></a> remove_reference
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_reference</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id542764"></a><p class="title"><b>Table 1.23. Examples</b></p>
+<a name="id542534"></a><p class="title"><b>Table 1.23. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -128,13 +127,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.remove_volatile"></a> remove_volatile
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_volatile</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -54,7 +53,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id543371"></a><p class="title"><b>Table 1.24. Examples</b></p>
+<a name="id543140"></a><p class="title"><b>Table 1.24. Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -141,13 +140,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -26,8 +26,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_typetraits.reference.type_with_alignment"></a> type_with_alignment
 </h3></div></div></div>
-<pre class="programlisting">
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">type_with_alignment</span>
 <span class="special">{</span>
    <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
@@ -45,13 +44,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/user_defined.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/user_defined.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/boost_typetraits/user_defined.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,8 +14,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -34,8 +34,7 @@
       or boost::false_type
       as appropriate:
     </p>
-<pre class="programlisting">
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">is_pod</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">is_pod</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">is_class</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">is_union</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 
@@ -64,13 +63,14 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer"><small>Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright © 2000, 2006 Adobe Systems Inc, David Abrahams,
       Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek<p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p></small></div></td>
+ </p>
+</div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav">

Modified: branches/proto/v3/libs/type_traits/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/html/index.html (original)
+++ branches/proto/v3/libs/type_traits/doc/html/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,8 +12,8 @@
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -30,7 +30,7 @@
       Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
       Ramey and Jeremy Siek</p></div>
 <div><div class="legalnotice">
-<a name="id435930"></a><p>
+<a name="id437571"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -155,10 +155,14 @@
 <dt><span class="section"> Credits</span></dt>
 </dl>
 </div>
+<p>
+ A printer-friendly <a href="http://svn.boost.org/svn/boost/sandbox/pdf/type_traits/release/type_traits.pdf" target="_top">PDF
+ version of this manual is also available</a>.
+ </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: November 07, 2007 at 18:38:23 +0000</small></p></td>
-<td align="right"><div class="copyright-footer"><small></small></div></td>
+<td align="left"><p><small>Last revised: November 08, 2007 at 09:38:22 +0000</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="boost_typetraits/intro.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>

Modified: branches/proto/v3/libs/type_traits/doc/type_traits.qbk
==============================================================================
--- branches/proto/v3/libs/type_traits/doc/type_traits.qbk (original)
+++ branches/proto/v3/libs/type_traits/doc/type_traits.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -116,6 +116,9 @@
 [def __decay [link boost_typetraits.reference.decay decay]]
 [def __is_complex [link boost_typetraits.reference.is_complex is_complex]]
 
+A printer-friendly [@http://svn.boost.org/svn/boost/sandbox/pdf/type_traits/release/type_traits.pdf
+ PDF version of this manual is also available].
+
 [section:intro Introduction]
 
 The Boost type-traits library contains a

Modified: branches/proto/v3/libs/type_traits/test/is_convertible_test.cpp
==============================================================================
--- branches/proto/v3/libs/type_traits/test/is_convertible_test.cpp (original)
+++ branches/proto/v3/libs/type_traits/test/is_convertible_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -125,9 +125,9 @@
 BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<long,int>::value), true);
 BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int,char>::value), true);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<long long,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<long long,char>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<long long,float>::value), true);
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<boost::long_long_type,int>::value), true);
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<boost::long_long_type,char>::value), true);
+BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<boost::long_long_type,float>::value), true);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,int>::value), true);
 BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,char>::value), true);

Modified: branches/proto/v3/libs/type_traits/test/make_signed_test.cpp
==============================================================================
--- branches/proto/v3/libs/type_traits/test/make_signed_test.cpp (original)
+++ branches/proto/v3/libs/type_traits/test/make_signed_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,7 +20,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<int>::type, int);
 BOOST_CHECK_TYPE(::tt::make_signed<long>::type, long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<long long>::type, long long);
+BOOST_CHECK_TYPE(::tt::make_signed<boost::long_long_type>::type, boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<__int64>::type, __int64);
 #endif
@@ -30,7 +30,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<const int>::type, const int);
 BOOST_CHECK_TYPE(::tt::make_signed<const long>::type, const long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const long long>::type, const long long);
+BOOST_CHECK_TYPE(::tt::make_signed<const boost::long_long_type>::type, const boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<const __int64>::type, const __int64);
 #endif
@@ -40,7 +40,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<volatile int>::type, volatile int);
 BOOST_CHECK_TYPE(::tt::make_signed<volatile long>::type, volatile long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<volatile long long>::type, volatile long long);
+BOOST_CHECK_TYPE(::tt::make_signed<volatile boost::long_long_type>::type, volatile boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<volatile __int64>::type, volatile __int64);
 #endif
@@ -50,7 +50,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<const volatile int>::type, const volatile int);
 BOOST_CHECK_TYPE(::tt::make_signed<const volatile long>::type, const volatile long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile long long>::type, const volatile long long);
+BOOST_CHECK_TYPE(::tt::make_signed<const volatile boost::long_long_type>::type, const volatile boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<const volatile __int64>::type, const volatile __int64);
 #endif
@@ -61,7 +61,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<unsigned int>::type, int);
 BOOST_CHECK_TYPE(::tt::make_signed<unsigned long>::type, long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<unsigned long long>::type, long long);
+BOOST_CHECK_TYPE(::tt::make_signed<boost::ulong_long_type>::type, boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<unsigned __int64>::type, __int64);
 #endif
@@ -71,7 +71,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<const unsigned int>::type, const int);
 BOOST_CHECK_TYPE(::tt::make_signed<const unsigned long>::type, const long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const unsigned long long>::type, const long long);
+BOOST_CHECK_TYPE(::tt::make_signed<const boost::ulong_long_type>::type, const boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<const unsigned __int64>::type, const __int64);
 #endif
@@ -81,7 +81,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned int>::type, volatile int);
 BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned long>::type, volatile long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned long long>::type, volatile long long);
+BOOST_CHECK_TYPE(::tt::make_signed<volatile boost::ulong_long_type>::type, volatile boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned __int64>::type, volatile __int64);
 #endif
@@ -91,7 +91,7 @@
 BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned int>::type, const volatile int);
 BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned long>::type, const volatile long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned long long>::type, const volatile long long);
+BOOST_CHECK_TYPE(::tt::make_signed<const volatile boost::ulong_long_type>::type, const volatile boost::long_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned __int64>::type, const volatile __int64);
 #endif

Modified: branches/proto/v3/libs/type_traits/test/make_unsigned_test.cpp
==============================================================================
--- branches/proto/v3/libs/type_traits/test/make_unsigned_test.cpp (original)
+++ branches/proto/v3/libs/type_traits/test/make_unsigned_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -20,7 +20,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<int>::type, unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<long>::type, unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<long long>::type, unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<boost::long_long_type>::type, boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<__int64>::type, unsigned __int64);
 #endif
@@ -30,7 +30,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<const int>::type, const unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<const long>::type, const unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const long long>::type, const unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<const boost::long_long_type>::type, const boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<const __int64>::type, const unsigned __int64);
 #endif
@@ -40,7 +40,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<volatile int>::type, volatile unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<volatile long>::type, volatile unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile long long>::type, volatile unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<volatile boost::long_long_type>::type, volatile boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<volatile __int64>::type, volatile unsigned __int64);
 #endif
@@ -50,7 +50,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile int>::type, const volatile unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile long>::type, const volatile unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile long long>::type, const volatile unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile boost::long_long_type>::type, const volatile boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile __int64>::type, const volatile unsigned __int64);
 #endif
@@ -61,7 +61,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned int>::type, unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned long>::type, unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned long long>::type, unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<boost::ulong_long_type>::type, boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned __int64>::type, unsigned __int64);
 #endif
@@ -71,7 +71,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned int>::type, const unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned long>::type, const unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned long long>::type, const unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<const boost::ulong_long_type>::type, const boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned __int64>::type, const unsigned __int64);
 #endif
@@ -81,7 +81,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned int>::type, volatile unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned long>::type, volatile unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned long long>::type, volatile unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<volatile boost::ulong_long_type>::type, volatile boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned __int64>::type, volatile unsigned __int64);
 #endif
@@ -91,7 +91,7 @@
 BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned int>::type, const volatile unsigned int);
 BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned long>::type, const volatile unsigned long);
 #ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned long long>::type, const volatile unsigned long long);
+BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile boost::ulong_long_type>::type, const volatile boost::ulong_long_type);
 #elif defined(BOOST_HAS_MS_INT64)
 BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned __int64>::type, const volatile unsigned __int64);
 #endif

Modified: branches/proto/v3/libs/typeof/tools/preprocess.pl
==============================================================================
--- branches/proto/v3/libs/typeof/tools/preprocess.pl (original)
+++ branches/proto/v3/libs/typeof/tools/preprocess.pl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 # // (C) Copyright Tobias Schwinger
 # //
 # // Use modification and distribution are subject to the boost Software License
-# // Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
+# // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
 
 # // Preprocess and run this script.
 # //

Modified: branches/proto/v3/libs/utility/base_from_member.html
==============================================================================
--- branches/proto/v3/libs/utility/base_from_member.html (original)
+++ branches/proto/v3/libs/utility/base_from_member.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -334,7 +334,7 @@
 <h3><a name="contributors">Contributors</a></h3>
 
 <dl>
- <dt>Ed Brey
+ <dt>Ed Brey
         <dd>Suggested some interface changes.
 
         <dt>R. Samuel Klatchko (<a
@@ -343,7 +343,7 @@
         <dd>Invented the idiom of how to use a class member for initializing
                 a base class.
 
- <dt>Dietmar Kuehl
+ <dt>Dietmar Kuehl
         <dd>Popularized the base-from-member idiom in his
                 <a href="http://www.informatik.uni-konstanz.de/~kuehl/c++/iostream/">IOStream
                 example classes</a>.
@@ -353,7 +353,7 @@
                 can be controlled and automated with macros. The implementation uses
                 the Preprocessor library.
 
- <dt>Daryle Walker
+ <dt>Daryle Walker
         <dd>Started the library. Contributed the test file <cite><a
                 href="base_from_member_test.cpp">base_from_member_test.cpp</a></cite>.
 </dl>

Modified: branches/proto/v3/libs/utility/generator_iterator.htm
==============================================================================
--- branches/proto/v3/libs/utility/generator_iterator.htm (original)
+++ branches/proto/v3/libs/utility/generator_iterator.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -153,7 +153,7 @@
   <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->05 December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p>
 
   <p><i>Copyright &copy; 2001 <a href=
- "../../people/jens_maurer.htm">Jens Maurer</a></i></p>
+ "http://www.boost.org/people/jens_maurer.htm">Jens Maurer</a></i></p>
 
   <p><i>Distributed under the Boost Software License, Version 1.0. (See
   accompanying file LICENSE_1_0.txt or

Modified: branches/proto/v3/libs/utility/operators.htm
==============================================================================
--- branches/proto/v3/libs/utility/operators.htm (original)
+++ branches/proto/v3/libs/utility/operators.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2029,13 +2029,13 @@
     <h2><a name="contributors">Contributors</a></h2>
 
     <dl>
- <dt>Dave Abrahams</dt>
+ <dt>Dave Abrahams</dt>
 
       <dd>Started the library and contributed the arithmetic operators in
       <cite><a href=
       "../../boost/operators.hpp">boost/operators.hpp</a></cite>.</dd>
 
- <dt>Jeremy Siek</dt>
+ <dt>Jeremy Siek</dt>
 
       <dd>Contributed the <a href="#deref">dereference operators and iterator
       helpers</a> in <cite><a href=
@@ -2043,19 +2043,19 @@
       contributed <cite><a href=
       "iterators_test.cpp">iterators_test.cpp</a></cite>.</dd>
 
- <dt><a href="../../people/aleksey_gurtovoy.htm">Aleksey
+ <dt><a href="http://www.boost.org/people/aleksey_gurtovoy.htm">Aleksey
       Gurtovoy</a></dt>
 
       <dd>Contributed the code to support <a href="#chaining">base class
       chaining</a> while remaining backward-compatible with old versions of
       the library.</dd>
 
- <dt>Beman Dawes</dt>
+ <dt>Beman Dawes</dt>
 
       <dd>Contributed <cite><a href=
       "operators_test.cpp">operators_test.cpp</a></cite>.</dd>
 
- <dt>Daryle Walker</dt>
+ <dt>Daryle Walker</dt>
 
       <dd>Contributed classes for the shift operators, equivalence, partial
       ordering, and arithmetic conversions. Added the grouped operator

Modified: branches/proto/v3/libs/utility/utility.htm
==============================================================================
--- branches/proto/v3/libs/utility/utility.htm (original)
+++ branches/proto/v3/libs/utility/utility.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -68,7 +68,7 @@
                 <p>The distance from the given iterator should be supplied as an absolute value. For
                         example, the iterator four iterators prior to the given iterator <code>p</code>
                         may be obtained by <code>prior(p, 4)</code>.</p>
- <p>Contributed by Dave Abrahams. Two-argument versions by Daniel Walker.</p>
+ <p>Contributed by Dave Abrahams. Two-argument versions by Daniel Walker.</p>
                 <h2><a name="Class_noncopyable">Class noncopyable</a></h2>
                 <p>Class <strong>noncopyable</strong> is a base class.&nbsp; Derive your own class
                         from <strong>noncopyable</strong> when you want to prohibit copy construction
@@ -89,7 +89,7 @@
                         to verify class <b>noncopyable</b> works as expected. It has have been run
                         successfully under GCC 2.95, Metrowerks CodeWarrior 5.0, and Microsoft Visual
                         C++ 6.0 sp 3.</p>
- <p>Contributed by Dave Abrahams.</p>
+ <p>Contributed by Dave Abrahams.</p>
                 <h3>Example</h3>
                 <blockquote>
                         <pre>// inside one of your own headers ...

Modified: branches/proto/v3/libs/utility/value_init.htm
==============================================================================
--- branches/proto/v3/libs/utility/value_init.htm (original)
+++ branches/proto/v3/libs/utility/value_init.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -17,11 +17,13 @@
 <dl>
   <dt>Rationale</dt>
   <dt>Introduction</dt>
+ <dt>Details</dt>
 </dl>
                    
 <ul>
           <li>value-initialization</li>
           <li>value-initialization syntax</li>
+ <li>compiler issues</li>
                    
 </ul>
                    
@@ -30,7 +32,8 @@
 </dl>
                    
 <ul>
- <li>value_initialized<></li>
+ <li>template class value_initialized<T></li>
+ <li>class initialized_value</li>
                    
 </ul>
               <a href="#acknowledgements">Acknowledgements</a><br>
@@ -44,24 +47,104 @@
 for initialization. Depending on the type, the value of a newly constructed
   object can be zero-initialized (logically 0), default-constructed (using
   the default constructor), or indeterminate. When writing generic code,
-this problem must be addressed. <code>value_initialized</code> provides
+this problem must be addressed. The template <code>value_initialized</code> provides
 a solution with consistent syntax for value initialization of scalar,
-union and class types. <br>
+union and class types.
+Moreover, <code>value_initialized</code> offers a workaround to various
+compiler issues regarding value-initialization.
+
+Furthermore a convenience class, <code>initialized_value</code> is provided,
+to avoid repeating the type name when retrieving the value from a
+<code>value_initialized&lt;T&gt;</code> object.
+<br>
   </p>
         
 <h2><a name="intro"></a>Introduction</h2>
      
-<p>The C++ standard [1] contains the definitions
+<p>
+There are various ways to initialize a variable, in C++. The following
+declarations all <em>may</em> have a local variable initialized to its default
+value:
+<pre>
+ T1 var1;
+ T2 var2 = 0;
+ T3 var3 = {};
+ T4 var4 = T4();
+</pre>
+Unfortunately, whether or not any of those declarations correctly
+initialize the variable very much depends on its type. The first
+declaration is valid for any <a href="http://www.sgi.com/tech/stl/DefaultConstructible.html">
+DefaultConstructible</a> type (by definition).
+However, it does not always do an initialization!
+It correctly initializes the variable when it's an instance of a
+class, and the author of the class has provided a proper default
+constructor. On the other hand, the value of <code>var1</code> is <em>indeterminate</em> when
+its type is an arithmetic type, like <code>int</code>, <code>float</code>, or <code>char</code>.
+An arithmetic variable
+is of course initialized properly by the second declaration, <code>T2
+var2 = 0</code>. But this initialization form usually won't work for a
+class type (unless the class was especially written to support being
+initialized that way). The third form, <code>T3 var3 = {}</code>
+initializes an aggregate, typically a "C-style" <code>struct</code> or a "C-style" array.
+However, the syntax is not allowed for a class that has an explicitly declared
+constructor. (But watch out for an upcoming C++ language change,
+by Bjarne Stroustrup et al [1]!)
+The fourth form is the most generic form of them, as it
+can be used to initialize arithmetic types, class types, aggregates, pointers, and
+other types. The declaration, <code>T4 var4 = T4()</code>, should be read
+as follows: First a temporary object is created, by <code>T4()</code>.
+This object is value-initialized. Next the temporary
+object is copied to the named variable, <code>var4</code>. Afterwards, the temporary
+is destroyed. While the copying and the destruction are likely to
+be optimized away, C++ still requires the type <code>T4</code> to be
+CopyConstructible.
+(So <code>T4</code> needs to be <em>both</em> DefaultConstructible <em>and</em> CopyConstructible.)
+A class may not be CopyConstructible, for example because it may have a
+private and undefined copy constructor,
+or because it may be derived from boost::noncopyable.
+Scott Meyers [2] explains why a class would be defined like that.
+</p>
+<p>
+There is another, less obvious disadvantage to the fourth form, <code>T4 var4 = T4()</code>:
+It suffers from various compiler issues, causing
+a variable to be left uninitialized in some compiler specific cases.
+</p>
+<p>
+The template value_initialized
+offers a generic way to initialize
+an object, like <code>T4 var4 = T4()</code>, but without requiring its type
+to be CopyConstructible. And it offers a workaround to those compiler issues
+regarding value-initialization as well! It allows getting an initialized
+variable of any type; it <em>only</em> requires the type to be DefaultConstructible.
+A properly <em>value-initialized</em> object of type <code>T</code> is
+constructed by the following declaration:
+<pre>
+ value_initialized&lt;T&gt; var;
+</pre>
+</p>
+<p>
+The convenience class initialized_value
+allows value-initializing a variable as follows:
+<pre>
+ T var = initialized_value();
+</pre>
+This form of initialization is also very similar to <code>T4 var4 = T4()</code>,
+but robust against the aforementioned compiler issues.
+
+</p>
+
+<h2><a name="details"></a>Details</h2>
+<p>The C++ standard [3] contains the definitions
     of <code>zero-initialization</code> and <code>default-initialization</code>.
      Informally, zero-initialization means that the object is given the initial
      value 0 (converted to the type) and default-initialization means that
- POD [2] types are zero-initialized, while class
+ POD [4] types are zero-initialized, while non-POD class
  types are initialized with their corresponding default constructors. A
 <i>declaration</i> can contain an <i>initializer</i>, which specifies the
 object's initial value. The initializer can be just '()', which states that
-the object shall be default-initialized (but see below). However, if a <i>declaration</i>
+the object shall be value-initialized (but see below). However, if a <i>declaration</i>
   has no <i>initializer</i> and it is of a non-<code>const</code>, non-<code>static</code>
- POD type, the initial value is indeterminate:<cite>(see &sect;8.5 for the
+ POD type, the initial value is indeterminate: <cite>(see &sect;8.5, [dcl.init], for the
    accurate definitions).</cite></p>
                    
 <pre>int x ; // no initializer. x value is indeterminate.<br>std::string s ; // no initializer, s is default-constructed.<br><br>int y = int() ; <br>// y is initialized using copy-initialization<br>// but the temporary uses an empty set of parentheses as the initializer,<br>// so it is default-constructed.<br>// A default constructed POD type is zero-initialized,<br>// therefore, y == 0.<br><br>void foo ( std::string ) ;<br>foo ( std::string() ) ; <br>// the temporary string is default constructed <br>// as indicated by the initializer () </pre>
@@ -87,14 +170,11 @@
 <p>In order to specify value-initialization of an object we need to use the
      empty-set initializer: (). </p>
                    
-<p><i>(but recall that the current C++ Standard states that '()' invokes default-initialization,
-not value-initialization)</i></p>
-
 <p>As before, a declaration with no intializer specifies default-initialization,
     and a declaration with a non-empty initializer specifies copy (=xxx) or
   direct (xxx) initialization. </p>
                    
-<pre>template&lt;class T&gt; void eat(T);<br>int x ; // indeterminate initial value.<br>std::string s; // default-initialized.<br>eat ( int() ) ; // value-initialized<br>eat ( std::string() ) ; // value-initialied</pre>
+<pre>template&lt;class T&gt; void eat(T);<br>int x ; // indeterminate initial value.<br>std::string s; // default-initialized.<br>eat ( int() ) ; // value-initialized<br>eat ( std::string() ) ; // value-initialized</pre>
                     
 <h4><a name="valueinitsyn">value-initialization</a> syntax</h4>
                    
@@ -102,7 +182,7 @@
 parentheses is not permitted by the syntax of initializers because it is
 parsed as the declaration of a function taking no arguments: </p>
                    
-<pre>int x() ; // declares function int(*)()<br>int y ( int() ) ; // decalares function int(*)( int(*)() )</pre>
+<pre>int x() ; // declares function int(*)()</pre>
                     
 <p>Thus, the empty () must be put in some other initialization context.</p>
                    
@@ -124,8 +204,50 @@
                    
 <pre>template&lt;class T&gt; <br>struct W <br>{<br> // value-initialization of 'data' here.<br> W() : data() {}<br> T data ;<br>} ;<br>W&lt;int&gt; w ;<br>// w.data is value-initialized for any type. </pre>
                     
-<p><code>This is the solution supplied by the value_initialized&lt;&gt; template
- class.</code></p>
+<p>This is the solution as it was supplied by earlier versions of the
+<code>value_initialized&lt;T&gt;</code> template
+ class. Unfortunately this approach suffered from various compiler issues.</p>
+
+<h4><a name="compiler_issues">compiler issues</a> </h4>
+
+Various compilers haven't yet fully implemented value-initialization.
+So when an object should be <em>value-initialized</em> (according to the C++ Standard),
+it <em>may</em> in practice still be left uninitialized, because of those
+compiler issues! It's hard to make a general statement on what those issues
+are like, because they depend on the compiler you are using, its version number,
+and the type of object you would like to have value-initialized.
+Compilers usually support value-initialization for built-in types properly.
+But objects of user-defined types that involve <em>aggregates</em> may <em>in some cases</em>
+be partially, or even entirely left uninitialized, when they should be value-initialized.
+</p>
+<p>
+We have encountered issues regarding value-initialization on compilers by
+Microsoft, Sun, Borland, and GNU. Here is a list of bug reports on those issues:
+<table summary="Compiler bug reports regarding value-initialization" border="0" cellpadding="7" cellspacing="1" >
+<tr><td>
+<a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=100744">
+Microsoft Feedback ID 100744 - Value-initialization in new-expression</a>
+<br>Reported by Pavel Kuznetsov (MetaCommunications Engineering), 2005-07-28
+<br>
+<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111">
+GCC Bug 30111 - Value-initialization of POD base class doesn't initialize members</a>
+<br>Reported by Jonathan Wakely, 2006-12-07
+<br>
+<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916">
+GCC Bug 33916 - Default constructor fails to initialize array members</a>
+<br>Reported by Michael Elizabeth Chastain, 2007-10-26
+<br>
+<a href="http://qc.codegear.com/wc/qcmain.aspx?d=51854">
+Borland Report 51854 - Value-initialization: POD struct should be zero-initialized</a>
+<br>Reported by Niels Dekker (LKEB, Leiden University Medical Center), 2007-09-11
+<br>
+</td></tr></table>
+</p><p>
+New versions of <code>value_initialized</code>
+(Boost release version 1.35 or higher)
+offer a workaround to these issues: <code>value_initialized</code> will now clear
+its internal data, prior to constructing the object that it contains.
+</p>
                    
 <h2><a name="types"></a>Types</h2>
                    
@@ -189,25 +311,72 @@
 the wrapped object is always performed with the <code>get()</code> idiom:</p>
                    
 <pre>value_initialized&lt;int&gt; x ;<br>get(x) = 1 ; // OK<br><br>value_initialized&lt;int const&gt; cx ;<br>get(x) = 1 ; // ERROR: Cannot modify a const object<br><br>value_initialized&lt;int&gt; const x_c ;<br>get(x_c) = 1 ; // ERROR: Cannot modify a const object<br><br>value_initialized&lt;int const&gt; const cx_c ;<br>get(cx_c) = 1 ; // ERROR: Cannot modify a const object<br></pre>
+
+<h2><a name="initialized_value"><code>class initialized_value</code></a></h2>
+
+<pre>
+namespace boost {
+class initialized_value
+{
+ public :
+ template &lt;class T&gt; operator T() const ;
+};
+} // namespace boost
+</pre>
+
+The class <code>initialized_value</code> provides a convenient way to get
+an initialized value: its conversion operator provides an appropriate
+<em>value-initialized</em> object for any CopyConstructible type.
+
+Suppose you need to have an initialized variable of type <code>T</code>.
+You could do it as follows:
+<pre>
+ T var = T();
+</pre>
+But as mentioned before, this form suffers from various compiler issues.
+The template <code>value_initialized</code> offers a workaround:
+<pre>
+ T var = get( value_initialized&lt;T&gt;() );
+</pre>
+Unfortunately both forms repeat the type name, which
+is rather short now (<code>T</code>), but could of course be
+more like <code>Namespace::Template&lt;Arg&gt;::Type</code>.
+Instead, one could use <code>initialized_value</code> as follows:
+<pre>
+ T var = initialized_value();
+</pre>
                     
 <h3><a name="references">References</a></h3>
- [1] The C++ Standard, ISO/IEC 14882:98 <br>
- [2] Plain Old Data
+ [1] Bjarne Stroustrup, Gabriel Dos Reis, and J. Stephen Adamczyk wrote
+ various papers, proposing to extend the support for brace-enclosed <em>initializer lists</em>
+ in the next version of C++.
+ This would allow a variable <code>var</code> of any DefaultConstructible type
+ <code>T</code> to be <em>value-initialized</em> by doing <code>T var = {}</code>.
+ The papers are listed at Bjarne's web page,
+ My C++ Standards committee papers <br>
+ [2] Scott Meyers, Effective C++, Third Edition, item 6,
+ <em>Explicitly disallow the use of compiler-generated functions you do not want</em>,
+ Scott Meyers: Books and CDs <br>
+ [3] The C++ Standard, Second edition (2003), ISO/IEC 14882:2003 <br>
+ [4] POD stands for "Plain Old Data"
+
 <h3><a name="acknowledgements"></a>Acknowledgements</h3>
      value_initialized was developed by Fernando Cacciola, with help and
 suggestions from David Abrahams and Darin Adler.<br>
-Special thanks to Björn Karlsson who carefully edited and completed this documentation.
-
+Special thanks to Bj&ouml;rn Karlsson who carefully edited and completed this documentation.
+
+<p>value_initialized was reimplemented by Fernando Cacciola and Niels Dekker
+for Boost release version 1.35 (2008), offering a workaround to various compiler issues.
+ </p>
 <p>Developed by <a href="mailto:fernando_cacciola_at_[hidden]">Fernando Cacciola</a>,
      the latest version of this file can be found at <a
- href="http://www.boost.org">www.boost.org</a>, and the boost discussion list
-at www.yahoogroups.com/list/boost.
+ href="http://www.boost.org">www.boost.org</a>.
      </p>
                     
 <hr>
-<p>Revised 19 September 2002</p>
+<p>Revised 16 January 2008</p>
                    
-<p>&copy; Copyright Fernando Cacciola, 2002.</p>
+<p>&copy; Copyright Fernando Cacciola, 2002, 2008.</p>
                    
 <p>Distributed under the Boost Software License, Version 1.0. See
 <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>

Modified: branches/proto/v3/libs/utility/value_init_test.cpp
==============================================================================
--- branches/proto/v3/libs/utility/value_init_test.cpp (original)
+++ branches/proto/v3/libs/utility/value_init_test.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,4 +1,4 @@
-// Copyright 2002, Fernando Luis Cacciola Carballal.
+// Copyright 2002-2008, Fernando Luis Cacciola Carballal.
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
@@ -6,7 +6,8 @@
 //
 // Test program for "boost/utility/value_init.hpp"
 //
-// Initial: 21 Agu 2002
+// 21 Ago 2002 (Created) Fernando Cacciola
+// 18 Feb 2008 (Added tests regarding compiler issues and initialized_value) Fernando Cacciola, Niels Dekker
 
 #include <cstring> // For memcmp.
 #include <iostream>
@@ -51,7 +52,7 @@
 struct NonPOD : NonPODBase
 {
   NonPOD () : id() {}
- NonPOD ( std::string const& id_) : id(id_) {}
+ explicit NonPOD ( std::string const& id_) : id(id_) {}
 
   friend std::ostream& operator << ( std::ostream& os, NonPOD const& npod )
     { return os << '(' << npod.id << ')' ; }
@@ -179,6 +180,32 @@
 };
 
 
+template<class T>
+void check_initialized_value ( T const& y )
+{
+ T initializedValue = boost::initialized_value() ;
+ BOOST_CHECK ( y == initializedValue ) ;
+}
+
+#ifdef __BORLANDC__
+#if __BORLANDC__ == 0x582
+void check_initialized_value( NonPOD const& )
+{
+ // The initialized_value check is skipped for Borland 5.82
+ // and this type (NonPOD), because the following statement
+ // won't compile on this particular compiler version:
+ // NonPOD initializedValue = boost::initialized_value() ;
+ //
+ // This is caused by a compiler bug, that is fixed with a newer version
+ // of the Borland compiler. The Release Notes for Delphi(R) 2007 for
+ // Win32(R) and C++Builder(R) 2007 (http://dn.codegear.com/article/36575)
+ // say about similar statements:
+ // both of these statements now compile but under 5.82 got the error:
+ // Error E2015: Ambiguity between 'V::V(const A &)' and 'V::V(const V &)'
+}
+#endif
+#endif
+
 //
 // This test function tests boost::value_initialized<T> for a specific type T.
 // The first argument (y) is assumed have the value of a value-initialized object.
@@ -188,9 +215,13 @@
 bool test ( T const& y, T const& z )
 {
   const boost::unit_test::counter_t counter_before_test = boost::minimal_test::errors_counter();
+
+ check_initialized_value(y);
+
   boost::value_initialized<T> x ;
   BOOST_CHECK ( y == x ) ;
   BOOST_CHECK ( y == boost::get(x) ) ;
+
   static_cast<T&>(x) = z ;
   boost::get(x) = z ;
   BOOST_CHECK ( x == z ) ;
@@ -274,6 +305,10 @@
   boost::value_initialized<ArrayOfBytes> valueInitializedArrayOfBytes;
   BOOST_CHECK (std::memcmp(get(valueInitializedArrayOfBytes), zeroInitializedArrayOfBytes, sizeof(ArrayOfBytes)) == 0);
 
+ boost::value_initialized<ArrayOfBytes> valueInitializedArrayOfBytes2;
+ valueInitializedArrayOfBytes2 = valueInitializedArrayOfBytes;
+ BOOST_CHECK (std::memcmp(get(valueInitializedArrayOfBytes), get(valueInitializedArrayOfBytes2), sizeof(ArrayOfBytes)) == 0);
+
   boost::value_initialized<CopyFunctionCallTester> copyFunctionCallTester1;
   BOOST_CHECK ( ! get(copyFunctionCallTester1).is_copy_constructed);
   BOOST_CHECK ( ! get(copyFunctionCallTester1).is_assignment_called);

Modified: branches/proto/v3/libs/variant/doc/tutorial/advanced.xml
==============================================================================
--- branches/proto/v3/libs/variant/doc/tutorial/advanced.xml (original)
+++ branches/proto/v3/libs/variant/doc/tutorial/advanced.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -343,7 +343,7 @@
 
 are_strict_equals visitor;
 assert( std::equal(
- v1.begin(), v1.end(), v2.begin()
+ seq1.begin(), seq1.end(), seq2.begin()
     , <functionname>boost::apply_visitor</functionname>( visitor )
     ) );</programlisting>
 

Modified: branches/proto/v3/libs/wave/ChangeLog
==============================================================================
--- branches/proto/v3/libs/wave/ChangeLog (original)
+++ branches/proto/v3/libs/wave/ChangeLog 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 Boost.Wave: A Standard compliant C++ preprocessor library
 http://www.boost.org/
 
-Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 Software License, Version 1.0. (See accompanying file
 LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 -------------------------------------------------------------------------------
@@ -25,7 +25,7 @@
 CHANGELOG
 
 - Wave Version 1.4
-
+
 Boost V1.35.0
 - Wave Version 1.3
 - Changed the return value of the 'evaluated_conditional_expression()' pp hook
@@ -156,6 +156,17 @@
   anymore.
 - Applied patch provided by Jens Seidel making sure every header compiles on
   its own.
+- Updates to the documentation.
+- Fixed a problem in flex_string::compare() (#include_next was non-functional).
+- Fixed a bug in the pp hook expanding_function_like_macro(), where the seqend
+ parameter was set to the first token after the closing parenthesis instead of
+ pointing at it.
+- Added the BOOST_WAVE_SUPPORT_THREADING allowing to explicitely control
+ whether the Wave library is built with threading support enabled. If not
+ defined the build settings will be picked up from the Boost build environment
+ (BOOST_HAS_THREADS).
+- Fixed a whitespace insertion glitch, where whitespace got inserted
+ unconditionally between two operators even if one of these was a comma.
   
 Boost V1.34.0
 - Wave Version 1.2.4

Modified: branches/proto/v3/libs/wave/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/doc/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/acknowledgements.html (original)
+++ branches/proto/v3/libs/wave/doc/acknowledgements.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -83,7 +83,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software
   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/wave/doc/class_ref_ctxpolicy_depr.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_ref_ctxpolicy_depr.html (original)
+++ branches/proto/v3/libs/wave/doc/class_ref_ctxpolicy_depr.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -332,7 +332,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <p class="copyright"><span class="updated">Last updated:

Modified: branches/proto/v3/libs/wave/doc/class_reference_context.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_reference_context.html (original)
+++ branches/proto/v3/libs/wave/doc/class_reference_context.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -502,7 +502,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/class_reference_ctxpolicy.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_reference_ctxpolicy.html (original)
+++ branches/proto/v3/libs/wave/doc/class_reference_ctxpolicy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -431,7 +431,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <p class="copyright"><span class="updated">Last updated:

Modified: branches/proto/v3/libs/wave/doc/class_reference_filepos.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_reference_filepos.html (original)
+++ branches/proto/v3/libs/wave/doc/class_reference_filepos.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -109,7 +109,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <p class="copyright"><span class="updated">Last updated:

Modified: branches/proto/v3/libs/wave/doc/class_reference_inptpolcy.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_reference_inptpolcy.html (original)
+++ branches/proto/v3/libs/wave/doc/class_reference_inptpolcy.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -121,7 +121,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/class_reference_lexer.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_reference_lexer.html (original)
+++ branches/proto/v3/libs/wave/doc/class_reference_lexer.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -93,7 +93,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <p class="copyright"><span class="updated">Last updated:

Modified: branches/proto/v3/libs/wave/doc/class_reference_tokentype.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/class_reference_tokentype.html (original)
+++ branches/proto/v3/libs/wave/doc/class_reference_tokentype.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -165,7 +165,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/compiletime_config.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/compiletime_config.html (original)
+++ branches/proto/v3/libs/wave/doc/compiletime_config.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -131,6 +131,21 @@
     </p>
       </td>
   </tr>
+ <tr>
+ <td class="table_cells">
+ <code>BOOST_WAVE_SUPPORT_THREADING</code></td>
+ <td class="table_cells">
+ <p>This preprocessor constant allows to configer whether the Wave library will be built
+ with threading support enabled or not. This value (if defined) should be set to
+ zero ('0') if threading needs to be disabled and to a numerical value not equal
+ to zero, if threading should be enabled explicitely.
+ </p>
+ <p>
+ If this constant is not defined, the Wave library will be built using the threading
+ as picked up from the Boost build environment (see <code>BOOST_HAS_THREADS</code> in the Boost
+ configuration dosumentation).</p>
+ </td>
+ </tr>
 </table>
 <P dir="ltr"><b><a name="using_custom_lexer"></a>Using a different token type or lexer type in conjunction with Wave </b></P>
 <P dir="ltr">It is possible to use the <tt>Wave</tt> library while using your own token and/or lexer types. This may be achieved by providing your lexer type as the second template parameter while instantiating the <tt>boost::wave::context&lt;&gt;</tt> object. The token type used by the library is derived from the <tt>token_type</tt> typedef to be provided by the lexer type. If you want to provide your own token type only, you may use the <tt>boost::wave::lex_iterator&lt;&gt;</tt> type contained with the library. This type needs to be parametrized with the token type to use. </P>
@@ -224,12 +239,12 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>
 <p class="copyright"><span class="updated">Last updated:
- <!-- #BeginDate format:fcAm1m -->Wednesday, July 4, 2007 13:21<!-- #EndDate -->
+ <!-- #BeginDate format:fcAm1m -->Wednesday, January 31, 2008 16:50<!-- #EndDate -->
 </span></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/wave/doc/introduction.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/introduction.html (original)
+++ branches/proto/v3/libs/wave/doc/introduction.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -82,7 +82,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/macro_expansion_process.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/macro_expansion_process.html (original)
+++ branches/proto/v3/libs/wave/doc/macro_expansion_process.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -88,7 +88,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/predefined_macros.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/predefined_macros.html (original)
+++ branches/proto/v3/libs/wave/doc/predefined_macros.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -167,7 +167,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/preface.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/preface.html (original)
+++ branches/proto/v3/libs/wave/doc/preface.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -98,7 +98,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/quickstart.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/quickstart.html (original)
+++ branches/proto/v3/libs/wave/doc/quickstart.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -110,7 +110,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/references.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/references.html (original)
+++ branches/proto/v3/libs/wave/doc/references.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -89,7 +89,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/samples.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/samples.html (original)
+++ branches/proto/v3/libs/wave/doc/samples.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -103,7 +103,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
     <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/supported_pragmas.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/supported_pragmas.html (original)
+++ branches/proto/v3/libs/wave/doc/supported_pragmas.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -129,7 +129,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/doc/token_ids.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/token_ids.html (original)
+++ branches/proto/v3/libs/wave/doc/token_ids.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -234,11 +234,6 @@
     <td class="table_cells" width="29%" ><code>default</code></td>
   </tr>
   <tr>
- <td class="table_cells" width="40%" > <p>T_DEFINED </p></td>
- <td class="table_cells" width="31%" > <p>KeywordTokenType</p></td>
- <td class="table_cells" width="29%" ><code>defined</code></td>
- </tr>
- <tr>
     <td class="table_cells" width="40%" > <p>T_DELETE </p></td>
     <td class="table_cells" width="31%" > <p>KeywordTokenType</p></td>
     <td class="table_cells" width="29%" ><code>delete</code></td>
@@ -970,12 +965,12 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
   <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>
 <p class="copyright"><span class="updated">Last updated:
- <!-- #BeginDate format:fcAm1m -->Sunday, May 15, 2005 12:23<!-- #EndDate -->
+ <!-- #BeginDate format:fcAm1m -->Friday, January 18, 2008 11:35<!-- #EndDate -->
   </span></p>
 </body>
 </html>

Modified: branches/proto/v3/libs/wave/doc/tracing_facility.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/tracing_facility.html (original)
+++ branches/proto/v3/libs/wave/doc/tracing_facility.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -149,7 +149,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <p class="copyright"><span class="updated">Last updated:

Modified: branches/proto/v3/libs/wave/doc/wave_driver.html
==============================================================================
--- branches/proto/v3/libs/wave/doc/wave_driver.html (original)
+++ branches/proto/v3/libs/wave/doc/wave_driver.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -268,7 +268,7 @@
   </tr>
 </table>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/index.html
==============================================================================
--- branches/proto/v3/libs/wave/index.html (original)
+++ branches/proto/v3/libs/wave/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -99,7 +99,7 @@
 </table>
 <br>
 <hr size="1">
-<p class="copyright">Copyright &copy; 2003-2007 Hartmut Kaiser<br>
+<p class="copyright">Copyright &copy; 2003-2008 Hartmut Kaiser<br>
   <br>
 <font size="2">Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) </font> </p>
 <span class="updated"></span>

Modified: branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.cpp (original)
+++ branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.hpp (original)
+++ branches/proto/v3/libs/wave/samples/advanced_hooks/advanced_hooks.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/advanced_hooks/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/advanced_hooks/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/advanced_hooks/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.cpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,7 +8,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,7 +8,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens_config.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens_config.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/cpp_tokens_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
         
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_exprgrammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_exprgrammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_exprgrammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,7 +7,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_literalgrs.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_literalgrs.cpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_cpp_literalgrs.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_defined_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_defined_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_defined_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_slex_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_slex_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/instantiate_slex_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/slex/cpp_slex_lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -271,7 +271,6 @@
     TOKEN_DATA(CONSTCAST, "const_cast"),
     TOKEN_DATA(CONTINUE, "continue"),
     TOKEN_DATA(DEFAULT, "default"),
-// TOKEN_DATA(DEFINED, "defined"),
     TOKEN_DATA(DELETE, "delete"),
     TOKEN_DATA(DO, "do"),
     TOKEN_DATA(DOUBLE, "double"),

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/slex/lexer.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/slex/lexer.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/slex/lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
     http://www.boost.org/
 
     Copyright (c) 2001, Daniel C. Nuffer.
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/slex_interface.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/slex_interface.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/slex_interface.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/slex_iterator.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/slex_iterator.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/slex_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -56,7 +56,7 @@
             boost::wave::language_support language)
     : functor_ptr(slex_input_interface<TokenT>
             ::new_lexer(first, last, pos, language))
-#if 0 != __DECCXX_VER || BOOST_WORKAROUND(BOOST_INTEL_LINUX, == 910)
+#if 0 != __DECCXX_VER || BOOST_WORKAROUND(BOOST_INTEL_LINUX, == 1010)
       , eof()
 #endif // 0 != __DECCXX_VER
     {}

Modified: branches/proto/v3/libs/wave/samples/cpp_tokens/slex_token.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/cpp_tokens/slex_token.hpp (original)
+++ branches/proto/v3/libs/wave/samples/cpp_tokens/slex_token.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -14,6 +14,7 @@
 #define SLEX_TOKEN_HPP_53A13BD2_FBAA_444B_9B8B_FCB225C2BBA8_INCLUDED
 
 #include <iomanip>
+#include <ios>
 
 #include <boost/wave/wave_config.hpp>
 #include <boost/wave/token_ids.hpp>
@@ -82,11 +83,13 @@
     {
         using namespace std;
         using namespace boost::wave;
- stream << setw(16) << left << boost::wave::get_token_name(id) << " ("
+
+ stream << std::setw(16)
+ << std::left << boost::wave::get_token_name(id) << " ("
             << "#" << token_id(ID_FROM_TOKEN(*this))
             << ") at " << get_position().get_file() << " ("
- << setw(3) << right << get_position().get_line() << "/"
- << setw(2) << right << get_position().get_column()
+ << std::setw(3) << std::right << get_position().get_line() << "/"
+ << std::setw(2) << std::right << get_position().get_column()
             << "): >";
             
         for (std::size_t i = 0; i < value.size(); ++i) {

Modified: branches/proto/v3/libs/wave/samples/hannibal/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/hannibal/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/hannibal/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/hannibal/hannibal.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/hannibal/hannibal.cpp (original)
+++ branches/proto/v3/libs/wave/samples/hannibal/hannibal.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // Copyright (c) 2005-2006 Danny Havenith
 //
 // Boost.Wave: A Standard compliant C++ preprocessor
-// Copyright (c) 2001-2007 Hartmut Kaiser
+// Copyright (c) 2001-2008 Hartmut Kaiser
 //
 // http://www.boost.org/
 //

Modified: branches/proto/v3/libs/wave/samples/hannibal/translation_unit_parser.h
==============================================================================
--- branches/proto/v3/libs/wave/samples/hannibal/translation_unit_parser.h (original)
+++ branches/proto/v3/libs/wave/samples/hannibal/translation_unit_parser.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // Copyright (c) 2005-2006 Danny Havenith
 //
 // Boost.Wave: A Standard compliant C++ preprocessor
-// Copyright (c) 2001-2007 Hartmut Kaiser
+// Copyright (c) 2001-2008 Hartmut Kaiser
 //
 // http://www.boost.org/
 //

Modified: branches/proto/v3/libs/wave/samples/hannibal/translation_unit_skipper.h
==============================================================================
--- branches/proto/v3/libs/wave/samples/hannibal/translation_unit_skipper.h (original)
+++ branches/proto/v3/libs/wave/samples/hannibal/translation_unit_skipper.h 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 // Copyright (c) 2005-2006 Danny Havenith
 //
 // Boost.Wave: A Standard compliant C++ preprocessor
-// Copyright (c) 2001-2007 Hartmut Kaiser
+// Copyright (c) 2001-2008 Hartmut Kaiser
 //
 // http://www.boost.org/
 //

Modified: branches/proto/v3/libs/wave/samples/lexed_tokens/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/lexed_tokens/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/lexed_tokens/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/lexed_tokens/lexed_tokens.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/lexed_tokens/lexed_tokens.cpp (original)
+++ branches/proto/v3/libs/wave/samples/lexed_tokens/lexed_tokens.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_exprgrammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_exprgrammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_exprgrammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,7 +7,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_literalgrs.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_literalgrs.cpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/instantiate_cpp_literalgrs.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/instantiate_defined_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/instantiate_defined_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/instantiate_defined_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/instantiate_lexertl_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/instantiate_lexertl_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/instantiate_lexertl_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/lexertl/lexertl_lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_config.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_config.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_tables.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_tables.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/lexertl/wave_lexertl_tables.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/lexertl_interface.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/lexertl_interface.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/lexertl_interface.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/lexertl_iterator.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/lexertl_iterator.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/lexertl_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/list_includes.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/list_includes.cpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/list_includes.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,7 +11,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/list_includes.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/list_includes.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/list_includes.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
         
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/list_includes_config.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/list_includes_config.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/list_includes_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/list_includes/list_includes_version.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/list_includes/list_includes_version.hpp (original)
+++ branches/proto/v3/libs/wave/samples/list_includes/list_includes_version.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
             
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/quick_start/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/quick_start/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/quick_start/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/quick_start/quick_start.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/quick_start/quick_start.cpp (original)
+++ branches/proto/v3/libs/wave/samples/quick_start/quick_start.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/real_positions/correct_token_positions.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/correct_token_positions.hpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/correct_token_positions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_exprgrammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_exprgrammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_exprgrammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_literalgrs.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_literalgrs.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/instantiate_cpp_literalgrs.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/instantiate_defined_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/instantiate_defined_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/instantiate_defined_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer_str.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer_str.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/instantiate_re2c_lexer_str.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/real_position_token.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/real_position_token.hpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/real_position_token.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/real_positions/real_positions.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/real_positions/real_positions.cpp (original)
+++ branches/proto/v3/libs/wave/samples/real_positions/real_positions.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,7 +7,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/token_statistics/collect_token_statistics.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/collect_token_statistics.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/collect_token_statistics.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
             
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/instantiate_cpp_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/instantiate_cpp_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/instantiate_cpp_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
             
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/instantiate_defined_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/instantiate_defined_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/instantiate_defined_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/instantiate_xlex_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/instantiate_xlex_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/instantiate_xlex_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.cpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/token_statistics.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
         
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/token_statistics_version.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/token_statistics_version.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/token_statistics_version.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
             
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/xlex/xlex_lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/xlex/xpressive_lexer.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/xlex/xpressive_lexer.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/xlex/xpressive_lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/xlex_interface.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/xlex_interface.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/xlex_interface.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/token_statistics/xlex_iterator.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/token_statistics/xlex_iterator.hpp (original)
+++ branches/proto/v3/libs/wave/samples/token_statistics/xlex_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/samples/waveidl/idl.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idl.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idl.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -91,7 +91,7 @@
         "Based on: Wave, A Standard conformant C++ preprocessor library",
         "It is hosted by http://www.boost.org/.",
         "",
- "Copyright (c) 2001-2007 Hartmut Kaiser, Distributed under the Boost",
+ "Copyright (c) 2001-2008 Hartmut Kaiser, Distributed under the Boost",
         "Software License, Version 1.0. (See accompanying file",
         "LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)",
         0

Modified: branches/proto/v3/libs/wave/samples/waveidl/idl.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idl.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idl.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idl_config.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idl_config.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idl_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idl_version.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idl_version.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idl_version.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl.re
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl.re (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl.re 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_interface.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_interface.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_interface.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_iterator.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_iterator.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_lex_iterator.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,7 +7,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/idllexer/idl_re2c_lexer.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/instantiate_cpp_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/instantiate_cpp_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/instantiate_cpp_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
             
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/instantiate_defined_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/instantiate_defined_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/instantiate_defined_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/instantiate_predef_macros.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/instantiate_predef_macros.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/instantiate_predef_macros.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer_str.cpp
==============================================================================
--- branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer_str.cpp (original)
+++ branches/proto/v3/libs/wave/samples/waveidl/instantiate_re2c_lexer_str.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,7 +6,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/cpplexer/re2clex/aq.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/cpplexer/re2clex/aq.cpp (original)
+++ branches/proto/v3/libs/wave/src/cpplexer/re2clex/aq.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
     http://www.boost.org/
 
     Copyright (c) 2001 Daniel C. Nuffer.
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp.re
==============================================================================
--- branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp.re (original)
+++ branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp.re 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.cpp (original)
+++ branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.inc
==============================================================================
--- branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.inc (original)
+++ branches/proto/v3/libs/wave/src/cpplexer/re2clex/cpp_re.inc 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp.re
==============================================================================
--- branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp.re (original)
+++ branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp.re 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc
==============================================================================
--- branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc (original)
+++ branches/proto/v3/libs/wave/src/cpplexer/re2clex/strict_cpp_re.inc 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
 
     Copyright (c) 2001 Daniel C. Nuffer
- Copyright (c) 2001-2007 Hartmut Kaiser.
+ Copyright (c) 2001-2008 Hartmut Kaiser.
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/src/instantiate_cpp_exprgrammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_cpp_exprgrammar.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_cpp_exprgrammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/instantiate_cpp_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_cpp_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_cpp_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/instantiate_cpp_literalgrs.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_cpp_literalgrs.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_cpp_literalgrs.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/instantiate_defined_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_defined_grammar.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_defined_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/instantiate_predef_macros.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_predef_macros.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_predef_macros.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/instantiate_re2c_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_re2c_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_re2c_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/instantiate_re2c_lexer_str.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/instantiate_re2c_lexer_str.cpp (original)
+++ branches/proto/v3/libs/wave/src/instantiate_re2c_lexer_str.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/src/token_ids.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/token_ids.cpp (original)
+++ branches/proto/v3/libs/wave/src/token_ids.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -100,113 +100,112 @@
     /* 316 */ "CONSTCAST",
     /* 317 */ "CONTINUE",
     /* 318 */ "DEFAULT",
- /* 319 */ "DEFINED",
- /* 320 */ "DELETE",
- /* 321 */ "DO",
- /* 322 */ "DOUBLE",
- /* 323 */ "DYNAMICCAST",
- /* 324 */ "ELSE",
- /* 325 */ "ENUM",
- /* 326 */ "EXPLICIT",
- /* 327 */ "EXPORT",
- /* 328 */ "EXTERN",
- /* 329 */ "FLOAT",
- /* 330 */ "FOR",
- /* 331 */ "FRIEND",
- /* 332 */ "GOTO",
- /* 333 */ "IF",
- /* 334 */ "INLINE",
- /* 335 */ "INT",
- /* 336 */ "LONG",
- /* 337 */ "MUTABLE",
- /* 338 */ "NAMESPACE",
- /* 339 */ "NEW",
- /* 340 */ "OPERATOR",
- /* 341 */ "PRIVATE",
- /* 342 */ "PROTECTED",
- /* 343 */ "PUBLIC",
- /* 344 */ "REGISTER",
- /* 345 */ "REINTERPRETCAST",
- /* 346 */ "RETURN",
- /* 347 */ "SHORT",
- /* 348 */ "SIGNED",
- /* 349 */ "SIZEOF",
- /* 350 */ "STATIC",
- /* 351 */ "STATICCAST",
- /* 352 */ "STRUCT",
- /* 353 */ "SWITCH",
- /* 354 */ "TEMPLATE",
- /* 355 */ "THIS",
- /* 356 */ "THROW",
- /* 357 */ "TRY",
- /* 358 */ "TYPEDEF",
- /* 359 */ "TYPEID",
- /* 360 */ "TYPENAME",
- /* 361 */ "UNION",
- /* 362 */ "UNSIGNED",
- /* 363 */ "USING",
- /* 364 */ "VIRTUAL",
- /* 365 */ "VOID",
- /* 366 */ "VOLATILE",
- /* 367 */ "WCHART",
- /* 368 */ "WHILE",
- /* 369 */ "PP_DEFINE",
- /* 370 */ "PP_IF",
- /* 371 */ "PP_IFDEF",
- /* 372 */ "PP_IFNDEF",
- /* 373 */ "PP_ELSE",
- /* 374 */ "PP_ELIF",
- /* 375 */ "PP_ENDIF",
- /* 376 */ "PP_ERROR",
- /* 377 */ "PP_LINE",
- /* 378 */ "PP_PRAGMA",
- /* 379 */ "PP_UNDEF",
- /* 380 */ "PP_WARNING",
- /* 381 */ "IDENTIFIER",
- /* 382 */ "OCTALINT",
- /* 383 */ "DECIMALINT",
- /* 384 */ "HEXAINT",
- /* 385 */ "INTLIT",
- /* 386 */ "LONGINTLIT",
- /* 387 */ "FLOATLIT",
- /* 388 */ "CCOMMENT",
- /* 389 */ "CPPCOMMENT",
- /* 390 */ "CHARLIT",
- /* 391 */ "STRINGLIT",
- /* 392 */ "CONTLINE",
- /* 393 */ "SPACE",
- /* 394 */ "SPACE2",
- /* 395 */ "NEWLINE",
- /* 396 */ "POUND_POUND",
- /* 397 */ "POUND",
- /* 398 */ "ANY",
- /* 399 */ "PP_INCLUDE",
- /* 400 */ "PP_QHEADER",
- /* 401 */ "PP_HHEADER",
- /* 402 */ "EOF",
- /* 403 */ "EOI",
- /* 404 */ "PP_NUMBER",
+ /* 319 */ "DELETE",
+ /* 320 */ "DO",
+ /* 321 */ "DOUBLE",
+ /* 322 */ "DYNAMICCAST",
+ /* 323 */ "ELSE",
+ /* 324 */ "ENUM",
+ /* 325 */ "EXPLICIT",
+ /* 326 */ "EXPORT",
+ /* 327 */ "EXTERN",
+ /* 328 */ "FLOAT",
+ /* 329 */ "FOR",
+ /* 330 */ "FRIEND",
+ /* 331 */ "GOTO",
+ /* 332 */ "IF",
+ /* 333 */ "INLINE",
+ /* 334 */ "INT",
+ /* 335 */ "LONG",
+ /* 336 */ "MUTABLE",
+ /* 337 */ "NAMESPACE",
+ /* 338 */ "NEW",
+ /* 339 */ "OPERATOR",
+ /* 340 */ "PRIVATE",
+ /* 341 */ "PROTECTED",
+ /* 342 */ "PUBLIC",
+ /* 343 */ "REGISTER",
+ /* 344 */ "REINTERPRETCAST",
+ /* 345 */ "RETURN",
+ /* 346 */ "SHORT",
+ /* 347 */ "SIGNED",
+ /* 348 */ "SIZEOF",
+ /* 349 */ "STATIC",
+ /* 350 */ "STATICCAST",
+ /* 351 */ "STRUCT",
+ /* 352 */ "SWITCH",
+ /* 353 */ "TEMPLATE",
+ /* 354 */ "THIS",
+ /* 355 */ "THROW",
+ /* 356 */ "TRY",
+ /* 357 */ "TYPEDEF",
+ /* 358 */ "TYPEID",
+ /* 359 */ "TYPENAME",
+ /* 360 */ "UNION",
+ /* 361 */ "UNSIGNED",
+ /* 362 */ "USING",
+ /* 363 */ "VIRTUAL",
+ /* 364 */ "VOID",
+ /* 365 */ "VOLATILE",
+ /* 366 */ "WCHART",
+ /* 367 */ "WHILE",
+ /* 368 */ "PP_DEFINE",
+ /* 369 */ "PP_IF",
+ /* 370 */ "PP_IFDEF",
+ /* 371 */ "PP_IFNDEF",
+ /* 372 */ "PP_ELSE",
+ /* 373 */ "PP_ELIF",
+ /* 374 */ "PP_ENDIF",
+ /* 375 */ "PP_ERROR",
+ /* 376 */ "PP_LINE",
+ /* 377 */ "PP_PRAGMA",
+ /* 378 */ "PP_UNDEF",
+ /* 379 */ "PP_WARNING",
+ /* 380 */ "IDENTIFIER",
+ /* 381 */ "OCTALINT",
+ /* 382 */ "DECIMALINT",
+ /* 383 */ "HEXAINT",
+ /* 384 */ "INTLIT",
+ /* 385 */ "LONGINTLIT",
+ /* 386 */ "FLOATLIT",
+ /* 387 */ "CCOMMENT",
+ /* 388 */ "CPPCOMMENT",
+ /* 389 */ "CHARLIT",
+ /* 390 */ "STRINGLIT",
+ /* 391 */ "CONTLINE",
+ /* 392 */ "SPACE",
+ /* 393 */ "SPACE2",
+ /* 394 */ "NEWLINE",
+ /* 395 */ "POUND_POUND",
+ /* 396 */ "POUND",
+ /* 397 */ "ANY",
+ /* 398 */ "PP_INCLUDE",
+ /* 399 */ "PP_QHEADER",
+ /* 400 */ "PP_HHEADER",
+ /* 401 */ "EOF",
+ /* 402 */ "EOI",
+ /* 403 */ "PP_NUMBER",
 
               // MS extensions
- /* 405 */ "MSEXT_INT8",
- /* 406 */ "MSEXT_INT16",
- /* 407 */ "MSEXT_INT32",
- /* 408 */ "MSEXT_INT64",
- /* 409 */ "MSEXT_BASED",
- /* 410 */ "MSEXT_DECLSPEC",
- /* 411 */ "MSEXT_CDECL",
- /* 412 */ "MSEXT_FASTCALL",
- /* 413 */ "MSEXT_STDCALL",
- /* 414 */ "MSEXT_TRY",
- /* 415 */ "MSEXT_EXCEPT",
- /* 416 */ "MSEXT_FINALLY",
- /* 417 */ "MSEXT_LEAVE",
- /* 418 */ "MSEXT_INLINE",
- /* 419 */ "MSEXT_ASM",
- /* 420 */ "MSEXT_REGION",
- /* 421 */ "MSEXT_ENDREGION",
+ /* 404 */ "MSEXT_INT8",
+ /* 405 */ "MSEXT_INT16",
+ /* 406 */ "MSEXT_INT32",
+ /* 407 */ "MSEXT_INT64",
+ /* 408 */ "MSEXT_BASED",
+ /* 409 */ "MSEXT_DECLSPEC",
+ /* 410 */ "MSEXT_CDECL",
+ /* 411 */ "MSEXT_FASTCALL",
+ /* 412 */ "MSEXT_STDCALL",
+ /* 413 */ "MSEXT_TRY",
+ /* 414 */ "MSEXT_EXCEPT",
+ /* 415 */ "MSEXT_FINALLY",
+ /* 416 */ "MSEXT_LEAVE",
+ /* 417 */ "MSEXT_INLINE",
+ /* 418 */ "MSEXT_ASM",
+ /* 419 */ "MSEXT_REGION",
+ /* 420 */ "MSEXT_ENDREGION",
     
- /* 422 */ "IMPORT",
+ /* 421 */ "IMPORT",
     };
 
     // make sure, I have not forgotten any commas (as I did more than once)
@@ -291,113 +290,112 @@
     /* 316 */ "const_cast",
     /* 317 */ "continue",
     /* 318 */ "default",
- /* 319 */ "defined",
- /* 320 */ "delete",
- /* 321 */ "do",
- /* 322 */ "double",
- /* 323 */ "dynamic_cast",
- /* 324 */ "else",
- /* 325 */ "enum",
- /* 326 */ "explicit",
- /* 327 */ "export",
- /* 328 */ "extern",
- /* 329 */ "float",
- /* 330 */ "for",
- /* 331 */ "friend",
- /* 332 */ "goto",
- /* 333 */ "if",
- /* 334 */ "inline",
- /* 335 */ "int",
- /* 336 */ "long",
- /* 337 */ "mutable",
- /* 338 */ "namespace",
- /* 339 */ "new",
- /* 340 */ "operator",
- /* 341 */ "private",
- /* 342 */ "protected",
- /* 343 */ "public",
- /* 344 */ "register",
- /* 345 */ "reinterpret_cast",
- /* 346 */ "return",
- /* 347 */ "short",
- /* 348 */ "signed",
- /* 349 */ "sizeof",
- /* 350 */ "static",
- /* 351 */ "static_cast",
- /* 352 */ "struct",
- /* 353 */ "switch",
- /* 354 */ "template",
- /* 355 */ "this",
- /* 356 */ "throw",
- /* 357 */ "try",
- /* 358 */ "typedef",
- /* 359 */ "typeid",
- /* 360 */ "typename",
- /* 361 */ "union",
- /* 362 */ "unsigned",
- /* 363 */ "using",
- /* 364 */ "virtual",
- /* 365 */ "void",
- /* 366 */ "volatile",
- /* 367 */ "wchar_t",
- /* 368 */ "while",
- /* 369 */ "#define",
- /* 370 */ "#if",
- /* 371 */ "#ifdef",
- /* 372 */ "#ifndef",
- /* 373 */ "#else",
- /* 374 */ "#elif",
- /* 375 */ "#endif",
- /* 376 */ "#error",
- /* 377 */ "#line",
- /* 378 */ "#pragma",
- /* 379 */ "#undef",
- /* 380 */ "#warning",
- /* 381 */ "", // identifier
- /* 382 */ "", // octalint
- /* 383 */ "", // decimalint
- /* 384 */ "", // hexlit
- /* 385 */ "", // intlit
- /* 386 */ "", // longintlit
- /* 387 */ "", // floatlit
- /* 388 */ "", // ccomment
- /* 389 */ "", // cppcomment
- /* 390 */ "", // charlit
- /* 391 */ "", // stringlit
- /* 392 */ "", // contline
- /* 393 */ "", // space
- /* 394 */ "", // space2
- /* 395 */ "\n",
- /* 396 */ "##",
- /* 397 */ "#",
- /* 398 */ "", // any
+ /* 319 */ "delete",
+ /* 320 */ "do",
+ /* 321 */ "double",
+ /* 322 */ "dynamic_cast",
+ /* 323 */ "else",
+ /* 324 */ "enum",
+ /* 325 */ "explicit",
+ /* 326 */ "export",
+ /* 327 */ "extern",
+ /* 328 */ "float",
+ /* 329 */ "for",
+ /* 330 */ "friend",
+ /* 331 */ "goto",
+ /* 332 */ "if",
+ /* 333 */ "inline",
+ /* 334 */ "int",
+ /* 335 */ "long",
+ /* 336 */ "mutable",
+ /* 337 */ "namespace",
+ /* 338 */ "new",
+ /* 339 */ "operator",
+ /* 340 */ "private",
+ /* 341 */ "protected",
+ /* 342 */ "public",
+ /* 343 */ "register",
+ /* 344 */ "reinterpret_cast",
+ /* 345 */ "return",
+ /* 346 */ "short",
+ /* 347 */ "signed",
+ /* 348 */ "sizeof",
+ /* 349 */ "static",
+ /* 350 */ "static_cast",
+ /* 351 */ "struct",
+ /* 352 */ "switch",
+ /* 353 */ "template",
+ /* 354 */ "this",
+ /* 355 */ "throw",
+ /* 356 */ "try",
+ /* 357 */ "typedef",
+ /* 358 */ "typeid",
+ /* 359 */ "typename",
+ /* 360 */ "union",
+ /* 361 */ "unsigned",
+ /* 362 */ "using",
+ /* 363 */ "virtual",
+ /* 364 */ "void",
+ /* 365 */ "volatile",
+ /* 366 */ "wchar_t",
+ /* 367 */ "while",
+ /* 368 */ "#define",
+ /* 369 */ "#if",
+ /* 370 */ "#ifdef",
+ /* 371 */ "#ifndef",
+ /* 372 */ "#else",
+ /* 373 */ "#elif",
+ /* 374 */ "#endif",
+ /* 375 */ "#error",
+ /* 376 */ "#line",
+ /* 377 */ "#pragma",
+ /* 378 */ "#undef",
+ /* 379 */ "#warning",
+ /* 380 */ "", // identifier
+ /* 381 */ "", // octalint
+ /* 382 */ "", // decimalint
+ /* 383 */ "", // hexlit
+ /* 384 */ "", // intlit
+ /* 385 */ "", // longintlit
+ /* 386 */ "", // floatlit
+ /* 387 */ "", // ccomment
+ /* 388 */ "", // cppcomment
+ /* 389 */ "", // charlit
+ /* 390 */ "", // stringlit
+ /* 391 */ "", // contline
+ /* 392 */ "", // space
+ /* 393 */ "", // space2
+ /* 394 */ "\n",
+ /* 395 */ "##",
+ /* 396 */ "#",
+ /* 397 */ "", // any
+ /* 398 */ "#include",
     /* 399 */ "#include",
     /* 400 */ "#include",
- /* 401 */ "#include",
- /* 402 */ "", // eof
- /* 403 */ "", // eoi
- /* 404 */ "", // pp-number
+ /* 401 */ "", // eof
+ /* 402 */ "", // eoi
+ /* 403 */ "", // pp-number
 
               // MS extensions
- /* 405 */ "__int8",
- /* 406 */ "__int16",
- /* 407 */ "__int32",
- /* 408 */ "__int64",
- /* 409 */ "__based",
- /* 410 */ "__declspec",
- /* 411 */ "__cdecl",
- /* 412 */ "__fastcall",
- /* 413 */ "__stdcall",
- /* 414 */ "__try",
- /* 415 */ "__except",
- /* 416 */ "__finally",
- /* 417 */ "__leave",
- /* 418 */ "__inline",
- /* 419 */ "__asm",
- /* 420 */ "#region",
- /* 421 */ "#endregion",
-
- /* 422 */ "import",
+ /* 404 */ "__int8",
+ /* 405 */ "__int16",
+ /* 406 */ "__int32",
+ /* 407 */ "__int64",
+ /* 408 */ "__based",
+ /* 409 */ "__declspec",
+ /* 410 */ "__cdecl",
+ /* 411 */ "__fastcall",
+ /* 412 */ "__stdcall",
+ /* 413 */ "__try",
+ /* 414 */ "__except",
+ /* 415 */ "__finally",
+ /* 416 */ "__leave",
+ /* 417 */ "__inline",
+ /* 418 */ "__asm",
+ /* 419 */ "#region",
+ /* 420 */ "#endregion",
+
+ /* 421 */ "import",
     };
      
     // make sure, I have not forgotten any commas (as I did more than once)

Modified: branches/proto/v3/libs/wave/src/wave_config_constant.cpp
==============================================================================
--- branches/proto/v3/libs/wave/src/wave_config_constant.cpp (original)
+++ branches/proto/v3/libs/wave/src/wave_config_constant.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/wave/test/build/Jamfile.v2 (original)
+++ branches/proto/v3/libs/wave/test/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testlexers/cpp_tokens.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testlexers/cpp_tokens.hpp (original)
+++ branches/proto/v3/libs/wave/test/testlexers/cpp_tokens.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testlexers/test_lexertl_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testlexers/test_lexertl_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/test/testlexers/test_lexertl_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testlexers/test_re2c_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testlexers/test_re2c_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/test/testlexers/test_re2c_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testlexers/test_slex_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testlexers/test_slex_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/test/testlexers/test_slex_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testlexers/test_xlex_lexer.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testlexers/test_xlex_lexer.cpp (original)
+++ branches/proto/v3/libs/wave/test/testlexers/test_xlex_lexer.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/cmd_line_utils.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/cmd_line_utils.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/cmd_line_utils.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_005.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_005.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_005.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_006.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_006.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_006.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_007.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_007.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_007.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_008.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_008.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_008.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_009.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_009.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_009.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_010.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_010.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_010.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_011.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_011.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_011.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -15,5 +15,5 @@
 
 ID( MACRO(*) )
 //R #line 19 "t_1_011.cpp"
-//R XMACRO( * )
+//R XMACRO(*)
 CAT( MACRO(*) )

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_012.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_012.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_012.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_013.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_013.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_013.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_014.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_014.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_014.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_015.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_015.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_015.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_016.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_016.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_016.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_017.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_017.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_017.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_018.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_018.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_018.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_019.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_019.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_019.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_020.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_020.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_020.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_021.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_021.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_021.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_022.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_022.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_022.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_023.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_023.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_023.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_024.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_024.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_024.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_025.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_025.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_025.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_026.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_026.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_026.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_027.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_027.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_027.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_028.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_028.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_028.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_029.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_029.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_029.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_030.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_030.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_030.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_031.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_031.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_031.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_032.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_032.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_032.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_033.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_033.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_033.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_034.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_034.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_034.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_035.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_035.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_035.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_036.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_036.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_036.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_037.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_037.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_1_037.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_005.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_005.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_005.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_006.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_006.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_006.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_007.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_007.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_007.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_008.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_008.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_008.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_009.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_009.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_009.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_010.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_010.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_010.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_011.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_011.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_011.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_012.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_012.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_012.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_013.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_013.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_013.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_014.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_014.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_014.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_015.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_015.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_015.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_016.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_016.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_016.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_017.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_017.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_2_017.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_3_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_4_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -28,7 +28,7 @@
 // 1.3: Any sequence other than above 9 is not a trigraph sequence.
 //R #line 30 "t_5_001.cpp"
 "?? ??? ??% ??^ ???=" //R "?? ??? ??% ??^ ?#"
-?? ??? ??% ??^ ???= //R ? ? ? ? ? ? ? % ? ? ^ ? #
+?? ??? ??% ??^ ???= //R ? ? ? ? ? ? ?% ? ?^ ?#
 
 /*-
  * Copyright (c) 1998, 2002-2005 Kiyoshi Matsui <kmatsui_at_[hidden]>

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_005.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_005.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_005.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_006.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_006.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_006.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_007.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_008.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_008.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_008.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_009.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_009.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_009.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_010.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_010.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_010.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_011.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_011.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_011.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_012.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_012.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_012.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_013.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_013.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_013.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_014.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_014.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_014.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_015.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_015.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_015.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_016.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_016.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_016.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_017.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_017.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_017.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_018.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_018.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_018.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_019.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_019.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_019.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_020.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_020.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_020.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_021.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_021.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_021.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_022.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_022.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_022.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_023.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_023.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_023.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_024.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_024.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_024.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_025.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_025.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_025.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_026.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_026.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_026.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_027.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_027.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_027.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_028.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_028.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_028.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_029.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_029.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_029.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_030.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_030.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_030.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_031.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_032.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_032.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_032.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_033.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_033.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_033.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_034.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_034.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_034.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_01.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_01.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_01.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_02.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_02.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_02.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_03.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_03.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_03.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_04.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_04.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_04.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_05.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_05.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_05.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_06.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_06.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_06.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_07.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_07.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_07.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_08.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_08.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_08.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_09.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_09.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_09.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_10.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_10.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_10.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_11.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_11.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_11.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_12.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_12.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_12.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_13.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_13.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_13.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_14.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_14.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_14.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_15.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_15.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_5_035_15.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_005.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_005.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_005.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_006.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_006.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_006.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_007.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_007.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_007.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_008.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_008.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_008.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_009.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_009.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_009.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_010.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_010.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_010.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_011.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_011.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_011.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_012.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_012.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_012.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_013.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_013.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_013.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_014.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_014.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_014.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_015.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_015.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_015.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_016.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_016.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_016.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_017.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_017.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_017.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_018.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_018.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_018.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_019.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_019.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_019.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_020.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_020.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_020.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_021.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_021.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_021.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_022.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_022.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_022.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_023.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_023.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_023.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_024.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_024.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_024.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_025.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_025.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_025.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_026.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_026.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_026.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_027.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_027.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_027.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_028.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_028.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_028.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_029.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_030.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_031.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_031.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_031.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_032.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_032.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_032.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_033.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_033.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_033.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_034.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_034.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_034.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_035.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_035.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_035.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_036.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_036.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_036.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_037.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_037.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_037.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_038.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_038.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_038.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_039.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_039.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_039.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_040.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_040.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_040.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_041.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_041.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_041.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_042.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_042.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_042.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_043.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_043.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_043.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_044.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_044.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_044.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_045.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_045.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_045.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_046.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_046.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_046.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_047.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_047.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_047.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_048.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_048.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_048.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_049.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_049.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_049.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_050.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_050.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_050.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_051.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_051.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_051.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_052.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_052.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_052.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_053.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_053.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_053.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_054.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_054.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_054.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_055.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_055.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_055.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_056.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_056.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_056.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_057.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_057.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_057.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_058.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_058.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_058.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_059.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_059.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_059.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_060.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_060.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_060.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_061.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_061.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_061.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_062.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_062.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_062.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_063.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_064.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_064.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_064.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_065.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_065.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_065.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_066.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_067.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_068.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_068.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_068.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_069.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_069.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_6_069.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_001.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_001.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_001.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_002.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_002.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_002.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_003.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_003.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_003.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -24,7 +24,7 @@
 X() 2 //R 1 2
 STRINGIZE( X() 2 ) //R "1 2"
 //R
-PLUS()MINUS() //R + -
+PLUS()MINUS() //R +-
 STRINGIZE( PLUS()MINUS() ) //R "+-"
 //R
 PLUS()PLUS() //R + +

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_004.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_004.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_004.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_005.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_005.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_005.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_006.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_006.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_006.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_007.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_007.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_007.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_008.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_008.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_008.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_009.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_009.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_009.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_010.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_010.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_010.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_011.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_011.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_011.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_012.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_012.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_012.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_013.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_013.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_013.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_014.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_014.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_014.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_015.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_015.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_015.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_016.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_017.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_017.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_017.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_018.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_018.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/t_9_018.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testfiles/test.cfg
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testfiles/test.cfg (original)
+++ branches/proto/v3/libs/wave/test/testwave/testfiles/test.cfg 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -223,3 +223,4 @@
 t_9_016.cpp
 t_9_017.cpp
 t_9_018.cpp
+t_9_019.cpp

Modified: branches/proto/v3/libs/wave/test/testwave/testwave.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testwave.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testwave.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testwave_app.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testwave_app.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testwave_app.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -435,7 +435,7 @@
         "Testwave: A test driver for the Boost.Wave C++ preprocessor library",
         "http://www.boost.org/",
         "",
- "Copyright (c) 2001-2007 Hartmut Kaiser, Distributed under the Boost",
+ "Copyright (c) 2001-2008 Hartmut Kaiser, Distributed under the Boost",
         "Software License, Version 1.0. (See accompanying file",
         "LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)",
         0

Modified: branches/proto/v3/libs/wave/test/testwave/testwave_app.hpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testwave_app.hpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testwave_app.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testwave_app_dll.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testwave_app_dll.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testwave_app_dll.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/wave/test/testwave/testwave_dll.cpp
==============================================================================
--- branches/proto/v3/libs/wave/test/testwave/testwave_dll.cpp (original)
+++ branches/proto/v3/libs/wave/test/testwave/testwave_dll.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/libs/xpressive/doc/acknowledgements.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/acknowledgements.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/acknowledgements.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -13,7 +13,8 @@
 static xpressive's syntax is owes a large debt to _spirit_, including the
 syntax for xpressive's semantic actions. I am thankful for
 [@http://boost.org/people/john_maddock.htm John Maddock]'s excellent work on
-his proposal to add regular expressions to the standard library. I'd also like
+his proposal to add regular expressions to the standard library, and for
+various ideas borrowed liberally from his regex implementation. I'd also like
 to thank [@http://moderncppdesign.com/ Andrei Alexandrescu] for his input
 regarding the behavior of nested regex objects, and
 [@http://boost.org/people/dave_abrahams.htm Dave Abrahams] for his suggestions

Modified: branches/proto/v3/libs/xpressive/doc/actions.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/actions.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/actions.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/concepts.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/concepts.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/concepts.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/dynamic_regexes.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/dynamic_regexes.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/dynamic_regexes.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/examples.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/examples.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/examples.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/grammars.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/grammars.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/grammars.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/history.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/history.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/history.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/installation.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/installation.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/installation.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/introduction.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/introduction.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/introduction.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/matching.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/matching.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/matching.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/nyi.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/nyi.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/nyi.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/perf.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/perf.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/perf.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/preface.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/preface.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/preface.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/quick_start.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/quick_start.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/quick_start.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/regexpp_diffs.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/regexpp_diffs.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/regexpp_diffs.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/results.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/results.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/results.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/static_regexes.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/static_regexes.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/static_regexes.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/substitutions.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/substitutions.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/substitutions.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/tips_n_tricks.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/tips_n_tricks.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/tips_n_tricks.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/tokenization.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/tokenization.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/tokenization.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/traits.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/traits.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/traits.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/doc/xpressive.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/doc/xpressive.qbk (original)
+++ branches/proto/v3/libs/xpressive/doc/xpressive.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/example/numbers.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/example/numbers.cpp (original)
+++ branches/proto/v3/libs/xpressive/example/numbers.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
-// main.hpp
+// numbers.cpp
 //
-// Copyright 2007 David Jenkins. Distributed under the Boost
+// Copyright 2008 David Jenkins. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -11,7 +11,7 @@
 #endif
 
 #include <iostream>
-#include <string>
+#include <string>
 #include <map>
 #include <boost/assign/list_of.hpp> // for 'map_list_of()'
 #include <boost/xpressive/xpressive.hpp>
@@ -34,20 +34,20 @@
     using namespace boost::assign;
 
     // initialize the maps for named numbers
- std::map< std::string, int > ones_map =
+ std::map< std::string, int > ones_map =
         map_list_of("one",1)("two",2)("three",3)("four",4)("five",5)
         ("six",6)("seven",7)("eight",8)("nine",9);
 
- std::map< std::string, int > teens_map =
+ std::map< std::string, int > teens_map =
         map_list_of("ten",10)("eleven",11)("twelve",12)("thirteen",13)
         ("fourteen",14)("fifteen",15)("sixteen",16)("seventeen",17)
         ("eighteen",18)("nineteen",19);
 
- std::map< std::string, int > tens_map =
+ std::map< std::string, int > tens_map =
         map_list_of("twenty",20)("thirty",30)("fourty",40)
         ("fifty",50)("sixty",60)("seventy",70)("eighty",80)("ninety",90);
 
- std::map< std::string, int > specials_map =
+ std::map< std::string, int > specials_map =
         map_list_of("zero",0)("dozen",12)("score",20);
 
     // n is the integer result
@@ -55,76 +55,70 @@
     // temp stores intermediate values
     local<long> temp(0);
 
- // delimiters between words must be spaces, end-of-sequence, or punctuation
- sregex delim =
- +_s | eos | +punct;
-
     // initialize the regular expressions for named numbers
- sregex ones_rx =
- ( a1 = ones_map ) [ n += a1 ] >> delim;
-
     sregex tens_rx =
- ones_rx
- |
+ // use skip directive to skip whitespace between words
+ skip(_s)
         (
- ( a1 = tens_map ) [ n += a1 ] >> delim
- >> !ones_rx
+ ( a3 = teens_map )
+ |
+ ( a2 = tens_map ) >> !( a1 = ones_map )
+ |
+ ( a1 = ones_map )
         )
- |
- ( ( a1 = teens_map ) [ n += a1 ] >> delim
- );
+ [ n += (a3|0) + (a2|0) + (a1|0) ];
 
     sregex hundreds_rx =
- ( ( tens_rx >> "hundred" >> delim )
- [ n *= 100 ]
- >> !tens_rx
- )
- | tens_rx;
-
- sregex thousands_rx =
- ( ( hundreds_rx >> "thousand" >> delim )
- [ temp += n * 1000, n = 0 ]
- >> !hundreds_rx
+ skip(_s)
+ (
+ tens_rx >>
+ !(
+ as_xpr("hundred") [ n *= 100 ]
+ >> !tens_rx
+ )
         )
- | hundreds_rx
         ;
 
- sregex millions_rx =
- ( ( hundreds_rx >> "million" >> delim )
- [ temp += n * 1000000, n = 0 ]
- >> !thousands_rx
+ sregex specials_rx = // regex for special number names like dozen
+ skip(_s)
+ (
+ // Note: this uses two attribues, a1 and a2, and it uses
+ // a default attribute value of 1 for a1.
+ ( !( a1 = ones_map ) >> ( a2 = specials_map ) )
+ [ n = (a1|1) * a2 ]
+ >> !( "and" >> tens_rx )
         )
- | thousands_rx;
+ ;
 
- // Note: this uses two attribues, a1 and a2, and it uses
- // a default attribute value of 1 for a1.
- sregex specials_rx =
- ( !((a1 = ones_map) >> delim) >> (a2 = specials_map) )
- [ n = (a1 | 1) * a2 ]
- >> delim
- >> !("and" >> +_s >> ones_rx);
-
- sregex number_rx =
- bow
- >>
- ( specials_rx
- |
- millions_rx
- [n += temp, temp = 0 ]
+ sregex number_rx =
+ bow
+ >>
+ skip(_s|punct)
+ (
+ specials_rx // special numbers
+ |
+ ( // normal numbers
+ !( hundreds_rx >> "million" ) [ temp += n * 1000000, n = 0 ]
+ >>
+ !( hundreds_rx >> "thousand" ) [ temp += n * 1000, n = 0 ]
+ >>
+ !hundreds_rx
+ )
+ [n += temp, temp = 0 ]
         );
 
     // this is the input string
     std::string str( "one two three eighteen twenty two "
- "nine hundred ninety nine twelve "
+ "nine hundred ninety nine twelve "
         "eight hundred sixty three thousand ninety five "
         "sixty five hundred ten "
         "two million eight hundred sixty three thousand ninety five "
         "zero sixty five hundred thousand "
- "extra stuff -- skip me "
+ "extra stuff "
         "two dozen "
- "four score and seven ");
+ "four score and seven");
 
- // the results of iterating through the string are:
+ // the MATCHING results of iterating through the string are:
     // one = 1
     // two = 2
     // three = 3
@@ -144,10 +138,20 @@
 
     for( ; cur != end; ++cur )
     {
- std::cout << *cur << " = " << n.get() << '\n';
+ if ((*cur).length() > 0)
+ std::cout << *cur << " = " << n.get() << '\n';
         n.get() = 0;
     }
     std::cout << '\n';
+ // the NON-MATCHING results of iterating through the string are:
+ // extra = unmatched
+ // stuff = unmatched
+ sregex_token_iterator cur2( str.begin(), str.end(), number_rx, -1 );
+ for( ; cur2 != end; ++cur2 )
+ {
+ if ((*cur2).length() > 0)
+ std::cout << *cur2 << " = unmatched" << '\n';
+ }
 }
 
 ///////////////////////////////////////////////////////////////////////////////

Modified: branches/proto/v3/libs/xpressive/proto/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -8,56 +8,55 @@
 
 wave-command = [ path.native ../../../../dist/bin/wave ] ;
 
-## Generate reference section using Doxygen
-#doxygen protodoc
-# :
-# ../../../../boost/xpressive/proto/args.hpp
-# ../../../../boost/xpressive/proto/context.hpp
-# ../../../../boost/xpressive/proto/debug.hpp
-# ../../../../boost/xpressive/proto/deep_copy.hpp
-# ../../../../boost/xpressive/proto/domain.hpp
-# ../../../../boost/xpressive/proto/eval.hpp
-# ../../../../boost/xpressive/proto/expr.hpp
-# ../../../../boost/xpressive/proto/extends.hpp
-# ../../../../boost/xpressive/proto/fusion.hpp
-# ../../../../boost/xpressive/proto/generate.hpp
-# ../../../../boost/xpressive/proto/literal.hpp
-# ../../../../boost/xpressive/proto/make_expr.hpp
-# ../../../../boost/xpressive/proto/matches.hpp
-# ../../../../boost/xpressive/proto/operators.hpp
-# ../../../../boost/xpressive/proto/proto.hpp
-# ../../../../boost/xpressive/proto/proto_fwd.hpp
-## ../../../../boost/xpressive/proto/proto_typeof.hpp
-# ../../../../boost/xpressive/proto/ref.hpp
-# ../../../../boost/xpressive/proto/tags.hpp
-# ../../../../boost/xpressive/proto/traits.hpp
-# ../../../../boost/xpressive/proto/transform.hpp
-# ../../../../boost/xpressive/proto/context/callable.hpp
-# ../../../../boost/xpressive/proto/context/default.hpp
-# ../../../../boost/xpressive/proto/context/null.hpp
-# ../../../../boost/xpressive/proto/transform/arg.hpp
-# ../../../../boost/xpressive/proto/transform/apply.hpp
-# ../../../../boost/xpressive/proto/transform/branch.hpp
-# ../../../../boost/xpressive/proto/transform/compose.hpp
-# ../../../../boost/xpressive/proto/transform/construct.hpp
-# ../../../../boost/xpressive/proto/transform/fold.hpp
-# ../../../../boost/xpressive/proto/transform/fold_tree.hpp
-# ../../../../boost/xpressive/proto/transform/function.hpp
-# ../../../../boost/xpressive/proto/transform/list.hpp
-# ../../../../boost/xpressive/proto/transform/pass_through.hpp
-# :
-# <doxygen:param>EXTRACT_ALL=YES
-# <doxygen:param>HIDE_UNDOC_MEMBERS=NO
-# # Use Boost.Wave to preprocess Proto's source
-# <doxygen:param>"INPUT_FILTER=\"$(wave-command) \\
-# -S ../../../.. \\
-# -S \\\"C:\\Program Files\\Microsoft Visual Studio .NET 2003\\vc7\\include\\\" \\
-# -D _WIN32 \\
-# -D BOOST_PROTO_DOXYGEN_INVOKED \\
-# -p 1 \""
-# # This ensures that Wave is actually built before we try to execute it
-# <dependency>../../../../tools/wave/build release
-# ;
+# Generate reference section using Doxygen
+doxygen protodoc
+ :
+ ../../../../boost/xpressive/proto/args.hpp
+ ../../../../boost/xpressive/proto/context.hpp
+ ../../../../boost/xpressive/proto/debug.hpp
+ ../../../../boost/xpressive/proto/deep_copy.hpp
+ ../../../../boost/xpressive/proto/domain.hpp
+ ../../../../boost/xpressive/proto/eval.hpp
+ ../../../../boost/xpressive/proto/expr.hpp
+ ../../../../boost/xpressive/proto/extends.hpp
+ ../../../../boost/xpressive/proto/fusion.hpp
+ ../../../../boost/xpressive/proto/generate.hpp
+ ../../../../boost/xpressive/proto/literal.hpp
+ ../../../../boost/xpressive/proto/make_expr.hpp
+ ../../../../boost/xpressive/proto/matches.hpp
+ ../../../../boost/xpressive/proto/operators.hpp
+ ../../../../boost/xpressive/proto/proto.hpp
+ ../../../../boost/xpressive/proto/proto_fwd.hpp
+# ../../../../boost/xpressive/proto/proto_typeof.hpp
+ ../../../../boost/xpressive/proto/ref.hpp
+ ../../../../boost/xpressive/proto/tags.hpp
+ ../../../../boost/xpressive/proto/traits.hpp
+ ../../../../boost/xpressive/proto/transform.hpp
+ ../../../../boost/xpressive/proto/context/callable.hpp
+ ../../../../boost/xpressive/proto/context/default.hpp
+ ../../../../boost/xpressive/proto/context/null.hpp
+ ../../../../boost/xpressive/proto/transform/arg.hpp
+ ../../../../boost/xpressive/proto/transform/bind.hpp
+ ../../../../boost/xpressive/proto/transform/call.hpp
+ ../../../../boost/xpressive/proto/transform/fold.hpp
+ ../../../../boost/xpressive/proto/transform/fold_tree.hpp
+ ../../../../boost/xpressive/proto/transform/make.hpp
+ ../../../../boost/xpressive/proto/transform/pass_through.hpp
+ ../../../../boost/xpressive/proto/transform/when.hpp
+ :
+ <doxygen:param>EXTRACT_ALL=YES
+ <doxygen:param>HIDE_UNDOC_MEMBERS=NO
+ # Use Boost.Wave to preprocess Proto's source
+# <doxygen:param>INPUT_FILTER=./wave.sh
+ <doxygen:param>"INPUT_FILTER=\"$(wave-command) \\
+ -S ../../../.. \\
+ -S \\\"C:\\Program Files\\Microsoft Visual Studio .NET 2003\\vc7\\include\\\" \\
+ -D _WIN32 \\
+ -D BOOST_PROTO_DOXYGEN_INVOKED \\
+ -p 1 \""
+ # This ensures that Wave is actually built before we try to execute it
+ <dependency>../../../../tools/wave/build release
+ ;
 
 xml proto
     :
@@ -82,9 +81,9 @@
         # How far down we go with TOC's
         <xsl:param>generate.section.toc.level=10
         # Set the path to the boost-root so we find our graphics:
- #<xsl:param>boost.root=../../../../..
+ #<xsl:param>boost.root=../../../..
         # location of the main index file so our links work:
- #<xsl:param>boost.libraries=../../../../../libs/libraries.htm
+ #<xsl:param>boost.libraries=../../../../libs/libraries.htm
 
         # PDF Options:
         # TOC Generation: this is needed for FOP-0.9 and later:
@@ -105,5 +104,5 @@
         # better use SVG's instead:
         # <xsl:param>admon.graphics.extension=".svg"
 
-# <dependency>protodoc
+ <dependency>protodoc
     ;

Modified: branches/proto/v3/libs/xpressive/proto/doc/acknowledgements.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/acknowledgements.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/acknowledgements.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/proto/doc/calculator.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/calculator.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/calculator.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -19,7 +19,7 @@
 [heading Defining Terminals]
 
 The first order of business is to define the placeholders `_1` and `_2`. For
-that, we'll use the _terminal_ expression generator.
+that, we'll use the _terminal_ metafunction.
 
     // Define some placeholder types
     struct placeholder1 {};
@@ -138,7 +138,7 @@
 You might notice that the `calculator_context` has a lot of boilerplate. It
 is fairly common for addition nodes to be handled by evaluating the left and
 right children and then adding the result, for instance. For this purpose,
-proto provides the _default_context_, which gives the operators their usual
+Boost.Proto provides the _default_context_, which gives the operators their usual
 meanings, and uses Boost.Typeof to deduce return types. In fact, the
 _callable_context_ from which our `calculator_context` inherits uses
 _default_context_ as a fall-back for any expression types you don't handle

Modified: branches/proto/v3/libs/xpressive/proto/doc/construction.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/construction.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/construction.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,7 +5,11 @@
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  /]
 
+[def __implelemtation_defined__ [~implementation-defined]]
+
+[/=======================================================================================]
 [section:expression_construction Expression Construction: Building Proto Expression Trees]
+[/=======================================================================================]
 
 We've seen some simple examples of how to use Proto, but we haven't really said
 much about what is going on under the hood. How exactly does Proto build and
@@ -26,7 +30,7 @@
 The _expr_ template is the most important type in Proto. Although you will
 rarely need to deal with it directly, it's always there behind the scenes
 holding your expression trees together. In fact, _expr_ /is/ the expression
-tree -- braches, leaves and all.
+tree -- branches, leaves and all.
 
 The _expr_ template makes up the nodes in expression trees. The first template
 parameter is the node type; in this case, `proto::tag::terminal`. That means
@@ -55,7 +59,9 @@
 is of type `placeholder1`. Note that we use braces to initialize `_1.arg0`
 because `placeholder1` is also an aggregate.
 
+[/====================================================]
 [section:operator_overloads Proto's Operator Overloads]
+[/====================================================]
 
 Once we have some Proto terminals, expressions involving those terminals build
 expression trees for us, as if by magic. It's not magic; Proto defines
@@ -80,7 +86,9 @@
 
 [endsect]
 
+[/=================================================]
 [section:expression_trees Building Expression Trees]
+[/=================================================]
 
 The `_1` node is an _expr_ type, and new nodes created with this type are
 also _expr_ types. They look like this:
@@ -129,13 +137,191 @@
 
 [endsect]
 
+[/==============================================]
 [section:left_right_arg Accessing Children Nodes]
+[/==============================================]
+
+After assembling an expression into a tree, you'll naturally want to be
+able to do the reverse, and access its children.
+You may even want to be able to iterate over the children with algorithms
+from the Boost.Fusion library. This section shows how.
+
+[heading [^tag_of<>]]
+
+A node in an expression tree is nothing more than a collection of children
+nodes and a tag type. You can access the tag type of any Proto expression type
+`Expr` directly as `typename Expr::proto_tag`, or you can use the _tag_of_
+metafunction, as shown below:
+
+ template<typename Expr>
+ typename proto::result_of::tag_of<Expr>::type
+ get_tag_of(Expr const &)
+ {
+ // Tag types are required to be default-constructible
+ return typename proto::result_of::tag_of<Expr>::type();
+ }
+
+ proto::terminal<int>::type const i = {0};
+
+ // Addition nodes have the "plus" tag type:
+ proto::tag::plus plus_tag = get_tag_of( i + 2 );
+
+[heading [^arg_c()]]
+
+Each node in an expression tree corresponds to an operator in an expression,
+and the children correspond to the operands, or arguments of the operator.
+To access them, you can use the _arg_c_ function template, as demonstrated
+below:
+
+ proto::terminal<int>::type i = {0};
+
+ // Get the 0-th operand of an addition operation:
+ proto::terminal<int>::type &ri = proto::arg_c<0>( i + 2 );
+
+ // Assert that we got back what we put in:
+ assert( &i == &ri );
+
+You can use the `result_of::arg_c<>` metafunction to get the type of the Nth
+child of an expression node. The nested `::type` of the `arg_c<>` metafunction
+gives you the type after references and cv-qualifiers have been stripped from
+the child's type.
+
+ template<typename Expr>
+ void test_result_of_arg_c(Expr const &expr)
+ {
+ typedef typename proto::result_of::arg_c<Expr, 0>::type type;
+
+ // ::type is a non-cv qualified, non-reference
+ BOOST_MPL_ASSERT((is_same< type, terminal<int>::type>));
+ }
+
+ // ...
+ terminal<int>::type i = {0};
+ test_result_of_arg_c( i + 2 );
+
+Why does the `arg_c<>` metafunction strip cv-qualifiers and references? The
+reason is one of practicality. Because expression trees are most typically
+built by holding references to temporary objects, lifetime management of these
+children nodes can be problematic. If `arg_c<>::type` were a reference, it
+would be very simple to create dangling references. Avoiding dangling
+references results in tedious and verbose applications of `remove_reference<>`
+and `remove_const<>`. This is especially problematic when building transforms
+that operate on ephemeral constelations of temporary objects. The current
+behavior of the `arg_c<>` metafunction makes it much simpler to write correct
+code.
+
+If you would like to know exactly the type of the Nth argument, including
+references and cv-qualifiers, you can use
+`fusion::result_of::value_at<Expr, N>::type`. This way, you can tell whether
+a child is stored by value or by reference. And if you would like to know
+the exact type that _arg_c_ returns, you can use
+`fusion::result_of::at_c<Expr, N>::type`. It will always be a reference type,
+and its cv-qualification depends on the cv-qualification of `Expr` and
+whether the child is stored by reference or not.
+
+[heading [^arg()], [^left()], and [^right()]]
+
+Most operators in C++ are unary or binary. For that reason, accessing the
+only operand, or the left and right operands, are very common operations. For
+this reason, Proto provides the _arg_, _left_, and _right_ functions. _arg_
+and _left_ are synonomous with `arg_c<0>()`, and _right_ is synonomous with
+`arg_c<1>()`.
+
+There are also `result_of::arg<>`, `result_of::left<>`, and `result_of::right<>`
+metafunctions that merely forward to their `result_of::arg_c<>` counterparts.
+
+[heading Expression Nodes as Fusion Sequences]
+
+Proto expression nodes are valid Fusion random-access sequences of their
+children nodes. That means you can apply Fusion algorithms to them,
+transform them, apply Fusion filters and views to them, and access their
+elements using `fusion::at()`. The things Fusion can do to heterogeneous
+sequences is beyond the scope of this users' guide, but below is a simple
+example. It takes a lazy function invocation like `fun(1,2,3,4)` and uses
+Fusion to print the function arguments in order.
+
+ struct display
+ {
+ template<typename T>
+ void operator()(T const &t) const
+ {
+ std::cout << t << std::endl;
+ }
+ };
+
+ struct fun_t {};
+ terminal<fun_t>::type const fun = {{}};
+
+ // ...
+ fusion::for_each(
+ fusion::transform(
+ // pop_front() removes the "fun" child
+ fusion::pop_front(fun(1,2,3,4))
+ // Extract the ints from the terminal nodes
+ , functional::arg<>()
+ )
+ , display()
+ );
+
+The above invocation of `fusion::for_each()` displays the following:
+
+[pre
+1
+2
+3
+4
+]
 
-// TODO describe tag_of, arg, arg_c, left and right. Maybe also children_of and Fusion.
+[heading Flattening Proto Expression Tress]
+
+Imagine a slight variation of the above example where, instead of iterating
+over the arguments of a lazy function invocation, we would like to iterate
+over the terminals in an addition expression:
+
+ terminal<int>::type const _1 = {1};
+
+ // ERROR: this doesn't work! Why?
+ fusion::for_each(
+ fusion::transform(
+ _1 + 2 + 3 + 4
+ , functional::arg<>()
+ )
+ , display()
+ );
+
+The reason this doesn't work is because the expression `_1 + 2 + 3 + 4` does
+not describe a flat sequence of terminals --- it describes a binary tree. We
+can treat it as a flat sequence of terminals, however, using Proto's _flatten_
+function. _flatten_ returns a view which makes a tree appear as a flat Fusion
+sequence. If the top-most node has a tag type `T`, then the elements of the
+flattened sequence are the children nodes that do *not* have tag type `T`. This
+process is evaluated recursively. So the above can correctly be written as:
+
+ terminal<int>::type const _1 = {1};
+
+ // OK, iterate over a flattened view
+ fusion::for_each(
+ fusion::transform(
+ proto::flatten(_1 + 2 + 3 + 4)
+ , functional::arg<>()
+ )
+ , display()
+ );
+
+The above invocation of `fusion::for_each()` displays the following:
+
+[pre
+1
+2
+3
+4
+]
 
 [endsect]
 
+[/===============================================================]
 [section:tags_and_meta_functions Operator Tags and Meta-Functions]
+[/===============================================================]
 
 The following table lists the overloadable C++ operators, the Proto tag types
 for each, and the name of the Proto meta-function for generating the
@@ -327,9 +513,508 @@
 
 [endsect]
 
+[/===========================================================]
 [section:construction_utils Expression Construction Utilities]
+[/===========================================================]
+
+Proto gives you many other ways of creating expression trees besides the operator
+overloads. These are useful for building nodes with custom tag types that don't
+correspond to any C++ operator. They're also useful when writing tree transforms
+that manipulate the structure of the expression tree, as we'll see.
+
+Below are the tools and a brief description of each.
+
+[variablelist
+[ [_make_expr_]
+ [A function that takes a tag type and children nodes and
+ builds a parent node of the requested type.]]
+[ [_unpack_expr_]
+ [A function that does the same as _make_expr_ except
+ the children nodes are specified as a Fusion sequence.]]
+[ [`BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE()`]
+ [A macro that generates a number of overloads of a
+ user-specified function template that behaves like
+ _make_expr_.]]
+]
+
+[/====================================================]
+[heading Building Expression Trees With [^make_expr()]]
+[/====================================================]
 
-// TODO describe make_expr, unpack_expr and BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE
+[:[*Synopsys:]]
+
+ namespace proto
+ {
+ namespace result_of
+ {
+ // Metafunction for calculating the return type
+ // of the make_expr() function
+ template<
+ typename Tag
+ , typename DomainOrArg
+ , typename... A
+ >
+ struct make_expr
+ {
+ typedef __implelemtation_defined__ type;
+ };
+ }
+
+ namespace functional
+ {
+ // A callable function object equivalent of the
+ // make_expr() function.
+ template<typename Tag, typename Domain = default_domain>
+ struct make_expr : callable
+ {
+ template<typename Sig> struct result;
+
+ template<typename This, typename... A>
+ struct result<This(A...)>
+ : result_of::make_expr<Tag, Domain, A...>
+ {};
+
+ template<typename... A>
+ typename result_of::make_expr<Tag, Domain, const A...>::type
+ operator ()(A const &... a) const;
+ };
+ }
+
+ // The make_expr() function
+ template<typename Tag, typename Domain, typename... A>
+ typename result_of::make_expr<Tag, Domain, A...>::type
+ make_expr(A const &... a);
+ }
+
+You can use the _make_expr_ function to build an expression tree node with
+a specified tag type, as follows.
+
+ // Some user-defined tag type
+ struct MyTag {};
+
+ // Construct a node with MyTag tag type, and
+ // two terminals as children.
+ int i = 0;
+ proto::make_expr<MyTag, default_domain>(i, 'a');
+
+You are not required to specify a domain. If you choose not to, `default_domain`
+is assumed. So the above is equivalent to:
+
+ // Construct a node with MyTag tag type, and
+ // two terminals as children.
+ int i = 0;
+ proto::make_expr<MyTag>(i, 'a');
+
+The return type of the above function invocation can be calculated with the
+`result_of::make_expr<>` metafunction.
+
+ // Use result_of::make_expr<> to compute the return type:
+ int i = 0;
+ typedef
+ proto::result_of::make_expr<
+ MyTag
+ , int
+ , char
+ >::type
+ expr_type;
+
+ expr_type expr = proto::make_expr<MyTag>(i, 'a');
+
+ // expr_type is the same as this type:
+ typedef
+ proto::binary_expr<
+ MyTag
+ , proto::terminal<int>::type
+ , proto::terminal<char>::type
+ >::type
+ expr_type2;
+
+ BOOST_MPL_ASSERT((is_same<expr_type2, expr_type>));
+
+Notice that the children, an int and a char, are wrapped in terminal
+nodes and held by value. If you would like an argument to be beld by
+reference in the resulting tree node, you can use `boost::ref()`:
+
+ // One terminal held by reference:
+ int i = 0;
+
+ typedef
+ proto::result_of::make_expr<
+ MyTag
+ , int & // <-- Note reference here
+ , char
+ >::type
+ expr_type;
+
+ expr_type expr = proto::make_expr<MyTag>(boost::ref(i), 'a');
+
+In the return type calculation, we can specify by-ref with
+`int &`, but we need `boost::ref()` in the actual function invocation.
+That's because the _make_expr_ function can't tell from the function
+arguments whether you want to store the arguments by value or by
+reference.
+
+Non-terminals are handled similarly. Given the non-terminal `expr` as
+defined above, we could wrap it in a unary plus node by value or by
+reference as follows:
+
+ // Make "expr" a child node of a new unary plus node, where
+ // "expr" is held by-value:
+ typedef
+ proto::result_of::make_expr<
+ proto::tag::posit
+ , expr_type
+ >::type
+ posit_val_type;
+
+ posit_val_type p1 = proto::make_expr<proto::tag::posit>(expr);
+
+ // Same as above, except "expr" is held by-reference:
+ typedef
+ proto::result_of::make_expr<
+ proto::tag::posit
+ , expr_type & // <-- Note reference here
+ >::type
+ posit_ref_type;
+
+ posit_ref_type p2 = proto::make_expr<proto::tag::posit>(boost::ref(expr));
+
+ // Equivalent to "by-ref" line directly above:
+ posit_ref_type p3 = +expr;
+
+The application of unary `operator+` on the last line is equivalent to
+the by-ref invocation of _make_expr_ because Proto's operator overloads
+always build trees by holding nodes by reference.
+
+If you specify a domain when invoking _make_expr_, then _make_expr_
+will use that domain's generator to wrap the resulting node in a
+domain-specific wrapper. In the example below, expressions within the
+`MyDomain` domain are wrapped in a `MyExpr<>` wrapper.
+
+ template<typename Expr>
+ struct MyExpr;
+
+ struct MyDomain
+ : proto::domain<proto::generator<MyExpr> >
+ {};
+
+ // ...
+
+ // Use result_of::make_expr<> to compute the return type:
+ int i = 0;
+ typedef
+ proto::result_of::make_expr<
+ MyTag
+ , MyDomain // <-- Note second template
+ , int // param can be a domain.
+ , char
+ >::type
+ expr_type;
+
+ // Construct an expression within MyDomain:
+ expr_type expr = proto::make_expr<MyTag, MyDomain>(i, 'a');
+
+ // expr_type is the same as this type:
+ typedef
+ // New node is wrapped in MyExpr<>
+ MyExpr<proto::binary_expr<
+ MyTag
+ // Terminals are also wrapped.
+ , MyExpr<proto::terminal<int>::type>
+ , MyExpr<proto::terminal<char>::type>
+ >::type>
+ expr_type2;
+
+ BOOST_MPL_ASSERT((is_same<expr_type2, expr_type>));
+
+[/======================================================]
+[heading Building Expression Trees With [^unpack_expr()]]
+[/======================================================]
+
+[:[*Synopsys:]]
+
+ namespace proto
+ {
+ namespace result_of
+ {
+ // Metafunction for calculating the return type
+ // of the unpack_expr() function
+ template<
+ typename Tag
+ , typename DomainOrSequence
+ , typename SequenceOrVoid = void
+ >
+ struct unpack_expr
+ {
+ typedef __implelemtation_defined__ type;
+ };
+ }
+
+ namespace functional
+ {
+ // A callable function object equivalent of the
+ // unpack_expr() function.
+ template<typename Tag, typename Domain = default_domain>
+ struct unpack_expr : callable
+ {
+ template<typename Sig> struct result;
+
+ template<typename This, typename Sequence>
+ struct result<This(Sequence)>
+ : result_of::unpack_expr<Tag, Domain, Sequence>
+ {};
+
+ template<typename Sequence>
+ typename result_of::unpack_expr<Tag, Domain, Sequence>::type
+ operator ()(Sequence const &sequence) const;
+ };
+ }
+
+ // The unpack_expr() function
+ template<typename Tag, typename Domain, typename Sequence>
+ typename result_of::unpack_expr<Tag, Domain, Sequence>::type
+ unpack_expr(Sequence const &sequence);
+ }
+
+Once you understand _make_expr_, understanding _unpack_expr_ is
+simple. It behaves exactly the same way, except that rather than
+passing children individually, you pass the children as a Fusion
+sequence. So for instance, the following are equivalent:
+
+ // Build an expression with make_expr():
+ int i = 0;
+ proto::make_expr<Tag>(i, 'a');
+
+ // Build the same expression with unpack_expr():
+ proto::unpack_expr<Tag>(fusion::make_tuple(i, 'a'));
+
+ // Also the same as the above:
+ fusion::tuple<int, char> args(i, 'a');
+ proto::unpack_expr<Tag>(args);
+
+If you would like the arguments to be stored by reference, you can
+use `boost::ref()`, just as with _make_expr_.
+
+ // Hold one argument by reference:
+ int i = 0;
+ proto::unpack_expr<Tag>(fusion::make_tuple(boost::ref(i), 'a'));
+
+ // Also the same as the above:
+ fusion::tuple<int &, char> args(i, 'a');
+ proto::unpack_expr<Tag>(args);
+
+As with _make_expr_, _unpack_expr_ has a corresponding metafunction
+in the `proto::result_of` namespace for calculating its return type, as
+well as a callable function object form in the `proto::functional`
+namespace.
+
+One last interesting point about _unpack_expr_: Proto expression
+nodes are themselves valid Fusion sequences. Here, for instance, is
+a clever way to use _unpack_expr_ to turn a binary plus node into
+a binary minus node:
+
+ // Use unpack_expr() to turn an addition into a subtraction
+ proto::literal<int> i(8), j(42);
+ proto::unpack_expr<proto::tag::minus>( i + j );
+
+The expression `i + j` creates an expression tree which _unpack_expr_
+interprets as a sequence of its children `i` and `j`. The result is a
+new node with the `tag::minus` tag and `i` and `j` as children.
+
+[/=====================================================]
+[heading Generating Custom Expression Factory Functions]
+[/=====================================================]
+
+[:[*Synopsys:]]
+
+ // Generate BOOST_PROTO_MAX_ARITY overloads of a
+ // function template named NAME within a particular
+ // DOMAIN that generates expressions with a given
+ // TAG and optionally has some arguments bound.
+ #define BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE( \
+ NAME \
+ , DOMAIN \
+ , TAG \
+ , BOUNDARGS \
+ )
+
+The `proto::functional::make_expr<>` function object makes it very simple
+to create something that behaves like an expression factory function. For
+instance, the following defines a factory named `invert()` that
+"complements" its argument; that is, it builds a new node with type
+`tag::complement` as if Proto's `operator~` had been applied:
+
+ // invert(x) is now a synonym for ~proto::as_expr(x)
+ proto::functional::make_expr<proto::tag::complement> const invert = {};
+
+Such named "operators" are very important for domain-specific embedded
+languages. What's more, when defined as above, the `invert()` factory can
+accept up to `BOOST_PROTO_MAX_ARITY` arguments, although in this case
+that wouldn't be particularly meaningful.
+
+But imagine if you have a custom tag type `foo_tag<>` that is a template.
+You would like to define a `foo()` factory function that itself was a template,
+like this:
+
+ template<typename T, typename A0>
+ typename proto::result_of::make_expr<
+ foo_tag<T>
+ , A0 const &
+ >::type foo(A0 const &a0)
+ {
+ return proto::make_expr<foo_tag<T> >(boost::ref(a0));
+ }
+
+Now, users of your function can invoke it like this: `foo<int>("foo!")`. If
+you want to seamlessly handle up to /N/ argument, you have to write all /N/
+overloads yourself --- `functional::make_expr<>` can't help you. For this
+situation, Proto provides the `BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE()`
+macro. You can invoke it as follows:
+
+ // Generate overloads of the foo() function template
+ // like the one above
+ BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE( \
+ foo \
+ , proto::default_domain \
+ , (foo_tag)(typename) \
+ , BOOST_PP_SEQ_NIL \
+ )
+
+The first macro parameter specified the name of the function template, `foo`.
+The second parameter is the domain of the resulting expression. The third
+parameter is the tag type, specified as a Boost.Preprocessor sequence. A
+tag template like `foo_tag<typename>` is represented as a PP sequence like
+`(foo_tag)(typename)`. Had `foo_tag<>` been defined instead as
+`template<typename, int> struct foo_tag`, that would be a PP sequence like
+`(foo_tag)(typename)(int)`.
+
+The last macro parammeter, `BOOST_PP_SEQ_NIL`, is used for specifying any
+additional implicit arguments. There are none in this case, so
+`BOOST_PP_SEQ_NIL` is used to represent an empty sequence.
+
+As another example, consider a DSEL like the Boost Lambda Library, for
+which you might want a function named `construct()` for doing deferred
+construction of objects. You might want users to be able to use it like
+this:
+
+ std::vector<S> buffer;
+
+ // Use a lambda to construct S objects using two
+ // sequences as constructor arguments:
+ std::transform(
+ sequence1.begin()
+ , sequence1.end()
+ , sequence2.begin()
+ , std::back_inserter(buffer)
+ , construct<S>(_1, _2) // From a hypothetical lambda DSEL
+ );
+
+How might the `construct()` function be defined? We would like it to return
+a lazy function invocation that, when evaluated with two arguments, causes
+`S` objects to be constructed. Lazy functions in Proto look like this:
+
+ // The type of a Proto lazy function
+ proto::function<
+ TheFunctionToCall
+ , Argument1
+ , Argument2
+ , ...
+ >::type
+
+In the above, `TheFunctionToCall` might be an ordinary function object, so
+let's define a `construct_<>` function object that constructs an object.
+
+ template<typename T>
+ struct construct_
+ {
+ typedef T result_type; // for TR1 result_of
+
+ T operator()() const { return T(); }
+
+ template<typename A0>
+ T operator()(A0 const &a0) const { return T(a0); }
+
+ // ... other overloads ...
+ };
+
+With such a function object, we can say `construct_<S>()(1, 'a')` to
+immediately construct an `S` object using `1` and `'a'` as constructor
+arguments. We want this to be lazy, so we can wrap `construct_<S>` in
+a Proto terminal.
+
+ // A lazy S constructor
+ terminal<construct_<S> >::type const construct_S = {{}};
+
+ // OK, make a lazy function invocation but don't call it.
+ construct_S(1, 'a');
+
+ // Calls the lazy function and constructs an S
+ proto::default_context ctx;
+ S s = proto::eval( construct_S(1, 'a'), ctx );
+
+We're closer, but this is not the syntax we want. Recall that we want
+users to create objects lazily with `construct<S>(_1, _2)`. We can
+get that syntax with the following:
+
+ // Define the construct() function template that
+ // constructs an object lazily.
+ template<typename T, typename A0, typename A1>
+ typename proto::make_expr<
+ proto::tag::function
+ , construct_<T> const
+ , A0 const &
+ , A1 const &
+ >::type const
+ construct(A0 const &a0, A0 const &a1)
+ {
+ return proto::make_expr<proto::tag::function>(
+ construct_<T>()
+ , boost::ref(a0)
+ , boost::ref(a1)
+ );
+ }
+
+Now users can say `construct<S>(_1, _2)` and get the lazy object
+construction they want. (Making it work with `std::transform()`
+takes a little more effort, but that's covered in the
+[link boost_proto.users_guide.examples.calc2 Calc2] example.)
+Now we need /N/ overloads to handle up to /N/ arguments. That's a lot
+of boiler plate, so we can use the `BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE()`
+macro to simplify our job.
+
+ // Generate BOOST_PROTO_MAX_ARITY-1 overloads of the
+ // construct function template like the one defined above.
+ BOOST_PROTO_DEFINE_VARARG_FUNCTION_TEMPLATE( \
+ construct \
+ , MyLambdaDomain \
+ , (proto::tag::function) \
+ , ((construct_)(typename)) \
+ )
+
+What is new in this case is the fourth macro argument, which specifies
+that there is an implicit first argument to `construct()` of type
+`construct_<X>`, where `X` is a template parameter of the function.
+The fourth argument to the macro is actually a PP sequence of PP
+sequences. Each sequence describes one implicit argument.
+
+[blurb [*Ugly Macros]
+
+You may find this use of the preprocessor distasteful and decide to
+write out the overloads yourself. That's fine, but there are some good
+reasons to consider the macro.
+
+1) You may not be able to anticipate the maximum number of arguments
+ your users will require. If users decide to increase
+ `BOOST_PROTO_MAX_ARITY`, the macro will automatically generate
+ the additional overloads for you.
+
+2) On compilers that support variadic templates, you'd rather this
+ generated just one variadic function instead of /N/ overloads,
+ but you'd like your code to be portable to compilers that don't
+ support variadic templates. This is possible if you use the macro,
+ but not otherwise. (Proto doesn't yet support variadic templates
+ but it will in the future.)
+]
 
 [endsect]
 

Modified: branches/proto/v3/libs/xpressive/proto/doc/evaluation.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/evaluation.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/evaluation.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -7,35 +7,550 @@
 
 [section:expression_evaluation Expression Evaluation: Imparting Behaviors Within A Context]
 
+Once you have constructed a Proto expression tree, either by using Proto's
+operator overloads or with _make_expr_ and friends, you probably want to
+actually /do/ something with it. The simplest option is to use `proto::eval()`,
+a generic expression evaluator. To use _eval_, you'll need to define a
+/context/ that tells _eval_ how each node should be evaluated. This section
+goes through the nuts and bolts of using _eval_, defining evaluation contexts,
+and using the contexts that Proto provides.
+
+[note `proto::eval()` is a less powerful but easier-to-use evaluation technique
+than Proto transforms, which are covered later. Although very powerful,
+transforms have a steep learning curve and can be more difficult to debug.
+`proto::eval()` is a rather weak tree traversal algorithm. Dan Marsden has
+been working on a more general and powerful tree traversal library. When it is
+ready, I anticipate that it will eliminate the need for `proto::eval()`.]
+
+[/================================================================]
 [section:proto_eval Evaluating An Expression with [^proto::eval()]]
+[/================================================================]
+
+[:[*Synopsis:]]
 
-TODO
+ namespace proto
+ {
+ namespace result_of
+ {
+ // A metafunction for calculating the return
+ // type of proto::eval() given certain Expr
+ // and Context types.
+ template<typename Expr, typename Context>
+ struct eval
+ {
+ typedef
+ typename Context::template eval<Expr>::result_type
+ type;
+ };
+ }
+
+ namespace functional
+ {
+ // A callable function object type for evaluating
+ // a Proto expression with a certain context.
+ struct eval : callable
+ {
+ template<typename Sig>
+ struct result;
+
+ template<typename Expr, typename Context>
+ typename proto::result_of::eval<Expr, Context>::type
+ operator ()(Expr &expr, Context &context) const;
+
+ template<typename Expr, typename Context>
+ typename proto::result_of::eval<Expr, Context>::type
+ operator ()(Expr &expr, Context const &context) const;
+ };
+ }
+
+ functional::eval const eval = {};
+ }
+
+Given an expression and an evaluation context, using _eval_ is quite simple.
+Simply pass the expression and the context to _eval_ and it does the rest and
+returns the result. You can use the `eval<>` metafunction in the
+`proto::result_of` namespace to compute the return type of _eval_. The
+following demonstrates a use of _eval_:
+
+ template<typename Expr>
+ typename proto::result_of::eval<Expr const, MyContext>::type
+ MyEvaluate(Expr const &expr)
+ {
+ // Some user-defined context type
+ MyContext ctx;
+
+ // Evaluate an expression with the context
+ return proto::eval(expr, ctx);
+ }
+
+What _eval_ does is also very simple. It defers most of the work to the
+context itself. Here essentially is the implementation of _eval_:
+
+ // eval() dispatches to a nested "eval<>" function
+ // object within the Context:
+ template<typename Expr, typename Context>
+ typename Context::template eval<Expr>::result_type
+ eval(Expr &expr, Context &ctx)
+ {
+ typename Context::template eval<Expr> eval_fun;
+ return eval_fun(expr, ctx);
+ }
+
+Really, _eval_ is nothing more than a thin wrapper that dispatches to the
+appropriate handler within the context class. In the next section, we'll see
+how to implement a context class from scratch.
 
 [endsect]
 
+[/==============================================]
 [section:contexts Defining an Evaluation Context]
+[/==============================================]
 
-TODO
+As we saw in the previous section, there is really not much to the _eval_
+function. Rather, all the interesting expression evaluation goes on within
+a context class. This sections shows how to implement one from scratch.
+
+All context classes have roughly the following form:
+
+ // A prototypical user-defined context.
+ struct MyContext
+ {
+ // A nested eval<> class template
+ template<
+ typename Expr
+ , typename Tag = typename Expr::proto_tag
+ >
+ struct eval;
+
+ // Handle terminal nodes here...
+ template<typename Expr>
+ struct eval<Expr, proto::tag::terminal>
+ {
+ // Must have a nested result_type typedef.
+ typedef ... result_type;
+
+ // Must have a function call operator that takes
+ // an expression and the context.
+ result_type operator()(Expr &expr, MyContext &ctx) const
+ {
+ return ...;
+ }
+ };
+
+ // ... other specializations of struct eval<> ...
+ };
+
+Context classes are nothing more than a collection of specializations of a
+nested `eval<>` class template. Each specialization handles a different
+expression type.
+
+In the [link boost_proto.users_guide.hello_calculator Hello Calculator]
+section, we saw an example of a user-defined context class for evaluating
+calculator expressions. That context class was implemented with the help
+of Proto's _callable_context_. If we were to implement it from scratch, it
+would look something like this:
+
+ // The calculator_contest from the "Hello Calculator" section,
+ // implemented from scratch.
+ struct calculator_context
+ {
+ // The values for the _1 and _2 placeholders are
+ // passed to the calculator_context constructor.
+ calculator_context(double d1, double d2)
+ : d1_(d1), d2_(d2)
+ {}
+
+ template<
+ typename Expr
+ // defaulted template parameters, so we can
+ // specialize on the expressions that need
+ // special handling.
+ , typename Tag = typename tag_of<Expr>::type
+ , typename Arg0 = typename arg_c<Expr, 0>::type
+ >
+ struct eval;
+
+ // Handle placeholder1 terminals here...
+ template<typename Expr>
+ struct eval<Expr, proto::tag::terminal, placeholder1>
+ {
+ typedef double result_type;
+
+ result_type operator()(Expr &, MyContext &ctx) const
+ {
+ // replaces _1 with the value in ctx.d1_
+ return ctx.d1_;
+ }
+ };
+
+ // Handle placeholder2 terminals here...
+ template<typename Expr>
+ struct eval<Expr, proto::tag::terminal, placeholder2>
+ {
+ typedef double result_type;
+
+ result_type operator()(Expr &, MyContext &ctx) const
+ {
+ // replaces _1 with the value in ctx.d2_
+ return ctx.d2_;
+ }
+ };
+
+ // Handle other terminals here...
+ template<typename Expr, typename Arg0>
+ struct eval<Expr, proto::tag::terminal, Arg0>
+ {
+ typedef double result_type;
+
+ result_type operator()(Expr &expr, MyContext &) const
+ {
+ return proto::arg(expr);
+ }
+ };
+
+ // Handle addition here...
+ template<typename Expr, typename Arg0>
+ struct eval<Expr, proto::tag::plus, Arg0>
+ {
+ typedef double result_type;
+
+ result_type operator()(Expr &expr, MyContext &ctx) const
+ {
+ return proto::eval(proto::left(expr), ctx)
+ + proto::eval(proto::right(expr), ctx);
+ }
+ };
+
+ // ... other eval<> specializations for other node types ...
+
+ double d1_, d2_;
+ };
+
+Now we can use _eval_ with the context class above to evaluate calculator
+expressions as follows:
+
+ // Evaluate an expression with a calculator_context
+ double d = proto::eval(_1 + _2, calculator_context(5, 6));
+ assert(11 == d);
+
+Defining a context from scratch this way is tedious and verbose, but it gives
+you complete control over how the expression is evaluated. The context class in
+the [link boost_proto.users_guide.hello_calculator Hello Calculator] example
+was much simpler. In the next section we'll see the helper class Proto provides
+to ease the job of implementing context classes.
 
 [endsect]
 
+[/======================================]
 [section:canned_contexts Canned Contexts]
+[/======================================]
+
+Proto provides some ready-made context classes that you can use as-is, or that
+you can use to help while implementing your own contexts. They are:
 
+[variablelist
+ [ [[link boost_proto.users_guide.expression_evaluation.canned_contexts.default_context [^default_context]]]
+ [An evaluation context that assigns the usual C++ meanings to all the
+ operators. For example, addition nodes are handled by evaluating the
+ left and right children and then adding the results. The _default_context_
+ uses Boost.Typeof to deduce the types of the expressions it evaluates.] ]
+ [ [[link boost_proto.users_guide.expression_evaluation.canned_contexts.null_context [^null_context]]]
+ [A simple context that recursively evaluates children but does not combine
+ the results in any way and returns void.] ]
+ [ [[link boost_proto.users_guide.expression_evaluation.canned_contexts.callable_context [^callable_context<>]]]
+ [A helper that simplifies the job of writing context classes. Rather than
+ writing template specializations, with _callable_context_ you write a
+ function object with an overloaded function call operator. Any expressions
+ not handled by an overload are automatically dispatched to a default
+ evaluation context that you can specify.] ]
+]
+
+[/=========================================]
 [section:default_context [^default_context]]
+[/=========================================]
 
-TODO
+The _default_context_ is an evaluation context that assigns the usual C++
+meanings to all the operators. For example, addition nodes are handled by
+evaluating the left and right children and then adding the results. The
+_default_context_ uses Boost.Typeof to deduce the types of the expressions it
+evaluates.
+
+For example, consider the following "Hello World" example:
+
+ #include <iostream>
+ #include <boost/xpressive/proto/proto.hpp>
+ #include <boost/xpressive/proto/context.hpp>
+ #include <boost/typeof/std/ostream.hpp>
+ using namespace boost;
+
+ proto::terminal< std::ostream & >::type cout_ = { std::cout };
+
+ template< typename Expr >
+ void evaluate( Expr const & expr )
+ {
+ // Evaluate the expression with default_context,
+ // to give the operators their C++ meanings:
+ proto::default_context ctx;
+ proto::eval(expr, ctx);
+ }
+
+ int main()
+ {
+ evaluate( cout_ << "hello" << ',' << " world" );
+ return 0;
+ }
+
+This program outputs the following:
+
+[pre
+hello, world
+]
+
+_default_context_ is trivially defined in terms of a `default_eval<>`
+template, as follows:
+
+ // Definition of default_context
+ struct default_context
+ {
+ template<typename Expr>
+ struct eval
+ : default_eval<Expr, default_context const, typename Expr::proto_tag>
+ {};
+ };
+
+There are a bunch of `default_eval<>` specializations, each of which handles
+a different C++ operator. Here, for instance, is the specialization for binary
+addition:
+
+ // A default expression evaluator for binary addition
+ template<typename Expr, typename Context>
+ struct default_eval<Expr, Context, proto::tag::plus>
+ {
+ private:
+ static Expr & s_expr;
+ static Context & s_ctx;
+
+ public:
+ typedef
+ decltype(
+ proto::eval(proto::arg_c<0>(s_expr), s_ctx)
+ + proto::eval(proto::arg_c<1>(s_expr), s_ctx)
+ )
+ result_type;
+
+ result_type operator ()(Expr &expr, Context &ctx) const
+ {
+ return proto::eval(proto::arg_c<0>(expr), ctx)
+ + proto::eval(proto::arg_c<1>(expr), ctx);
+ }
+ };
+
+The above code uses `decltype` to calculate the return type of the function
+call operator. `decltype` is a new keyword in the next version of C++ that gets
+the type of any expression. Most compilers do not yet support `decltype`
+directly, so `default_eval<>` uses the Boost.Typeof library to emulate it. On
+some compilers, that may mean that `default_context` either doesn't work or
+that it requires you to register your types with the Boost.Typeof library.
+Check the documentation for Boost.Typeof to see.
 
 [endsect]
 
+[/===================================]
 [section:null_context [^null_context]]
+[/===================================]
+
+The _null_context_ is a simple context that recursively evaluates children
+but does not combine the results in any way and returns void. It is useful
+in conjunction with `callable_context<>`, or when defining your own contexts
+which mutate an expression tree in-place rather than accumulate a result, as
+we'll see below.
+
+_null_context_ is trivially implemented in terms of `null_eval<>` as follows:
+
+ // Definition of null_context
+ struct null_context
+ {
+ template<typename Expr>
+ struct eval
+ : null_eval<Expr, null_context const, Expr::proto_arity::value>
+ {};
+ };
+
+And `null_eval<>` is also trivially implemented. Here, for instance is
+a binary `null_eval<>`:
+
+ // Binary null_eval<>
+ template<typename Expr, typename Context>
+ struct null_eval<Expr, Context, 2>
+ {
+ typedef void result_type;
+
+ void operator()(Expr &expr, Context &ctx) const
+ {
+ proto::eval(proto::arg_c<0>(expr), ctx);
+ proto::eval(proto::arg_c<1>(expr), ctx);
+ }
+ };
+
+When would such classes be useful? Imagine you have an expression tree with
+integer terminals, and you would like to increment each integer in-place. You
+might define an evaluation context as follows:
+
+ struct increment_ints
+ {
+ // By default, just evaluate all children by defering
+ // to the null_eval<>
+ template<typename Expr, typename Arg = proto::result_of::arg<Expr>::type>
+ struct eval
+ : null_eval<Expr, increment_ints const>
+ {};
+
+ // Increment integer terminals
+ template<typename Expr>
+ struct eval<Expr, int>
+ {
+ typedef void result_type;
+
+ void operator()(Expr &expr, increment_ints const &) const
+ {
+ ++proto::arg(expr);
+ }
+ };
+ };
 
-TODO
+In the next section on _callable_context_, we'll see an even simpler way to
+achieve the same thing.
 
 [endsect]
 
+[/=============================================]
 [section:callable_context [^callable_context<>]]
+[/=============================================]
 
-TODO
+The _callable_context_ is a helper that simplifies the job of writing context
+classes. Rather than writing template specializations, with _callable_context_
+you write a function object with an overloaded function call operator. Any
+expressions not handled by an overload are automatically dispatched to a
+default evaluation context that you can specify.
+
+Rather than an evaluation context in its own right, _callable_context_ is more
+properly thought of as a context adaptor. To use it, you must define your own
+context that inherits from _callable_context_.
+
+In the [link boost_proto.users_guide.expression_evaluation.canned_contexts.null_context [^null_context]]
+section, we saw how to implement an evaluation context that increments all the
+integers within an expression tree. Here is how to do the same thing with the
+_callable_context_:
+
+ // An evaluation context that increments all
+ // integer terminals in-place.
+ struct increment_ints
+ : callable_context<
+ increment_ints const // derived context
+ , null_context const // fall-back context
+ >
+ {
+ typedef void result_type;
+
+ // Handle int terminals here:
+ void operator()(proto::tag::terminal, int &i) const
+ {
+ ++i;
+ }
+ };
+
+With such a context, we can do the following:
+
+ literal<int> i = 0, j = 10;
+ proto::eval( i - j * 3.14, increment_ints() );
+
+ std::cout << "i = " << i.get() << std::endl;
+ std::cout << "j = " << j.get() << std::endl;
+
+This program outputs the following, which shows that the integers `i` and `j`
+have been incremented by `1`:
+
+[pre
+i = 1
+j = 11
+]
+
+In the `increment_ints` context, we didn't have to define any nested `eval<>`
+templates. That's because _callable_context_ implements them for us.
+_callable_context_ takes two template parameters: the derived context and a
+fall-back context. For each node in the expression tree being evaluated,
+_callable_context_ checks to see if there is an overloaded `operator()` in the
+derived context that accepts it. Given some expression `expr` of type `Expr`,
+and a context `ctx`, it attempts to call:
+
+ ctx(
+ typename Expr::proto_tag()
+ , proto::arg_c<0>(expr)
+ , proto::arg_c<1>(expr)
+ ...
+ );
+
+Using function overloading and metaprogramming tricks, _callable_context_ can
+detect at compile-time whether such a function exists or not. If so, that
+function is called. If not, the current expression is passed to the fall-back
+evaluation context to be processed.
+
+We saw another example of the _callable_context_ when we looked at the simple
+calculator expression evaluator. There, we wanted to customize the evaluation
+of placeholder terminals, and delegate the handling of all other nodes to the
+_default_context_. We did that as follows:
+
+ // An evaluation context for calculator expressions that
+ // explicitly handles placeholder terminals, but defers the
+ // processing of all other nodes to the default_context.
+ struct calculator_context
+ : proto::callable_context< calculator_context const >
+ {
+ calculator_context(double d1, double d2)
+ : d1_(d1), d2_(d2)
+ {}
+
+ // Define the result type of the calculator.
+ typedef double result_type;
+
+ // Handle the placeholders:
+ double operator()(proto::tag::terminal, placeholder1) const
+ {
+ return this->d1_;
+ }
+
+ double operator()(proto::tag::terminal, placeholder2) const
+ {
+ return this->d2_;
+ }
+
+ private:
+ double d1_, d2_;
+ };
+
+In this case, we didn't specify a fall-back context. In that case,
+_callable_context_ uses the _default_context_. With the above
+`calculator_context` and a couple of appropriately defined placeholder
+terminals, we can evaluate calculator expressions, as demonstrated
+below:
+
+ struct placeholder1 {};
+ struct placeholder2 {};
+ terminal<placeholder1>::type const _1 = {{}};
+ terminal<placeholder2>::type const _2 = {{}};
+ // ...
+
+ double j = proto::eval(
+ (_2 - _1) / _2 * 100
+ , calculator_context(4, 5)
+ );
+ std::cout << "j = " << j << std::endl;
+
+The above code displays the following:
+
+[pre
+j = 20
+]
 
 [endsect]
 

Modified: branches/proto/v3/libs/xpressive/proto/doc/examples.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/examples.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/examples.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -15,71 +15,165 @@
 [import ../example/tarray.cpp]
 [import ../example/vec3.cpp]
 [import ../example/vector.cpp]
+[import ../example/map_assign.cpp]
+[import ../example/futures.cpp]
 
+[/===============]
 [section Examples]
+[/===============]
 
-[section Hello World]
+A code example is worth a thousand words ...
 
-blah blah blah
+[/=================================================================================]
+[section:hello_world Hello World: Building An Expression Template and Evaluating It]
+[/=================================================================================]
 
-[HelloWorld]
+A trivial example which builds and expression template
+and evaluates it.
 
-blah blah blah
+[HelloWorld]
 
 [endsect]
 
-[section Calc1]
+[/==================================================]
+[section:calc1 Calc1: Defining An Evaluation Context]
+[/==================================================]
+
+A simple example which builds a miniature domain-specific
+embedded language for lazy arithmetic expressions, with
+TR1 bind-style argument placeholders.
 
 [Calc1]
 
 [endsect]
 
-[section Calc2]
+[/============================================================]
+[section:calc2 Calc2: Adding Members Using [^proto::extends<>]]
+[/============================================================]
+
+An extension of the Calc1 example that uses _extends_ to
+make calculator expressions valid function objects that
+can be used with STL algorithms.
 
 [Calc2]
 
 [endsect]
 
-[section Calc3]
+[/===============================================]
+[section:calc3 Calc3: Defining A Simple Transform]
+[/===============================================]
+
+An extension of the Calc2 example that uses a Proto transform
+to calculate the arity of a calculator expression and statically
+assert that the correct number of argument are passed.
 
 [Calc3]
 
 [endsect]
 
-[section Lazy Vector]
+[/==============================================================]
+[section:lazy_vector Lazy Vector: Controlling Operator Overloads]
+[/==============================================================]
+
+This example constructs a mini-library for linear algebra, using
+expression templates to eliminate the need for temporaries when
+adding vectors of numbers.
+
+This example uses a domain with a grammar to prune the set
+of overloaded operators. Only those operators that produce
+valid lazy vector expressions are allowed.
 
 [LazyVector]
 
 [endsect]
 
-[section RGB]
+[/========================================================]
+[section:rgb RGB: Type Manipulations With Proto Transforms]
+[/========================================================]
+
+This is a simple example of doing arbitrary type manipulations with Proto
+transforms. It takes some expression involving primiary colors and combines
+the colors according to arbitrary rules. It is a port of the RGB example
+from _PETE_.
 
 [RGB]
 
 [endsect]
 
-[section TArray]
+[/=====================================================]
+[section:tarray TArray: A Simple Linear Algebra Library]
+[/=====================================================]
+
+This example constructs a mini-library for linear algebra, using
+expression templates to eliminate the need for temporaries when
+adding arrays of numbers. It duplicates the TArray example from
+_PETE_.
 
 [TArray]
 
 [endsect]
 
-[section Vec3]
+[/========================================================]
+[section:vec3 Vec3: Computing With Transforms And Contexts]
+[/========================================================]
+
+This is a simple example using `proto::extends<>` to extend a terminal type
+with additional behaviors, and using custom contexts and `proto::eval()` for
+evaluating expressions. It is a port of the Vec3 example from
+_PETE_.
 
 [Vec3]
 
 [endsect]
 
-[section Vector]
+[/========================================================]
+[section:vector Vector: Adapting A Non-Proto Terminal Type]
+[/========================================================]
+
+This is an example of using `BOOST_PROTO_DEFINE_OPERATORS()` to Proto-ify
+expressions using `std::vector<>`, a non-Proto type. It is a port of the
+Vector example from _PETE_.
 
 [Vector]
 
 [endsect]
 
-[section Mixed]
+[/=============================================================]
+[section:mixed Mixed: Adapting Several Non-Proto Terminal Types]
+[/=============================================================]
+
+This is an example of using `BOOST_PROTO_DEFINE_OPERATORS()` to Proto-ify
+expressions using `std::vector<>` and `std::list<>`, non-Proto types. It is a
+port of the Mixed example from _PETE_.
 
 [Mixed]
 
 [endsect]
 
+[/=======================================================]
+[section:map_assign Map Assign: An Intermediate Transform]
+[/=======================================================]
+
+A demonstration of how to implement `map_list_of()` from the Boost.Assign
+library using Proto. `map_list_assign()` is used to conveniently initialize a
+`std::map<>`. By using Proto, we can avoid any dynamic allocation while
+building the intermediate representation.
+
+[MapAssign]
+
+[endsect]
+
+[/===========================================================]
+[section:future_group Future Group: A More Advanced Transform]
+[/===========================================================]
+
+An advanced example of a Proto transform that implements
+Howard Hinnant's design for /future groups/ that block
+for all or some asynchronous operations to complete and
+returns their results in a tuple of the appropriate type.
+
+[FutureGroup]
+
+[endsect]
+
 [endsect]

Modified: branches/proto/v3/libs/xpressive/proto/doc/extensibility.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/extensibility.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/extensibility.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/proto/doc/grammars.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/grammars.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/grammars.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -268,8 +268,9 @@
 and logically negates it; `not_<Grammar>` will match any expression that
 `Grammar` does /not/ match.
 
-The _if_ template is used together with an MPL lambda expression, which is
-evaluated against expression types to find matches.
+The _if_ template is used together with a Proto transform that is evaluated
+against expression types to find matches. (Proto transforms will be described
+later.)
 
 The _and_ template is like _or_, except that each argument of the _and_ must
 match in order for the _and_ to match. As an example, consider the definition
@@ -279,34 +280,19 @@
     struct CharString
       : and_<
             terminal< _ >
- , if_< is_same< result_of::arg< mpl::_ >, char const * > >
+ , if_< is_same< _arg, char const * >() >
>
     {};
 
 This says that a `CharString` must be a terminal, /and/ its argument must be
 the same as `char const *`. Notice the template argument of _if_:
-`is_same< result_of::arg< mpl::_ >, char const * >`. This is an MPL lambda
-expression because it has the MPL placeholder `mpl::_` in it.
-
-[warning Do not confuse `mpl::_` with `proto::_`. The first is only useful in
-MPL lambda expressions. The second is Proto's grammar wildcard. The only place
-`mpl::_` should appear in your grammars is in an _if_, or in tranform::applyN<>,
-as we'll see later. Elsewhere in your grammars you should be using `proto::_`.]
+`is_same< _arg, char const * >()`. This is Proto transform that compares the
+argument of a terminal to `char const *`.
 
 The _if_ template has a couple of variants. In additon to `if_<Condition>` you
 can also say `if_<Condition, ThenGrammar>` and
 `if_<Condition, ThenGrammar, ElseGrammar>`. These let you select one sub-grammar
-or another based on the `Condition`. The following table shows their
-equivalencies:
-
-[table If-Then-Else Equivalencies
-[[Short-Cut Grammar][Equivalent Grammar]]
-[[`if_<Condition, ThenGrammar>`][`and_<if_<Condition>, ThenGrammar>`]]
-[[`if_<Condition, ThenGrammar, ElseGrammar>`][``or_<
- and_<if_<Condition>, ThenGrammar>
- , and_<not_<if_<Condition> >, ElseGrammar>
->``]]
-]
+or another based on the `Condition`.
 
 [endsect]
 

Modified: branches/proto/v3/libs/xpressive/proto/doc/history.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/history.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/history.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,6 +9,11 @@
 
 [variablelist
 [
+ [January 11, 2008]
+ [Boost.Proto v3 brings separation of grammars and transforms and a
+ "round" lambda syntax for defining transforms in-place.]
+]
+[
     [April 15, 2007]
     [Boost.Xpressive is ported from Proto compilers to Proto transforms.
      Support for old Proto compilers is dropped.]

Modified: branches/proto/v3/libs/xpressive/proto/doc/implementation.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/implementation.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/implementation.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,6 +7,166 @@
 
 [section:implementation Appendix C: Implementation Notes]
 
+[section:sfinae Quick-n-Dirty Type Categorization]
+
+Much has already been written about dispatching on type traits using
+SFINAE (Substitution Failure Is Not An Error) techniques in C++. There
+is a Boost library, Boost.Enable_if, to make the technique idiomatic.
+Proto dispatches on type traits extensively, but it doesn't use
+`enable_if<>` very often. Rather, it dispatches based on the presence
+or absence of nested types, often typedefs for void.
+
+Consider the implementation of `is_expr<>`. It could have been written
+as something like this:
+
+ template<typename T>
+ struct is_expr
+ : is_base_and_derived<proto::some_expr_base, T>
+ {};
+
+Rather, it is implemented as this:
+
+ template<typename T, typename Void = void>
+ struct is_expr
+ : mpl::false_
+ {};
+
+ template<typename T>
+ struct is_expr<T, typename T::proto_is_expr_>
+ : mpl::true_
+ {};
+
+This relies on the fact that the specialization will be preferred
+if `T` has a nested `proto_is_expr_` that is a typedef for `void`.
+All Proto expression types have such a nested typedef.
+
+Why does Proto do it this way? The reason is because, after running
+extensive benchmarks while trying to improve compile times, I have
+found that this approach compiles faster. It requires exactly one
+template instantiation. The other approach requires at least 2:
+`is_expr<>` and `is_base_and_derived<>`, plus whatever templates
+`is_base_and_derived<>` may instantiate.
+
+[endsect]
+
+[section:function_arity Detecting the Arity of Function Objects]
+
+In several places, Proto needs to know whether or not a function
+object `Fun` can be called with certain parameters and take a
+fallback action if not. This happens in _callable_context_ and
+in the _call_ transform. How does Proto know? It involves some
+tricky metaprogramming. Here's how.
+
+Another way of framing the question is by trying to implement
+the following `can_be_called<>` Boolean metafunction, which
+checks to see if a function object `Fun` can be called with
+parameters of type `A` and `B`:
+
+ template<typename Fun, typename A, typename B>
+ struct can_be_called;
+
+First, we define the following `dont_care` struct, which has an
+implicit conversion from anything. And not just any implicit
+conversion; it has a ellipsis conversion, which is the worst possible
+conversion for the purposes of overload resolution:
+
+ struct dont_care
+ {
+ dont_care(...);
+ };
+
+We also need some private type known only to us with an overloaded
+comma operator (!), and some functions that detect the presence of
+this type and return types with different sizes, as follows:
+
+ struct private_type
+ {
+ private_type const &operator,(int) const;
+ };
+
+ typedef char yes_type; // sizeof(yes_type) == 1
+ typedef char (&no_type)[2]; // sizeof(no_type) == 2
+
+ template<typename T>
+ no_type is_private_type(T const &);
+
+ yes_type is_private_type(private_type const &);
+
+Next, we implement a binary function object wrapper with a very
+strange conversion operator, whose meaning will become clear later.
+
+ template<typename Fun>
+ struct funwrap2 : Fun
+ {
+ funwrap2();
+ typedef private_type const &(*pointer_to_function)(dont_care, dont_care);
+ operator pointer_to_function() const;
+ };
+
+With all of these bits and pieces, we can implement `can_be_called<>` as
+follows:
+
+ template<typename Fun, typename A, typename B>
+ struct can_be_called
+ {
+ static funwrap2<Fun> &fun;
+ static A &a;
+ static B &b;
+
+ static bool const value = (
+ sizeof(no_type) == sizeof(is_private_type( (fun(a,b), 0) ))
+ );
+
+ typedef mpl::bool_<value> type;
+ };
+
+The idea is to make it so that `fun(a,b)` will always compile by adding
+our own binary function overload, but doing it in such a way that we can
+detect whether our overload was selected or not. And we rig it so that
+our overload is selected if there is really no better option. What follows
+is a description of how `can_be_called<>` works.
+
+We wrap `Fun` in a type that has an implicit conversion to a pointer to
+a binary function. An object `fun` of class type can be invoked as
+`fun(a, b)` if it has such a conversion operator, but since it involves
+a user-defined conversion operator, it is less preferred than an
+overloaded `operator()`, which requires no such conversion.
+
+The function pointer can accept any two arguments by virtue
+of the `dont_care` type. The conversion sequence for each argument is
+guaranteed to be the worst possible conversion sequence: an implicit
+conversion through an ellipsis, and a user-defined conversion to
+`dont_care`. In total, it means that `funwrap2<Fun>()(a, b)` will
+always compile, but it will select our overload only if there really is
+no better option.
+
+If there is a better option --- for example if `Fun` has an overloaded
+function call operator such as `void operator()(A a, B b)` --- then
+`fun(a, b)` will resolve to that one instead. The question now is how
+to detect which function got picked by overload resolution.
+
+Notice how `fun(a, b)` appears in `can_be_called<>`: `(fun(a, b), 0)`.
+Why do we use the comma operator there? The reason is because we are
+using this expression as the argument to a function. If the return type
+of `fun(a, b)` is `void`, it cannot legally be used as an argument to
+a function. The comma operator sidesteps the issue.
+
+This should also make plain the purpose of the overloaded comma operator
+in `private_type`. The return type of the pointer to function is
+`private_type`. If overload resolution selects our overload, then the
+type of `(fun(a, b), 0)` is `private_type`. Otherwise, it is `int`.
+That fact is used to dispatch to either overload of `is_private_type()`,
+which encodes its answer in the size of its return type.
+
+That's how it works with binary functions. Now repeat the above process
+for functions up to some predefined function arity, and you're done.
+
+[endsect]
+
+[section:ppmp_vs_tmp Avoiding Template Instiations With The Preprocessor]
+
 TODO
 
 [endsect]
+
+[endsect]

Modified: branches/proto/v3/libs/xpressive/proto/doc/installation.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/installation.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/installation.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -9,9 +9,11 @@
 
 [heading Getting Proto]
 
-Currently the only way to get Proto is through CVS via the boost project on
-SourceForge.net. Just go to [@http://sf.net/projects/boost] and follow the
-instructions there for anonymous CVS access.
+You can get Proto by downloading [^proto.zip] from
+[@http://www.boost-consulting.com/vault/index.php?directory=Template%20Metaprogramming]
+or by accessing Boost's SVN repository on SourceForge.net. Just go to
+[@http://svn.boost.org/trac/boost/wiki/BoostSubversion]
+and follow the instructions there for anonymous SVN access.
 
 [heading Building with Proto]
 
@@ -19,19 +21,22 @@
 your build scripts or link to any separate lib file to use it. All you need
 to do is `#include <boost/xpressive/proto/proto.hpp>`. This will include the
 core of Proto. If you want to use any transforms, you must include the
-appropriate header from the [^boost\/xpressive\/proto\/transform\/] directory.
+appropriate header from the [^boost\/proto\/transform\/] directory.
+Likewise for any evaluation contexts, which live in the
+[^boost\/proto\/context\/] directory.
 
 [heading Requirements]
 
-Proto depends on Boost. You must use the version in CVS HEAD.
+Proto depends on Boost. You must use either Boost version 1.34.1 or the
+version in SVN trunk.
 
 [heading Supported Compilers]
 
 Currently, Boost.Proto is known to work on the following compilers:
 
 * Visual C++ 7.1 and higher
-* GNU C++ 3.2 and higher
-* Intel on Linun 8.1 and higher
+* GNU C++ 3.4 and higher
+* Intel on Linux 8.1 and higher
 * Intel on Windows 9.1 and higher
 
 [note Please send any questions, comments and bug reports to eric <at> boost-consulting <dot> com.]

Modified: branches/proto/v3/libs/xpressive/proto/doc/preface.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/preface.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/preface.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,8 +7,8 @@
 
 [section Preface]
 
-[:Something witty.]
-[:[*['-- Someone Famous]]]
+[:["There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy.]]
+[:[*['-- William Shakespeare]]]
 
 [heading Description]
 
@@ -61,6 +61,14 @@
 with Fusion's iterators and algorithms.
 
 The syntax for the grammar-matching features of `proto::matches<>` is inspired
-by MPL's lambda expressions.
+by MPL's lambda expressions, and by Aleksey Gurtovoy's
+[@http://lists.boost.org/Archives/boost/2002/11/39718.php "round" lambda] notation.
+
+[heading Further Reading]
+
+A technical paper about an earlier version of Proto was accepted into the
+[@http://lcsd.cs.tamu.edu/2007/ ACM SIGPLAN Symposium on Library-Centric Software Design LCSD'07],
+and can be found at [@http://lcsd.cs.tamu.edu/2007/final/1/1_Paper.pdf]. The
+tree transforms described in that paper differ from what exists today.
 
 [endsect]

Modified: branches/proto/v3/libs/xpressive/proto/doc/proto.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/proto.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/proto.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
 [library Boost.Proto
     [quickbook 1.3]
     [authors [Niebler, Eric]]
- [copyright 2006 Eric Niebler]
+ [copyright 2008 Eric Niebler]
     [category template]
     [id proto]
     [dirname proto]
@@ -18,7 +18,7 @@
 ]
 
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -35,40 +35,46 @@
 
 [/ Links ]
 
+[def _PETE_ [@http://www.codesourcery.com/pooma/download.html PETE]]
 [def _spirit_fx_ [@http://spirit.sourceforge.net Spirit Parser Framework]]
 [def _spirit_ [@http://spirit.sourceforge.net Spirit]]
 [def _xpressive_ [@../../../libs/xpressive/doc/index.html Boost.Xpressive]]
-[def _expr_ [classref boost::proto::exprns_::expr<Tag,Args,1> `expr<>`]]
-[def _ref_ [classref boost::proto::refns_::ref_ `ref_<>`]]
-[def _unref_ [classref boost::proto::functional::unref `unref()`]]
-[def _deep_copy_ [classref boost::proto::functional::deep_copy `deep_copy()`]]
-[def _extends_ [classref boost::proto::exprns_::extends `extends<>`]]
-[def _as_expr_ [classref boost::proto::functional::as_expr `as_expr()`]]
-[def _as_arg_ [classref boost::proto::functional::as_arg `as_arg()`]]
-[def _make_expr_ [funcref boost::proto::make_expr `make_expr()`]]
-[def _unpack_expr_ [funcref boost::proto::unpack_expr `unpack_expr()`]]
-[def _matches_ [classref boost::proto::result_of::matches `matches<>`]]
-[def _or_ [classref boost::proto::control::or_ `or_<>`]]
-[def _and_ [classref boost::proto::control::and_ `and_<>`]]
-[def _if_ [classref boost::proto::control::if_ `if_<>`]]
-[def _not_ [classref boost::proto::control::not_ `not_<>`]]
-[def _exact_ [classref boost::proto::control::exact `exact<>`]]
-[def _convertible_to_ [classref boost::proto::control::convertible_to `convertible_to<>`]]
-[def _is_expr_ [classref boost::proto::result_if::is_expr `is_expr<>`]]
-[def _tag_of_ [classref boost::proto::result_if::tag_of `tag_of<>`]]
-[def _arg_ [funcref boost::proto::arg `arg()`]]
-[def _arg_c_ [funcref boost::proto::arg_c `arg_c()`]]
-[def _eval_ [classref boost::proto::functional::eval `eval()`]]
-[def _left_ [classref boost::proto::functional::left `left()`]]
-[def _right_ [classref boost::proto::functional::right `right()`]]
-[def _terminal_ [classref boost::proto::op::terminal `terminal<>`]]
-[def _unary_expr_ [classref boost::proto::op::unary_expr `unary_expr<>`]]
-[def _binary_expr_ [classref boost::proto::op::binary_expr `binary_expr<>`]]
-[def _literal_ [classref boost::proto::utility::literal `literal<>`]]
-[def _lit_ [funcref boost::proto::lit `lit()`]]
-[def _vararg_ [classref boost::proto::control::vararg `vararg<>`]]
-[def _default_context_ [classref boost::proto::context::default_context `default_context`]]
-[def _callable_context_ [classref boost::proto::context::callable_context `callable_context<>`]]
+[def _expr_ [classref boost::proto::exprns_::expr<Tag,Args,1> `expr<>`]]
+[def _ref_ [classref boost::proto::refns_::ref_ `ref_<>`]]
+[def _unref_ [classref boost::proto::functional::unref `unref()`]]
+[def _deep_copy_ [classref boost::proto::functional::deep_copy `deep_copy()`]]
+[def _extends_ [classref boost::proto::exprns_::extends `extends<>`]]
+[def _as_expr_ [funcref boost::proto::as_expr `as_expr()`]]
+[def _as_arg_ [funcref boost::proto::as_arg `as_arg()`]]
+[def _make_expr_ [funcref boost::proto::make_expr `make_expr()`]]
+[def _unpack_expr_ [funcref boost::proto::unpack_expr `unpack_expr()`]]
+[def _matches_ [classref boost::proto::result_of::matches `matches<>`]]
+[def _or_ [classref boost::proto::control::or_ `or_<>`]]
+[def _and_ [classref boost::proto::control::and_ `and_<>`]]
+[def _if_ [classref boost::proto::control::if_ `if_<>`]]
+[def _not_ [classref boost::proto::control::not_ `not_<>`]]
+[def _exact_ [classref boost::proto::control::exact `exact<>`]]
+[def _convertible_to_ [classref boost::proto::control::convertible_to `convertible_to<>`]]
+[def _is_expr_ [classref boost::proto::result_if::is_expr `is_expr<>`]]
+[def _tag_of_ [classref boost::proto::result_if::tag_of `tag_of<>`]]
+[def _arg_ [funcref boost::proto::arg `arg()`]]
+[def _arg_c_ [funcref boost::proto::arg_c `arg_c()`]]
+[def _eval_ [memberref boost::proto::eval `eval()`]]
+[def _left_ [classref boost::proto::functional::left `left()`]]
+[def _right_ [classref boost::proto::functional::right `right()`]]
+[def _terminal_ [classref boost::proto::op::terminal `terminal<>`]]
+[def _unary_expr_ [classref boost::proto::op::unary_expr `unary_expr<>`]]
+[def _binary_expr_ [classref boost::proto::op::binary_expr `binary_expr<>`]]
+[def _literal_ [classref boost::proto::utility::literal `literal<>`]]
+[def _lit_ [funcref boost::proto::lit `lit()`]]
+[def _vararg_ [classref boost::proto::control::vararg `vararg<>`]]
+[def _default_context_ [classref boost::proto::context::default_context `default_context`]]
+[def _callable_context_ [classref boost::proto::context::callable_context `callable_context<>`]]
+[def _null_context_ [classref boost::proto::context::null_context `null_context<>`]]
+[def _when_ [classref boost::proto::transform::when `when<>`]]
+[def _call_ [classref boost::proto::transform::call `call<>`]]
+[def _make_ [classref boost::proto::transform::make `make<>`]]
+[def _flatten_ [funcref boost::proto::flatten `flatten()`]]
 
 [include preface.qbk]
 
@@ -85,7 +91,7 @@
     [Describes the tools Proto provides for making your expression trees do
      something useful.]]
 [[[link boost_proto.users_guide.expression_introspection Expression Introspection]]
- [Describes Proto's grammar matching faciities, which make
+ [Describes Proto's grammar matching facilities, which make
      it easy to discover the structure of an expression tree.]]
 [[[link boost_proto.users_guide.expression_transformation Expression Transformation]]
     [Describes how to write expression transforms that turn an expression tree
@@ -118,7 +124,7 @@
 
 [endsect]
 
-[xinclude protodoc.xml]
+[xinclude proto.xml]
 
 [section Appendices]
 

Modified: branches/proto/v3/libs/xpressive/proto/doc/protodoc.xml
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/protodoc.xml (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/protodoc.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,27 +1,27 @@
 <?xml version="1.0" standalone="yes"?>
 <library-reference><header name="boost/xpressive/proto/args.hpp"><para>Contains definition of args&lt;&gt; class template. </para><namespace name="boost"><namespace name="proto"><namespace name="argsns_"><struct name="args0"><template>
       <template-type-parameter name="Arg0"/>
- </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>mpl::void_</type></typedef><typedef name="arg2"><type>mpl::void_</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef><data-member name="size" specifiers="static"><type>const long</type></data-member></struct><struct name="args1"><template>
+ </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><data-member name="size" specifiers="static"><type>const long</type></data-member><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>mpl::void_</type></typedef><typedef name="arg2"><type>mpl::void_</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef></struct><struct name="args1"><template>
       <template-type-parameter name="Arg0"/>
- </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>mpl::void_</type></typedef><typedef name="arg2"><type>mpl::void_</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef><data-member name="size" specifiers="static"><type>const long</type></data-member></struct><struct name="args2"><template>
+ </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><data-member name="size" specifiers="static"><type>const long</type></data-member><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>mpl::void_</type></typedef><typedef name="arg2"><type>mpl::void_</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef></struct><struct name="args2"><template>
       <template-type-parameter name="Arg0"/>
       <template-type-parameter name="Arg1"/>
- </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>mpl::void_</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef><data-member name="size" specifiers="static"><type>const long</type></data-member></struct><struct name="args3"><template>
+ </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><data-member name="size" specifiers="static"><type>const long</type></data-member><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>mpl::void_</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef></struct><struct name="args3"><template>
       <template-type-parameter name="Arg0"/>
       <template-type-parameter name="Arg1"/>
       <template-type-parameter name="Arg2"/>
- </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>Arg2</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef><data-member name="size" specifiers="static"><type>const long</type></data-member></struct><struct name="args4"><template>
+ </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><data-member name="size" specifiers="static"><type>const long</type></data-member><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>Arg2</type></typedef><typedef name="arg3"><type>mpl::void_</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef></struct><struct name="args4"><template>
       <template-type-parameter name="Arg0"/>
       <template-type-parameter name="Arg1"/>
       <template-type-parameter name="Arg2"/>
       <template-type-parameter name="Arg3"/>
- </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>Arg2</type></typedef><typedef name="arg3"><type>Arg3</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef><data-member name="size" specifiers="static"><type>const long</type></data-member></struct><struct name="args5"><template>
+ </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><data-member name="size" specifiers="static"><type>const long</type></data-member><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>Arg2</type></typedef><typedef name="arg3"><type>Arg3</type></typedef><typedef name="arg4"><type>mpl::void_</type></typedef></struct><struct name="args5"><template>
       <template-type-parameter name="Arg0"/>
       <template-type-parameter name="Arg1"/>
       <template-type-parameter name="Arg2"/>
       <template-type-parameter name="Arg3"/>
       <template-type-parameter name="Arg4"/>
- </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>Arg2</type></typedef><typedef name="arg3"><type>Arg3</type></typedef><typedef name="arg4"><type>Arg4</type></typedef><data-member name="size" specifiers="static"><type>const long</type></data-member></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/context.hpp"><para>Includes all the context classes in the context/ sub-directory. </para></header><header name="boost/xpressive/proto/context/callable.hpp"><para>Definintion of callable_context&lt;&gt;, an evaluation co
ntext for proto::eval() that explodes each node and calls the derived context type with the expressions constituents. If the derived context doesn't have an overload that handles this node, fall-back to the default_context. TODO: make the fall-back configurable! </para><namespace name="boost"><namespace name="proto"><namespace name="context"><struct name="callable_eval"><template>
+ </template><purpose>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. </purpose><description><para>A type sequence, for use as the 2nd parameter to the <computeroutput>expr&lt;&gt;</computeroutput> class template. The types in the sequence correspond to the children of a node in an expression tree. </para></description><data-member name="size" specifiers="static"><type>const long</type></data-member><typedef name="arg0"><type>Arg0</type></typedef><typedef name="arg1"><type>Arg1</type></typedef><typedef name="arg2"><type>Arg2</type></typedef><typedef name="arg3"><type>Arg3</type></typedef><typedef name="arg4"><type>Arg4</type></typedef></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/context.hpp"><para>Includes all the context classes in the context/ sub-directory. </para></header><header name="boost/xpressive/proto/context/callable.hpp"><para>Definintion of callable_context&lt;&gt;, an evaluation co
ntext for proto::eval() that explodes each node and calls the derived context type with the expressions constituents. If the derived context doesn't have an overload that handles this node, fall-back to the default_context. TODO: make the fall-back configurable! </para><namespace name="boost"><namespace name="proto"><namespace name="context"><struct name="callable_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
       <template-nontype-parameter name="Arity"><type>long</type></template-nontype-parameter>
@@ -54,10 +54,7 @@
       <template-type-parameter name="Context"/>
       <template-type-parameter name="Tag"/>
       <template-nontype-parameter name="Arity"><type>long</type></template-nontype-parameter>
- </template></struct><struct name="default_context"><description><para>default_context </para></description><struct name="eval"><template>
- <template-type-parameter name="Expr"/>
- <template-type-parameter name="ThisContext"><default>default_context const</default></template-type-parameter>
- </template><inherit access="public">boost::proto::context::default_eval&lt; Expr, ThisContext &gt;</inherit><description><para>default_context::eval </para></description></struct></struct><struct-specialization name="default_eval"><template>
+ </template></struct><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::posit</template-arg><template-arg>1</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
@@ -150,7 +147,7 @@
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::shift_right_assign</template-arg><template-arg>2</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::multilpies_assign</template-arg><template-arg>2</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::multiplies_assign</template-arg><template-arg>2</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::divides_assign</template-arg><template-arg>2</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
@@ -174,7 +171,7 @@
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::bitwise_xor_assign</template-arg><template-arg>2</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::terminal</template-arg><template-arg>0</template-arg></specialization><typedef name="result_type"><type>mpl::if_&lt; is_const &lt; Expr &gt;, typename <classname>proto::result_of::arg</classname>&lt; Expr &gt;::const_reference, typename <classname>proto::result_of::arg</classname>&lt; Expr &gt;::reference &gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name=""><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::terminal</template-arg><template-arg>0</template-arg></specialization><typedef name="result_type"><type>mpl::if_&lt; is_const&lt; Expr &gt;, typename <classname>proto::result_of::arg</classname>&lt; Expr &gt;::const_reference, typename <classname>proto::result_of::arg</classname>&lt; Expr &gt;::reference &gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name=""><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::post_inc</template-arg><template-arg>1</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
@@ -189,22 +186,28 @@
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::if_else_</template-arg><template-arg>3</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::comma</template-arg><template-arg>2</template-arg></specialization><typedef name="proto_arg0"><type><classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 0 &gt;::type, Context &gt;::type</type></typedef><typedef name="proto_arg1"><type><classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type, Context &gt;::type</type></typedef><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::comma</template-arg><template-arg>2</template-arg></specialization><typedef name="result_type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="Context"/>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>0</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type()&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>1</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type()&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>2</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>2</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>3</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 2 &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>3</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 2 &gt;::type &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specializat
ion><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>4</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 2 &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 3 &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></
parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>4</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 2 &gt;::type &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 3 &gt;::type &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><paramete
r name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="default_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>5</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 2 &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 3 &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename proto::result_of::arg_c&lt; Expr, 4 &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</t
ype><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/context/null.hpp"><para>Definintion of null_context&lt;&gt;, an evaluation context for proto::eval() that simply evaluates each child expression, doesn't combine the results at all, and returns void. </para><namespace name="boost"><namespace name="proto"><namespace name="context"><struct name="null_eval"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>proto::tag::function</template-arg><template-arg>5</template-arg></specialization><typedef name="function_type"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="result_type"><type>boost::result_of&lt; function_type(typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 1 &gt;::type &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 2 &gt;::type &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 3 &gt;::type &gt;::type, Context &gt;::type, typename <classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; typename proto::result_of::arg_c&lt; Expr, 4 &gt;::t
ype &gt;::type, Context &gt;::type)&gt;::type</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result_type</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct name="default_context"><description><para>default_context </para></description><struct name="eval"><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="ThisContext"><default>default_context const</default></template-type-parameter>
+ </template><inherit access="public">boost::proto::context::default_eval&lt; Expr, ThisContext &gt;</inherit><description><para>default_context::eval </para></description></struct></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/context/null.hpp"><para>Definintion of null_context&lt;&gt;, an evaluation context for proto::eval() that simply evaluates each child expression, doesn't combine the results at all, and returns void. </para><namespace name="boost"><namespace name="proto"><namespace name="context"><struct name="null_eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
       <template-nontype-parameter name="Arity"><type>long</type></template-nontype-parameter>
@@ -229,75 +232,99 @@
     </template><specialization><template-arg>Expr</template-arg><template-arg>Context</template-arg><template-arg>5</template-arg></specialization><typedef name="result_type"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>void</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></method></method-group></struct-specialization><struct name="null_context"><description><para>null_context </para></description><struct name="eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="ThisContext"><default>null_context const</default></template-type-parameter>
- </template><inherit access="public">boost::proto::context::null_eval&lt; Expr, ThisContext &gt;</inherit><description><para>null_context::eval </para></description></struct></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/debug.hpp"><para>Utilities for debugging proto expression trees </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="display_expr"><method-group name="public member functions"><method name="operator()" cv="const"><type>void</type><template>
+ </template><inherit access="public">boost::proto::context::null_eval&lt; Expr, ThisContext &gt;</inherit><description><para>null_context::eval </para></description></struct></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/debug.hpp"><para>Utilities for debugging Proto expression trees </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="display_expr"><purpose>Pretty-print a Proto expression tree. </purpose><description><para>A PolymorphicFunctionObject which accepts a Proto expression tree and pretty-prints it to an <computeroutput>ostream</computeroutput> for debugging purposes. </para></description><typedef name="result_type"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>void</type><template>
           <template-type-parameter name="Args"/>
- </template><parameter name="expr"><paramtype>expr&lt; <classname>tag::terminal</classname>, Args, 0 &gt; const &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>void</type><template>
+ </template><parameter name="expr"><paramtype>proto::expr&lt; <classname>tag::terminal</classname>, Args, 0 &gt; const &amp;</paramtype></parameter><purpose>Pretty-print the current node in a Proto expression tree. </purpose></method><method name="operator()" cv="const"><type>void</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="Args"/>
- </template><parameter name="expr"><paramtype>expr&lt; Tag, Args, 1 &gt; const &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>void</type><template>
+ </template><parameter name="expr"><paramtype>proto::expr&lt; Tag, Args, 1 &gt; const &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>void</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="Args"/>
- </template><parameter name="expr"><paramtype>expr&lt; Tag, Args, 0 &gt; const &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>void</type><template>
+ </template><parameter name="expr"><paramtype>proto::expr&lt; Tag, Args, 0 &gt; const &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>void</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></method></method-group><constructor><parameter name="depth"><paramtype>int</paramtype><default>0</default></parameter><parameter name="sout"><paramtype>std::ostream &amp;</paramtype><default>std::cout</default></parameter></constructor></struct></namespace><namespace name="tag"><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::posit</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::negate</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::dereference</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::complement</classname></paramtype></parameter></function><function name="proto_t
ag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::address_of</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::logical_not</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::pre_inc</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::pre_dec</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::post_inc</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::post_dec</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classna
me>tag::shift_left</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::shift_right</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::multiplies</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::divides</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::modulus</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::plus</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::minus</classname></paramtype></parameter></function><function name
="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::less</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::greater</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::less_equal</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::greater_equal</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::equal_to</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::not_equal_to</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramt
ype><classname>tag::logical_or</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::logical_and</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_and</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_or</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_xor</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::comma</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::mem_ptr</classname></paramtype></parameter></
function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::shift_left_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::shift_right_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::multilpies_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::divides_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::modulus_assign</classname></paramtype></parameter></function><function name="proto_tag_na
me"><type>char const *</type><parameter name=""><paramtype><classname>tag::plus_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::minus_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_and_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_or_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_xor_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::subscript</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><paramete
r name=""><paramtype><classname>tag::if_else_</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::function</classname></paramtype></parameter></function><data-member name="proto_tag_name"><type><classname>hidden_detail_::printable_tag</classname>&lt; Tag &gt;::type</type></data-member></namespace><function name="display_expr"><type>void</type><template>
+ </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method></method-group><constructor><parameter name="depth"><paramtype>int</paramtype><default>0</default><description><para>The starting indentation depth for this node. Children nodes will be displayed at a starting depth of <computeroutput>depth+4</computeroutput>. </para></description></parameter><parameter name="sout"><paramtype>std::ostream &amp;</paramtype><default>std::cout</default><description><para>The <computeroutput>ostream</computeroutput> to which the expression tree will be written. </para></description></parameter><description><para>
+</para></description></constructor><method-group name="private member functions"/><copy-assignment><parameter name=""><paramtype><classname>display_expr</classname> const &amp;</paramtype></parameter></copy-assignment></struct></namespace><namespace name="tag"><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::posit</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::negate</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::dereference</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::complement</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::address_of</classname></pa
ramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::logical_not</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::pre_inc</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::pre_dec</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::post_inc</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::post_dec</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::shift_left</classname></paramtype></parameter></function><function name="proto_tag_name"><type>cha
r const *</type><parameter name=""><paramtype><classname>tag::shift_right</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::multiplies</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::divides</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::modulus</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::plus</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::minus</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::less</classname><
/paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::greater</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::less_equal</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::greater_equal</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::equal_to</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::not_equal_to</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::logical_or</classname></paramtype></parameter></function><function name="proto_tag_nam
e"><type>char const *</type><parameter name=""><paramtype><classname>tag::logical_and</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_and</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_or</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_xor</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::comma</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::mem_ptr</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname
>tag::assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::shift_left_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::shift_right_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::multiplies_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::divides_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::modulus_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::plus_assign</classname></paramt
ype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::minus_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_and_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_or_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::bitwise_xor_assign</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::subscript</classname></paramtype></parameter></function><function name="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::if_else_</classname></paramtype></parameter></function><function name
="proto_tag_name"><type>char const *</type><parameter name=""><paramtype><classname>tag::function</classname></paramtype></parameter></function></namespace><overloaded-function name="display_expr"><signature><type>void</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></function><function name="display_expr"><type>void</type><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>The Proto expression tree to pretty-print </para></description></parameter><parameter name="sout"><paramtype>std::ostream &amp;</paramtype><description><para>The <computeroutput>ostream</computeroutput> to which the output should be written. </para></description></parameter></signature><signature><type>void</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="sout"><paramtype>std::ostream &amp;</paramtype></parameter></function></namespace></namespace></header><header name="boost/xpressive/proto/deep_copy.hpp"><para>Replace all nodes stored by reference by nodes stored by value. </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="deep_copy"><struct-specialization name="result"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></signature><purpose>Pretty-print a Proto expression tree. </purpose><description><para>
+
+</para></description><notes><para>Equivalent to <computeroutput>functional::display_expr(0, sout)(expr)</computeroutput> </para></notes></overloaded-function></namespace></namespace></header><header name="boost/xpressive/proto/deep_copy.hpp"><para>Replace all nodes stored by reference by nodes stored by value. </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="deep_copy"><purpose>A PolymorphicFunctionObject type for deep-copying Proto expression trees. </purpose><description><para>A PolymorphicFunctionObject type for deep-copying Proto expression trees. When a tree is deep-copied, all internal nodes and most terminals held by reference are instead held by value.</para><para>
+</para></description><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>This(Expr)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::deep_copy</classname>&lt; Expr &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><typedef name="type"><type><classname>result_of::deep_copy</classname>&lt; typename boost::remove_const&lt; typename boost::remove_reference&lt; Expr &gt;::type &gt;::type &gt;::type</type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::deep_copy</classname>&lt; Expr &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="result_of"><struct name="deep_copy"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><purpose>Deep-copies a Proto expression tree, turning all nodes and terminals held by reference into ones held by value. </purpose></method></method-group></struct></namespace><namespace name="result_of"><struct name="deep_copy"><template>
       <template-type-parameter name="Expr"/>
- </template></struct></namespace><data-member name="deep_copy"><type><classname>functional::deep_copy</classname> const</type></data-member></namespace></namespace></header><header name="boost/xpressive/proto/domain.hpp"><para>Contains definition of domain&lt;&gt; class template, for defining domains with a grammar for controlling operator overloading. </para><namespace name="boost"><namespace name="proto"><namespace name="domainns_"><struct name="domain"><template>
+ </template><purpose>A metafunction for calculating the return type of <computeroutput>proto::deep_copy()</computeroutput>. </purpose><description><para>A metafunction for calculating the return type of <computeroutput>proto::deep_copy()</computeroutput>. The type parameter <computeroutput>Expr</computeroutput> should be the type of a Proto expression tree. It should not be a reference type, nor should it be cv-qualified. </para></description><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct></namespace><data-member name="deep_copy"><type><classname>functional::deep_copy</classname> const</type><purpose>A PolymorphicFunctionObject for deep-copying Proto expression trees. </purpose><description><para>A PolymorphicFunctionObject for deep-copying Proto expression trees. When a tree is deep-copied, all internal nodes and most terminals held by reference are instead held by value.</para><para>
+<para>proto::functional::deep_copy. </para>
+</para></description></data-member></namespace></namespace></header><header name="boost/xpressive/proto/domain.hpp"><para>Contains definition of domain&lt;&gt; class template and helpers for defining domains with a generator and a grammar for controlling operator overloading. </para><namespace name="boost"><namespace name="proto"><namespace name="domainns_"><struct name="domain"><template>
       <template-type-parameter name="Generator"/>
       <template-type-parameter name="Grammar"/>
- </template><inherit access="public">Generator</inherit><typedef name="grammar"><type>Grammar</type></typedef></struct><struct name="default_domain"><inherit access="public">boost::proto::domainns_::domain&lt; &gt;</inherit></struct><struct name="deduce_domain"/></namespace><namespace name="result_of"><struct name="is_domain"><template>
+ </template><inherit access="public">Generator</inherit><purpose>For use in defining domain tags to be used with <computeroutput>proto::extends&lt;&gt;</computeroutput>. A Domain associates an expression type with a Generator, and optionally a Grammar. </purpose><description><para>The Generator determines how new expressions in the domain are constructed. Typically, a generator wraps all new expressions in a wrapper that imparts domain-specific behaviors to expressions within its domain. (See <computeroutput>proto::extends&lt;&gt;</computeroutput>.)</para><para>The Grammar determines whether a given expression is valid within the domain, and automatically disables any operator overloads which would cause an invalid expression to be created. By default, the Grammar parameter defaults to the wildcard, <computeroutput>proto::_</computeroutput>, which makes all expressions valid within the domain.</para><para>Example: <programlisting> template&lt;typename Expr&gt;
+ struct MyExpr;
+
+ struct MyGrammar
+ : or_&lt; terminal&lt;_&gt;, plus&lt;MyGrammar, MyGrammar&gt; &gt;
+ {};
+
+ // Define MyDomain, in which all expressions are
+ // wrapped in MyExpr&lt;&gt; and only expressions that
+ // conform to MyGrammar are allowed.
+ struct MyDomain
+ : domain&lt;generator&lt;MyExpr&gt;, MyGrammar&gt;
+ {};
+
+ // Use MyDomain to define MyExpr
+ template&lt;typename Expr&gt;
+ struct MyExpr
+ : extends&lt;Expr, MyExpr&lt;Expr&gt;, MyDomain&gt;
+ {
+ // ...
+ };
+</programlisting> </para></description><typedef name="proto_grammar"><type>Grammar</type></typedef></struct><struct name="default_domain"><inherit access="public">boost::proto::domainns_::domain&lt; &gt;</inherit><purpose>The domain expressions have by default, if <computeroutput>proto::extends&lt;&gt;</computeroutput> has not been used to associate a domain with an expression. </purpose></struct><struct name="deduce_domain"><inherit access="public">boost::proto::domainns_::domain&lt; Generator, Grammar &gt;</inherit><purpose>A pseudo-domain for use in functions and metafunctions that require a domain parameter. It indicates that the domain of the parent node should be inferred from the domains of the children nodes. </purpose><description><para>
+</para></description></struct></namespace><namespace name="result_of"><struct name="is_domain"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="EnableIf"/>
- </template></struct><struct name="domain_of"><template>
+ </template><inherit access="public">boost::mpl::false_</inherit><description><para>A metafunction that returns <computeroutput>mpl::true_</computeroutput> if the type <computeroutput>T</computeroutput> is the type of a Proto domain; <computeroutput>mpl::false_</computeroutput> otherwise. If <computeroutput>T</computeroutput> inherits from <computeroutput>proto::domain&lt;&gt;</computeroutput>, <computeroutput>is_domain&lt;T&gt;</computeroutput> is <computeroutput>mpl::true_</computeroutput>. </para></description></struct><struct name="domain_of"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="EnableIf"/>
- </template><typedef name="type"><type><classname>default_domain</classname></type></typedef></struct><struct-specialization name="is_domain"><template>
- <template-type-parameter name="T"/>
- </template><specialization><template-arg>T</template-arg><template-arg>typename T::proto_is_domain_</template-arg></specialization></struct-specialization><struct-specialization name="domain_of"><template>
- <template-type-parameter name="T"/>
- </template><specialization><template-arg>T</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization><typedef name="type"><type>T::proto_domain</type></typedef></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/eval.hpp"><para>Contains the eval() expression evaluator. </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="eval"><struct-specialization name="result"><template>
+ </template><description><para>A metafunction that returns the domain of a given type. If <computeroutput>T</computeroutput> is a Proto expression type, it returns that expression's associated domain. If not, it returns <computeroutput>proto::default_domain</computeroutput>. </para></description><typedef name="type"><type>default_domain</type></typedef></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/eval.hpp"><para>Contains the eval() expression evaluator. </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="eval"><purpose>A PolymorphicFunctionObject type for evaluating a given Proto expression with a given context. </purpose><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><specialization><template-arg>This(Expr</template-arg><template-arg>Context)</template-arg></specialization><inherit access="public">boost::proto::result_of::eval&lt; remove_reference&lt; Expr &gt;::type, remove_reference&lt; Context &gt;::type &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>proto::result_of::eval</classname>&lt; Expr, Context &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>Context)</template-arg></specialization><typedef name="type"><type><classname>proto::result_of::eval</classname>&lt; typename remove_reference&lt; Expr &gt;::type, typename remove_reference&lt; Context &gt;::type &gt;::type</type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>proto::result_of::eval</classname>&lt; Expr, Context &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="Context"/>
- </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>proto::result_of::eval</classname>&lt; Expr, Context &gt;::type</type><template>
+ </template><parameter name="expr"><paramtype>Expr &amp;</paramtype><description><para>The Proto expression to evaluate </para></description></parameter><parameter name="context"><paramtype>Context &amp;</paramtype><description><para>The context in which the expression should be evaluated. </para></description></parameter><purpose>Evaluate a given Proto expression with a given context. </purpose><description><para>
+
+</para></description><returns><para><computeroutput>typename Context::template eval&lt;Expr&gt;()(expr, context)</computeroutput> </para></returns></method><method name="operator()" cv="const"><type><classname>proto::result_of::eval</classname>&lt; Expr, Context &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="Context"/>
- </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context const &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="result_of"><struct name="eval"><template>
+ </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="context"><paramtype>Context const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method></method-group></struct></namespace><namespace name="result_of"><struct name="eval"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Context"/>
- </template><typedef name="type"><type>Context::template <classname>eval</classname>&lt; Expr &gt;::result_type</type></typedef></struct></namespace><data-member name="eval"><type><classname>functional::eval</classname> const</type></data-member></namespace></namespace></header><header name="boost/xpressive/proto/expr.hpp"><para>Contains definition of expr&lt;&gt; class template. </para><namespace name="boost"><namespace name="proto"><namespace name="exprns_"><struct-specialization name="expr"><template>
+ </template><purpose>A metafunction for calculating the return type of <computeroutput>proto::eval()</computeroutput> given a certain <computeroutput>Expr</computeroutput> and <computeroutput>Context</computeroutput> types. </purpose><description><para>
+</para></description><typedef name="type"><type>Context::template <classname>eval</classname>&lt; Expr &gt;::result_type</type></typedef></struct></namespace><data-member name="eval"><type><classname>functional::eval</classname> const</type><purpose>A PolymorphicFunctionObject for evaluating a given Proto expression with a given context. </purpose><description><para><para>proto::functional::eval. </para>
+</para></description></data-member></namespace></namespace></header><header name="boost/xpressive/proto/expr.hpp"><para>Contains definition of expr&lt;&gt; class template. </para><namespace name="boost"><namespace name="proto"><namespace name="exprns_"><struct-specialization name="expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Args"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>0</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args1&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type. </para></description><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>0</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args0&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type.</para><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a valid Fusion random-access sequence, where the elements of the sequence are the children expressions. </para></description><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 0 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type><classname>default_domain</classname></type></typedef><typedef name="fusion_tag"><type>tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>void</type></typedef><typedef name="proto_arg2"><type>void</type></typedef><typedef name="proto_arg3"><type>void</
type></typedef><typedef name="proto_arg4"><type>void</type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
-</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+ </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 0 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type>default_domain</type></typedef><typedef name="fusion_tag"><type>proto::tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>void</type></typedef><typedef name="proto_arg2"><type>void</type></typedef><typedef name="proto_arg3"><type>void</type></typedef><
typedef name="proto_arg4"><type>void</type></typedef><data-member name="arg0"><type>proto_arg0</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
+</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype><description><para>The rhs. </para></description></parameter><description><para>Subscript</para><para>
 
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv=""><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv=""><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv=""><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+ </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv=""><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv=""><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr &gt; &gt; &gt; const</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv=""><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr &gt; &gt; &gt; const</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop2</classname>&lt; expr const , const A0, const A1 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
@@ -321,11 +348,7 @@
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><data-member name="arg0"><type>proto_arg0</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static expr</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static expr</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> object initialized with the specified arguments. </para></returns></method><method name="make" cv=""><type>static expr</type><template>
@@ -339,22 +362,18 @@
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><parameter name=""><paramtype><emphasis>unspecified</emphasis></paramtype><default>0</default></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method></method-group></struct-specialization><struct-specialization name="expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Args"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>1</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args1&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type. </para></description><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>1</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args0&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type.</para><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a valid Fusion random-access sequence, where the elements of the sequence are the children expressions. </para></description><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 1 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type><classname>default_domain</classname></type></typedef><typedef name="fusion_tag"><type>tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>void</type></typedef><typedef name="proto_arg2"><type>void</type></typedef><typedef name="proto_arg3"><type>void</
type></typedef><typedef name="proto_arg4"><type>void</type></typedef><typedef name="address_of_hack_type_"><description><para>If <computeroutput>Tag</computeroutput> is <computeroutput>boost::proto::tag::address_of</computeroutput> and <computeroutput>proto_arg0</computeroutput> is <computeroutput>proto::ref_&lt;T&gt;</computeroutput>, then <computeroutput>address_of_hack_type_</computeroutput> is <computeroutput>T*</computeroutput>. Otherwise, it is some undefined type. </para></description><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
+ </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 1 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type>default_domain</type></typedef><typedef name="fusion_tag"><type>proto::tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>void</type></typedef><typedef name="proto_arg2"><type>void</type></typedef><typedef name="proto_arg3"><type>void</type></typedef><
typedef name="proto_arg4"><type>void</type></typedef><typedef name="address_of_hack_type_"><description><para>If <computeroutput>Tag</computeroutput> is <computeroutput>boost::proto::tag::address_of</computeroutput> and <computeroutput>proto_arg0</computeroutput> is <computeroutput>proto::ref_&lt;T&gt;</computeroutput>, then <computeroutput>address_of_hack_type_</computeroutput> is <computeroutput>T*</computeroutput>. Otherwise, it is some undefined type. </para></description><type><emphasis>unspecified</emphasis></type></typedef><data-member name="arg0"><type>proto_arg0</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
 </para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="conversion-operator" cv="const"><type>address_of_hack_type_</type><description><para>
 
-</para></description><returns><para>The address of <computeroutput>this-&gt;arg0</computeroutput> if <computeroutput>Tag</computeroutput> is <computeroutput>boost::proto::tag::address_of</computeroutput>. Otherwise, this function will fail to compile.</para></returns><notes><para>Proto overloads <computeroutput>operator&amp;</computeroutput>, which means that proto-ified objects cannot have their addresses taken, unless we use the following hack to make <computeroutput>&amp;x</computeroutput> implicitly convertible to <computeroutput>X*</computeroutput>. </para></notes></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>The address of <computeroutput>this-&gt;arg0</computeroutput> if <computeroutput>Tag</computeroutput> is <computeroutput>boost::proto::tag::address_of</computeroutput>. Otherwise, this function will fail to compile.</para></returns><notes><para>Proto overloads <computeroutput>operator&amp;</computeroutput>, which means that proto-ified objects cannot have their addresses taken, unless we use the following hack to make <computeroutput>&amp;x</computeroutput> implicitly convertible to <computeroutput>X*</computeroutput>. </para></notes></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype><description><para>The rhs. </para></description></parameter><description><para>Subscript</para><para>
 
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop2</classname>&lt; expr const , const A0, const A1 &gt;::type const</type><template>
@@ -375,30 +394,22 @@
 
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing an assignment of <computeroutput>a</computeroutput> to <computeroutput>*this</computeroutput>. </para></returns></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><data-member name="arg0"><type>proto_arg0</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static expr</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static expr</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> object initialized with the specified arguments. </para></returns></method></method-group></struct-specialization><struct-specialization name="expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Args"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>2</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args1&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type. </para></description><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>2</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args0&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type.</para><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a valid Fusion random-access sequence, where the elements of the sequence are the children expressions. </para></description><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 2 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type><classname>default_domain</classname></type></typedef><typedef name="fusion_tag"><type>tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>void</type></typedef><typedef name="proto_arg3"><type>
void</type></typedef><typedef name="proto_arg4"><type>void</type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
-</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+ </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 2 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type>default_domain</type></typedef><typedef name="fusion_tag"><type>proto::tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>void</type></typedef><typedef name="proto_arg3"><type>void</type></typ
edef><typedef name="proto_arg4"><type>void</type></typedef><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
+</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype><description><para>The rhs. </para></description></parameter><description><para>Subscript</para><para>
 
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop2</classname>&lt; expr const , const A0, const A1 &gt;::type const</type><template>
@@ -419,31 +430,23 @@
 
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing an assignment of <computeroutput>a</computeroutput> to <computeroutput>*this</computeroutput>. </para></returns></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static expr</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static expr</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 const &amp;</paramtype></parameter><description><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> object initialized with the specified arguments. </para></returns></method></method-group></struct-specialization><struct-specialization name="expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Args"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>3</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args1&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type. </para></description><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>3</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args0&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type.</para><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a valid Fusion random-access sequence, where the elements of the sequence are the children expressions. </para></description><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 3 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type><classname>default_domain</classname></type></typedef><typedef name="fusion_tag"><type>tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>Args::arg2</type></typedef><typedef name="proto_arg3">
<type>void</type></typedef><typedef name="proto_arg4"><type>void</type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
-</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+ </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 3 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type>default_domain</type></typedef><typedef name="fusion_tag"><type>proto::tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>Args::arg2</type></typedef><typedef name="proto_arg3"><type>void</type
></typedef><typedef name="proto_arg4"><type>void</type></typedef><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><data-member name="arg2"><type>proto_arg2</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
+</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype><description><para>The rhs. </para></description></parameter><description><para>Subscript</para><para>
 
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop2</classname>&lt; expr const , const A0, const A1 &gt;::type const</type><template>
@@ -464,11 +467,7 @@
 
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing an assignment of <computeroutput>a</computeroutput> to <computeroutput>*this</computeroutput>. </para></returns></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><data-member name="arg2"><type>proto_arg2</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static expr</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static expr</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
@@ -476,20 +475,16 @@
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> object initialized with the specified arguments. </para></returns></method></method-group></struct-specialization><struct-specialization name="expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Args"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>4</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args1&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type. </para></description><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>4</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args0&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type.</para><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a valid Fusion random-access sequence, where the elements of the sequence are the children expressions. </para></description><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 4 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type><classname>default_domain</classname></type></typedef><typedef name="fusion_tag"><type>tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>Args::arg2</type></typedef><typedef name="proto_arg3">
<type>Args::arg3</type></typedef><typedef name="proto_arg4"><type>void</type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
-</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+ </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 4 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type>default_domain</type></typedef><typedef name="fusion_tag"><type>proto::tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>Args::arg2</type></typedef><typedef name="proto_arg3"><type>Args::arg3
</type></typedef><typedef name="proto_arg4"><type>void</type></typedef><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><data-member name="arg2"><type>proto_arg2</type></data-member><data-member name="arg3"><type>proto_arg3</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
+</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype><description><para>The rhs. </para></description></parameter><description><para>Subscript</para><para>
 
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop2</classname>&lt; expr const , const A0, const A1 &gt;::type const</type><template>
@@ -510,11 +505,7 @@
 
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing an assignment of <computeroutput>a</computeroutput> to <computeroutput>*this</computeroutput>. </para></returns></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><data-member name="arg2"><type>proto_arg2</type></data-member><data-member name="arg3"><type>proto_arg3</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static expr</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static expr</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
@@ -523,20 +514,16 @@
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> object initialized with the specified arguments. </para></returns></method></method-group></struct-specialization><struct-specialization name="expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Args"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>5</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args1&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type. </para></description><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Args</template-arg><template-arg>5</template-arg></specialization><purpose>Representation of a node in an expression tree. </purpose><description><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a node in an expression template tree. It is a container for its children sub-trees. It also serves as the terminal nodes of the tree.</para><para><computeroutput>Tag</computeroutput> is type that represents the operation encoded by this expression. It is typically one of the structs in the <computeroutput>boost::proto::tag</computeroutput> namespace, but it doesn't have to be. If the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput> then this <computeroutput>expr&lt;&gt;</computeroutput> type represents a leaf in the expression tree.</para><para><computeroutput>Args</computeroutput> is a type list representing the type of the children of this expression. It is an instanti
ation of one of <computeroutput>proto::args1&lt;&gt;</computeroutput>, <computeroutput>proto::args2&lt;&gt;</computeroutput>, etc. The children types must all themselves be either <computeroutput>expr&lt;&gt;</computeroutput> or <computeroutput>proto::ref_&lt;proto::expr&lt;&gt;&gt;</computeroutput>, unless the <computeroutput>Tag</computeroutput> type is <computeroutput>boost::proto::tag::terminal</computeroutput>, in which case <computeroutput>Args</computeroutput> must be <computeroutput>proto::args0&lt;T&gt;</computeroutput>, where <computeroutput>T</computeroutput> can be any type.</para><para><computeroutput>proto::expr&lt;&gt;</computeroutput> is a valid Fusion random-access sequence, where the elements of the sequence are the children expressions. </para></description><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 5 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type><classname>default_domain</classname></type></typedef><typedef name="fusion_tag"><type>tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>Args::arg2</type></typedef><typedef name="proto_arg3">
<type>Args::arg3</type></typedef><typedef name="proto_arg4"><type>Args::arg4</type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
-</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
+ </template><description><para>Encodes the return type of <computeroutput>expr&lt;&gt;operator()</computeroutput>, for use with <computeroutput>boost::result_of&lt;&gt;</computeroutput> </para></description><typedef name="type"><type>result_of::funop&lt; Sig, expr &gt;::type</type></typedef></struct><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arity"><type>mpl::long_&lt; 5 &gt;</type></typedef><typedef name="proto_base_expr"><type>expr</type></typedef><typedef name="proto_args"><type>Args</type></typedef><typedef name="proto_domain"><type>default_domain</type></typedef><typedef name="fusion_tag"><type>proto::tag::proto_expr</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>expr</type></typedef><typedef name="proto_arg0"><type>Args::arg0</type></typedef><typedef name="proto_arg1"><type>Args::arg1</type></typedef><typedef name="proto_arg2"><type>Args::arg2</type></typedef><typedef name="proto_arg3"><type>Args::arg3
</type></typedef><typedef name="proto_arg4"><type>Args::arg4</type></typedef><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><data-member name="arg2"><type>proto_arg2</type></data-member><data-member name="arg3"><type>proto_arg3</type></data-member><data-member name="arg4"><type>proto_arg4</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>expr const &amp;</type><description><para>
+</para></description><returns><para>*this </para></returns></method><method name="proto_base" cv=""><type>expr &amp;</type><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype><description><para>The rhs. </para></description></parameter><description><para>Subscript</para><para>
 
-</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>expr&lt; <classname>tag::subscript</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
+</para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing <computeroutput>*this</computeroutput> subscripted with <computeroutput>a</computeroutput>. </para></returns></method><method name="operator[]" cv="const"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; ref_&lt; expr const &gt;, typename <classname>result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; const</type><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; expr const &gt; &gt; &gt; const</type><description><para>Function call</para><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing the function invocation of <computeroutput/>(*this)(). </para></returns></method><method name="operator()" cv="const"><type><classname>result_of::funop1</classname>&lt; expr const , const A0 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::funop2</classname>&lt; expr const , const A0, const A1 &gt;::type const</type><template>
@@ -557,11 +544,7 @@
 
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> node representing an assignment of <computeroutput>a</computeroutput> to <computeroutput>*this</computeroutput>. </para></returns></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><data-member name="arg0"><type>proto_arg0</type></data-member><data-member name="arg1"><type>proto_arg1</type></data-member><data-member name="arg2"><type>proto_arg2</type></data-member><data-member name="arg3"><type>proto_arg3</type></data-member><data-member name="arg4"><type>proto_arg4</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static expr</type><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static expr</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
@@ -570,100 +553,95 @@
         </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 const &amp;</paramtype></parameter><parameter name="a2"><paramtype>A2 const &amp;</paramtype></parameter><parameter name="a3"><paramtype>A3 const &amp;</paramtype></parameter><parameter name="a4"><paramtype>A4 const &amp;</paramtype></parameter><description><para>
 </para></description><returns><para>A new <computeroutput>expr&lt;&gt;</computeroutput> object initialized with the specified arguments. </para></returns></method></method-group></struct-specialization></namespace><namespace name="result_of"><struct name="funop0"><template>
       <template-type-parameter name="Expr"/>
- </template><typedef name="type"><type>expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; <classname>ref_</classname>&lt; Expr &gt;&gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
+ </template><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose><typedef name="type"><type>proto::expr&lt; <classname>tag::function</classname>, <classname>args1</classname>&lt; ref_&lt; Expr &gt;&gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr()</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop0&lt; This &gt;</inherit></struct-specialization><struct-specialization name="funop"><template>
+ </template><specialization><template-arg>Expr()</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop0&lt; This &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr const ()</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop0&lt; This const &gt;</inherit></struct-specialization><struct name="funop1"><template>
+ </template><specialization><template-arg>Expr const ()</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop0&lt; Expr &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct name="funop1"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
- </template><typedef name="type"><type>expr&lt; <classname>tag::function</classname>, <classname>args2</classname>&lt; <classname>ref_</classname>&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
+ </template><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose><typedef name="type"><type>proto::expr&lt; <classname>tag::function</classname>, <classname>args2</classname>&lt; ref_&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr(A0)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop1&lt; This, remove_reference&lt; A0 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="funop"><template>
+ </template><specialization><template-arg>Expr(A0)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop1&lt; This, remove_reference&lt; A0 &gt;::type &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr const (A0)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop1&lt; This const , remove_reference&lt; A0 &gt;::type &gt;</inherit></struct-specialization><struct name="funop2"><template>
+ </template><specialization><template-arg>Expr const (A0)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop1&lt; Expr, A0 &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct name="funop2"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
- </template><typedef name="type"><type>expr&lt; <classname>tag::function</classname>, <classname>args3</classname>&lt; <classname>ref_</classname>&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A1 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
+ </template><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose><typedef name="type"><type>proto::expr&lt; <classname>tag::function</classname>, <classname>args3</classname>&lt; ref_&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A1 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr(A0</template-arg><template-arg>A1)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop2&lt; This, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="funop"><template>
+ </template><specialization><template-arg>Expr(A0</template-arg><template-arg>A1)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop2&lt; This, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr const (A0</template-arg><template-arg>A1)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop2&lt; This const , remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type &gt;</inherit></struct-specialization><struct name="funop3"><template>
+ </template><specialization><template-arg>Expr const (A0</template-arg><template-arg>A1)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop2&lt; Expr, A0, A1 &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct name="funop3"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
- </template><typedef name="type"><type>expr&lt; <classname>tag::function</classname>, <classname>args4</classname>&lt; <classname>ref_</classname>&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A1 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A2 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>A2 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
+ </template><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose><typedef name="type"><type>proto::expr&lt; <classname>tag::function</classname>, <classname>args4</classname>&lt; ref_&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A1 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A2 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>A2 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop3&lt; This, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="funop"><template>
+ </template><specialization><template-arg>Expr(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop3&lt; This, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr const (A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop3&lt; This const , remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type &gt;</inherit></struct-specialization><struct name="funop4"><template>
+ </template><specialization><template-arg>Expr const (A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop3&lt; Expr, A0, A1, A2 &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct name="funop4"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
- </template><typedef name="type"><type>expr&lt; <classname>tag::function</classname>, <classname>args5</classname>&lt; <classname>ref_</classname>&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A1 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A2 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A3 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>A2 &amp;</paramtype></parameter><parameter name="a3"><paramtype>A3 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="funop"><template>
+ </template><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose><typedef name="type"><type>proto::expr&lt; <classname>tag::function</classname>, <classname>args5</classname>&lt; ref_&lt; Expr &gt;, typename <classname>result_of::as_arg</classname>&lt; A0 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A1 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A2 &gt;::type, typename <classname>result_of::as_arg</classname>&lt; A3 &gt;::type &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type const</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>A2 &amp;</paramtype></parameter><parameter name="a3"><paramtype>A3 &amp;</paramtype></parameter></method><
/method-group></struct><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop4&lt; This, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type, remove_reference&lt; A3 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="funop"><template>
+ </template><specialization><template-arg>Expr(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop4&lt; This, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type, remove_reference&lt; A3 &gt;::type &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization><struct-specialization name="funop"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="This"/>
- </template><specialization><template-arg>Expr const (A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop4&lt; This const , remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type, remove_reference&lt; A3 &gt;::type &gt;</inherit></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/extends.hpp"><para>Macros and a base class for defining end-user expression types </para><namespace name="boost"><namespace name="proto"><namespace name="exprns_"><struct name="is_proto_expr"><purpose>Empty type to be used as a dummy template parameter of POD expression wrappers. It allows argument-dependent lookup to find Proto's operator overloads. </purpose><description><para><computeroutput>proto::is_proto_expr</computeroutput> allows argument-dependent lookup
 to find Proto's operator overloads. For example:</para><para><programlisting>
-
-
-
-
-
-
-
-
-
-
-
-
-///
+ </template><specialization><template-arg>Expr const (A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg><template-arg>This</template-arg></specialization><inherit access="public">boost::proto::result_of::funop4&lt; Expr, A0, A1, A2, A3 &gt;</inherit><purpose>A helper metafunction for computing the return type of <computeroutput>proto::expr&lt;&gt;operator()</computeroutput>. </purpose></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/extends.hpp"><para>Macros and a base class for defining end-user expression types </para><namespace name="boost"><namespace name="proto"><namespace name="exprns_"><struct name="is_proto_expr"><purpose>Empty type to be used as a dummy template parameter of POD expression wrappers. It allows argument-dependent lookup to find Proto's operator overloads. </purpose><description><para><computeroutput>proto::is_proto_expr</computeroutput> allows argument-dependent loo
kup to find Proto's operator overloads. For example:</para><para><programlisting> template&lt;typename T, typename Dummy = proto::is_proto_expr&gt;
+ struct my_terminal
+ {
+ BOOST_PROTO_EXTENDS(
+ typename proto::terminal&lt;T&gt;::type
+ , my_terminal&lt;T&gt;
+ , default_domain
+ )
+ };
+
+ // ...
+ my_terminal&lt;int&gt; _1, _2;
+ _1 + _2; // OK, uses proto::operator+
 </programlisting></para><para>Without the second <computeroutput>Dummy</computeroutput> template parameter, Proto's operator overloads would not be considered by name lookup. </para></description></struct><struct name="extends"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Derived"/>
       <template-type-parameter name="Domain"/>
       <template-type-parameter name="Tag"/>
- </template><purpose>extends&lt;&gt; class template for adding behaviors to a proto expression template </purpose><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><purpose>extends&lt;&gt; class template for adding behaviors to a Proto expression template </purpose><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><typedef name="type"><type>boost::mpl::apply_wrap1&lt; Domain, typename boost::proto::result_of::funop&lt; Sig, Derived &gt;::type &gt;::type</type></typedef></struct><typedef name="proto_base_expr"><type>Expr</type></typedef><typedef name="proto_domain"><type>Domain</type></typedef><typedef name="proto_derived_expr"><type>Derived</type></typedef><typedef name="proto_tag"><type>Expr::proto_tag</type></typedef><typedef name="proto_args"><type>Expr::proto_args</type></typedef><typedef name="proto_arity"><type>Expr::proto_arity</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="fusion_tag"><type>boost::proto::tag::proto_expr</type></typedef><typedef name="proto_arg0"><type>Expr::proto_arg0</type></typedef><typedef name="proto_arg1"><type>Expr::proto_arg1</type></typedef><typedef name="proto_arg2"><type>Expr::proto_arg2</type></typedef><typedef name="proto_arg3"><type>Expr::proto_arg3</type></typedef><typedef name="proto_arg4"><type>Expr::proto_arg4</type></t
ypedef><method-group name="public member functions"><method name="proto_base" cv=""><type>Expr &amp;</type></method><method name="proto_base" cv="const"><type>Expr const &amp;</type></method><method name="operator[]" cv="const"><type>boost::mpl::apply_wrap1&lt; Domain, boost::proto::expr&lt; <classname>boost::proto::tag::subscript</classname>, <classname>boost::proto::args2</classname>&lt; boost::proto::ref_&lt; Derived const &gt;, typename <classname>boost::proto::result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; &gt;::type const</type><template>
+ </template><typedef name="type"><type>boost::mpl::apply_wrap1&lt; Domain, typename boost::proto::result_of::funop&lt; Sig, Derived &gt;::type &gt;::type</type></typedef></struct><data-member name="expr"><type>Expr</type></data-member><typedef name="proto_base_expr"><type>Expr</type></typedef><typedef name="proto_domain"><type>Domain</type></typedef><typedef name="proto_derived_expr"><type>Derived</type></typedef><typedef name="proto_tag"><type>Expr::proto_tag</type></typedef><typedef name="proto_args"><type>Expr::proto_args</type></typedef><typedef name="proto_arity"><type>Expr::proto_arity</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="fusion_tag"><type>boost::proto::tag::proto_expr</type></typedef><typedef name="proto_arg0"><type>Expr::proto_arg0</type></typedef><typedef name="proto_arg1"><type>Expr::proto_arg1</type></typedef><typedef name="proto_arg2"><type>Expr::proto_arg2</type></typedef><typedef name="proto_arg3"><type>Expr::proto_arg3</type></typedef><ty
pedef name="proto_arg4"><type>Expr::proto_arg4</type></typedef><method-group name="public member functions"><method name="proto_base" cv=""><type>Expr &amp;</type></method><method name="proto_base" cv="const"><type>Expr const &amp;</type></method><method name="operator[]" cv="const"><type>boost::mpl::apply_wrap1&lt; Domain, boost::proto::expr&lt; <classname>boost::proto::tag::subscript</classname>, <classname>boost::proto::args2</classname>&lt; boost::proto::ref_&lt; Derived const &gt;, typename <classname>boost::proto::result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; &gt;::type const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter></method><method name="operator[]" cv="const"><type>boost::mpl::apply_wrap1&lt; Domain, boost::proto::expr&lt; <classname>boost::proto::tag::subscript</classname>, <classname>boost::proto::args2</classname>&lt; boost::proto::ref_&lt; Derived const &gt;, typename <classname>boost::proto::result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; &gt;::type const</type><template>
           <template-type-parameter name="A"/>
@@ -685,21 +663,13 @@
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter></copy-assignment><data-member name="expr"><type>Expr</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static Derived const</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="extends"><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static Derived const</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="extends"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Derived"/>
       <template-type-parameter name="Domain"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>Derived</template-arg><template-arg>Domain</template-arg><template-arg>tag::terminal</template-arg></specialization><purpose>extends&lt;&gt; class template for adding behaviors to a proto expression template </purpose><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><struct name="result"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>Derived</template-arg><template-arg>Domain</template-arg><template-arg>tag::terminal</template-arg></specialization><purpose>extends&lt;&gt; class template for adding behaviors to a Proto expression template </purpose><struct name="result"><template>
       <template-type-parameter name="Sig"/>
- </template><typedef name="type"><type>boost::mpl::apply_wrap1&lt; Domain, typename boost::proto::result_of::funop&lt; Sig, Derived &gt;::type &gt;::type</type></typedef></struct><typedef name="proto_base_expr"><type>Expr</type></typedef><typedef name="proto_domain"><type>Domain</type></typedef><typedef name="proto_derived_expr"><type>Derived</type></typedef><typedef name="proto_tag"><type>Expr::proto_tag</type></typedef><typedef name="proto_args"><type>Expr::proto_args</type></typedef><typedef name="proto_arity"><type>Expr::proto_arity</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="fusion_tag"><type>boost::proto::tag::proto_expr</type></typedef><typedef name="proto_arg0"><type>Expr::proto_arg0</type></typedef><typedef name="proto_arg1"><type>Expr::proto_arg1</type></typedef><typedef name="proto_arg2"><type>Expr::proto_arg2</type></typedef><typedef name="proto_arg3"><type>Expr::proto_arg3</type></typedef><typedef name="proto_arg4"><type>Expr::proto_arg4</type></t
ypedef><method-group name="public member functions"><method name="extends" cv=""><type/></method><method name="extends" cv=""><type/><parameter name="that"><paramtype><classname>extends</classname> const &amp;</paramtype></parameter></method><method name="extends" cv=""><type/><parameter name="expr_"><paramtype>Expr const &amp;</paramtype></parameter></method><method name="proto_base" cv=""><type>Expr &amp;</type></method><method name="proto_base" cv="const"><type>Expr const &amp;</type></method><method name="operator[]" cv="const"><type>boost::mpl::apply_wrap1&lt; Domain, boost::proto::expr&lt; <classname>boost::proto::tag::subscript</classname>, <classname>boost::proto::args2</classname>&lt; boost::proto::ref_&lt; Derived const &gt;, typename <classname>boost::proto::result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; &gt;::type const</type><template>
+ </template><typedef name="type"><type>boost::mpl::apply_wrap1&lt; Domain, typename boost::proto::result_of::funop&lt; Sig, Derived &gt;::type &gt;::type</type></typedef></struct><data-member name="expr"><type>Expr</type></data-member><typedef name="proto_base_expr"><type>Expr</type></typedef><typedef name="proto_domain"><type>Domain</type></typedef><typedef name="proto_derived_expr"><type>Derived</type></typedef><typedef name="proto_tag"><type>Expr::proto_tag</type></typedef><typedef name="proto_args"><type>Expr::proto_args</type></typedef><typedef name="proto_arity"><type>Expr::proto_arity</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="fusion_tag"><type>boost::proto::tag::proto_expr</type></typedef><typedef name="proto_arg0"><type>Expr::proto_arg0</type></typedef><typedef name="proto_arg1"><type>Expr::proto_arg1</type></typedef><typedef name="proto_arg2"><type>Expr::proto_arg2</type></typedef><typedef name="proto_arg3"><type>Expr::proto_arg3</type></typedef><ty
pedef name="proto_arg4"><type>Expr::proto_arg4</type></typedef><method-group name="public member functions"><method name="extends" cv=""><type/></method><method name="extends" cv=""><type/><parameter name="that"><paramtype><classname>extends</classname> const &amp;</paramtype></parameter></method><method name="extends" cv=""><type/><parameter name="expr_"><paramtype>Expr const &amp;</paramtype></parameter></method><method name="proto_base" cv=""><type>Expr &amp;</type></method><method name="proto_base" cv="const"><type>Expr const &amp;</type></method><method name="operator[]" cv="const"><type>boost::mpl::apply_wrap1&lt; Domain, boost::proto::expr&lt; <classname>boost::proto::tag::subscript</classname>, <classname>boost::proto::args2</classname>&lt; boost::proto::ref_&lt; Derived const &gt;, typename <classname>boost::proto::result_of::as_arg</classname>&lt; A &gt;::type &gt; &gt; &gt;::type const</type><template>
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter></method><method name="operator[]" cv="const"><type>boost::mpl::apply_wrap1&lt; Domain, boost::proto::expr&lt; <classname>boost::proto::tag::subscript</classname>, <classname>boost::proto::args2</classname>&lt; boost::proto::ref_&lt; Derived const &gt;, typename <classname>boost::proto::result_of::as_arg</classname>&lt; A const &gt;::type &gt; &gt; &gt;::type const</type><template>
           <template-type-parameter name="A"/>
@@ -743,174 +713,118 @@
           <template-type-parameter name="A"/>
         </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter></copy-assignment><copy-assignment><template>
           <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter></copy-assignment><data-member name="expr"><type>Expr</type></data-member><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method><method name="make" cv=""><type>static Derived const</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/fusion.hpp"><para>Make any Proto parse tree a valid Fusion sequence </para><namespace name="boost"><namespace name="fusion"><namespace name="extension"><struct name="as_element"><template>
- <template-type-parameter name="Tag"/>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter></copy-assignment><method-group name="public static functions"><method name="make" cv=""><type>static Derived const</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/fusion.hpp"><para>Make any Proto expression a valid Fusion sequence </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="flatten"><purpose>A PolymorphicFunctionObject type that returns a "flattened" view of a Proto expression tree. </purpose><description><para>A PolymorphicFunctionObject type that returns a "flattened" view of a Proto expression tree. For a tree with a top-most node tag of type <computeroutput>T</computeroutput>, the elements of the flattened sequence are determined by recursing into each child node with the same tag type and returning those
nodes of different type. So for instance, the Proto expression tree corresponding to the expression <computeroutput>a | b | c</computeroutput> has a flattened view with elements [a, b, c], even though the tree is grouped as <computeroutput>((a | b) | c)</computeroutput>. </para></description><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>This(Expr)</template-arg></specialization></struct-specialization></struct><struct-specialization name="is_view_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template></struct></struct-specialization><struct-specialization name="is_view_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template></struct></struct-specialization><struct-specialization name="value_of_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref_iterator</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template><inherit access="public">boost::proto::result_of::arg&lt; Iterator::expr_type, Iterator::index &gt;</inherit></struct></struct-specialization><struct-specialization name="deref_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref_iterator</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template><typedef name="type"><type><classname>proto::result_of::arg</classname>&lt; typename Iterator::expr_type, typename Iterator::index &gt;::type const &amp;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type</type><parameter name="iter"><paramtype>Iterator const &amp;</paramtype></parameter></method></method-group></struct></struct-specialization><struct-specialization name="advance_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref_iterator</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- <template-type-parameter name="N"/>
- </template><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>type</classname></type><parameter name="iter"><paramtype>Iterator const &amp;</paramtype></parameter></method></method-group></struct></struct-specialization><struct-specialization name="distance_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref_iterator</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="IteratorFrom"/>
- <template-type-parameter name="IteratorTo"/>
- </template></struct></struct-specialization><struct-specialization name="next_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref_iterator</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template></struct></struct-specialization><struct-specialization name="prior_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref_iterator</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template></struct></struct-specialization><struct-specialization name="category_of_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template><typedef name="type"><type>random_access_traversal_tag</type></typedef></struct></struct-specialization><struct-specialization name="size_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template></struct></struct-specialization><struct-specialization name="begin_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>type</classname></type><parameter name="seq"><paramtype>Sequence &amp;</paramtype></parameter></method></method-group></struct></struct-specialization><struct-specialization name="end_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>type</classname></type><parameter name="seq"><paramtype>Sequence &amp;</paramtype></parameter></method></method-group></struct></struct-specialization><struct-specialization name="value_at_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- <template-type-parameter name="N"/>
- </template><typedef name="type"><type><classname>proto::result_of::arg</classname>&lt; Sequence, N &gt;::type</type></typedef></struct></struct-specialization><struct-specialization name="at_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_ref</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- <template-type-parameter name="N"/>
- </template><typedef name="type"><type><classname>proto::result_of::arg</classname>&lt; Sequence, N &gt;::type const &amp;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type</type><parameter name="seq"><paramtype>Sequence &amp;</paramtype></parameter></method></method-group></struct></struct-specialization><struct-specialization name="is_segmented_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Iterator"/>
- </template></struct></struct-specialization><struct-specialization name="segments_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template><typedef name="proto_tag"><type>Sequence::proto_tag</type></typedef><typedef name="type"><type>fusion::transform_view&lt; proto::ref_&lt; Sequence &gt;, <classname>as_element</classname>&lt; proto_tag &gt;&gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type</type><parameter name="sequence"><paramtype>Sequence &amp;</paramtype></parameter></method></method-group></struct></struct-specialization><struct-specialization name="category_of_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template><typedef name="type"><type>forward_traversal_tag</type></typedef></struct></struct-specialization><struct-specialization name="begin_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template></struct></struct-specialization><struct-specialization name="end_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template></struct></struct-specialization><struct-specialization name="size_impl"><template>
- </template><specialization><template-arg>proto::tag::proto_expr</template-arg></specialization><struct name="apply"><template>
- <template-type-parameter name="Sequence"/>
- </template></struct></struct-specialization></namespace></namespace><namespace name="proto"><struct name="children"><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type><emphasis>unspecified</emphasis></type><template>
+ <template-type-parameter name="Expr"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="pop_front"><purpose>A PolymorphicFunctionObject type that invokes the <computeroutput>fusion::pop_front()</computeroutput> algorithm on its argument. </purpose><description><para>A PolymorphicFunctionObject type that invokes the <computeroutput>fusion::pop_front()</computeroutput> algorithm on its argument. This is useful for defining a CallableTransform like <computeroutput>pop_front(_)</computeroutput> which removes the first child from a Proto expression node. Such a transform might be used as the first argument to the <computeroutput>proto::transform::fold&lt;&gt;</computeroutput> transform; that is, fold all but the first child. </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><method-group name="public member functions"/><constructor><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></constructor></struct><struct name="eval_fun"><template>
- <template-type-parameter name="Context"/>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><typedef name="type"><type>fusion::result_of::pop_front&lt; typename boost::remove_reference&lt; Expr &gt;::type const &gt;::type</type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>fusion::result_of::pop_front&lt; Expr const &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="reverse"><purpose>A PolymorphicFunctionObject type that invokes the <computeroutput>fusion::reverse()</computeroutput> algorithm on its argument. </purpose><description><para>A PolymorphicFunctionObject type that invokes the <computeroutput>fusion::reverse()</computeroutput> algorithm on its argument. This is useful for defining a CallableTransform like <computeroutput>reverse(_)</computeroutput> which reverses the order of the children of a Proto expression node. </para></description><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>This(Expr)</template-arg></specialization><typedef name="type"><type>Context::template eval&lt; typename remove_reference&lt; Expr &gt;::type &gt;::result_type</type></typedef></struct-specialization><method-group name="public member functions"/><constructor><parameter name="ctx"><paramtype>Context &amp;</paramtype></parameter></constructor></struct><function name="children_of"><type><classname>children</classname>&lt; Expr &gt;</type><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><typedef name="type"><type>fusion::result_of::reverse&lt; typename boost::remove_reference&lt; Expr &gt;::type const &gt;::type</type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>fusion::result_of::reverse&lt; Expr const &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></function></namespace></namespace></header><header name="boost/xpressive/proto/generate.hpp"><para>Contains definition of generate&lt;&gt; class template, which end users can specialize for generating domain-specific expression wrappers. </para><namespace name="boost"><namespace name="proto"><namespace name="generatorns_"><struct name="default_generator"><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct></namespace><data-member name="flatten"><type><classname>functional::flatten</classname> const</type><purpose>A PolymorphicFunctionObject type that returns a "flattened" view of a Proto expression tree. </purpose><description><para><para>boost::proto::functional::flatten </para>
+</para></description></data-member></namespace></namespace></header><header name="boost/xpressive/proto/generate.hpp"><para>Contains definition of generate&lt;&gt; class template, which end users can specialize for generating domain-specific expression wrappers. </para><namespace name="boost"><namespace name="proto"><namespace name="generatorns_"><struct name="default_generator"><purpose>A simple generator that passes an expression through unchanged. </purpose><description><para>Generators are intended for use as the first template parameter to the <computeroutput>domain&lt;&gt;</computeroutput> class template and control if and how expressions within that domain are to be customized. The <computeroutput>default_generator</computeroutput> makes no modifications to the expressions passed to it. </para></description><struct name="apply"><template>
       <template-type-parameter name="Expr"/>
     </template><typedef name="type"><type>Expr</type></typedef></struct><method-group name="public static functions"><method name="make" cv=""><type>static Expr const &amp;</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="generator"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>A Proto expression </para></description></parameter><description><para>
+
+</para></description><returns><para>expr </para></returns></method></method-group></struct><struct name="generator"><template>
       <template-nontype-parameter name="Extends"><type>template&lt; typename &gt; class</type></template-nontype-parameter>
- </template><struct name="apply"><template>
+ </template><purpose>A generator that wraps expressions passed to it in the specified extension wrapper. </purpose><description><para>Generators are intended for use as the first template parameter to the <computeroutput>domain&lt;&gt;</computeroutput> class template and control if and how expressions within that domain are to be customized. <computeroutput>generator&lt;&gt;</computeroutput> wraps each expression passed to it in the <computeroutput>Extends&lt;&gt;</computeroutput> wrapper. </para></description><struct name="apply"><template>
       <template-type-parameter name="Expr"/>
     </template><typedef name="type"><type>Extends&lt; Expr &gt;</type></typedef></struct><method-group name="public static functions"><method name="make" cv=""><type>static Extends&lt; Expr &gt;</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="pod_generator"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>A Proto expression </para></description></parameter><description><para>
+
+</para></description><returns><para>Extends&lt;Expr&gt;(expr) </para></returns></method></method-group></struct><struct name="pod_generator"><template>
       <template-nontype-parameter name="Extends"><type>template&lt; typename &gt; class</type></template-nontype-parameter>
- </template><struct name="apply"><template>
+ </template><purpose>A generator that wraps expressions passed to it in the specified extension wrapper and uses aggregate initialization for the wrapper. </purpose><description><para>Generators are intended for use as the first template parameter to the <computeroutput>domain&lt;&gt;</computeroutput> class template and control if and how expressions within that domain are to be customized. <computeroutput>pod_generator&lt;&gt;</computeroutput> wraps each expression passed to it in the <computeroutput>Extends&lt;&gt;</computeroutput> wrapper, and uses aggregate initialzation for the wrapped object. </para></description><struct name="apply"><template>
       <template-type-parameter name="Expr"/>
     </template><typedef name="type"><type>Extends&lt; Expr &gt;</type></typedef></struct><method-group name="public static functions"><method name="make" cv=""><type>static Extends&lt; Expr &gt;</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/literal.hpp"><para>The literal&lt;&gt; terminal wrapper, and the proto::lit() function for creating literal&lt;&gt; wrappers. </para><namespace name="boost"><namespace name="proto"><namespace name="utility"><struct name="literal"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>The expression to wrap </para></description></parameter><description><para>
+
+</para></description><returns><para>Extends&lt;Expr&gt; that = {expr}; return that; </para></returns></method></method-group></struct><struct name="by_value_generator"><template>
+ <template-type-parameter name="Generator"/>
+ </template><purpose>A composite generator that first replaces child nodes held by reference with ones held by value and then forwards the result on to another generator. </purpose><description><para>Generators are intended for use as the first template parameter to the <computeroutput>domain&lt;&gt;</computeroutput> class template and control if and how expressions within that domain are to be customized. <computeroutput>by_value_generator&lt;&gt;</computeroutput> ensures all children nodes are held by value before forwarding the expression on to another generator for further processing. The <computeroutput>Generator</computeroutput> parameter defaults to <computeroutput>default_generator</computeroutput>. </para></description><struct name="apply"><template>
+ <template-type-parameter name="Expr"/>
+ </template><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct><method-group name="public static functions"><method name="make" cv=""><type>static <classname>apply</classname>&lt; Expr &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>The expression to modify. </para></description></parameter><description><para>
+
+</para></description><returns><para>Generator::make(deep_copy(expr)) </para></returns></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/literal.hpp"><para>The literal&lt;&gt; terminal wrapper, and the proto::lit() function for creating literal&lt;&gt; wrappers. </para><namespace name="boost"><namespace name="proto"><namespace name="utility"><struct name="literal"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="Domain"/>
- </template><inherit access="public">boost::proto::exprns_::extends&lt; Expr, Derived, Domain, Tag &gt;</inherit><typedef name="terminal_type"><type><classname>terminal</classname>&lt; T &gt;::type</type></typedef><typedef name="base_type"><type><classname>extends</classname>&lt; terminal_type, <classname>literal</classname>&lt; T, Domain &gt;, Domain &gt;</type></typedef><method-group name="public member functions"/><constructor><template>
+ </template><purpose>A simple wrapper for a terminal, provided for ease of use. </purpose><description><para>A simple wrapper for a terminal, provided for ease of use. In all cases, <computeroutput>literal&lt;X&gt; l(x);</computeroutput> is equivalent to <computeroutput>terminal&lt;X&gt;type l = {x};</computeroutput>.</para><para>The <computeroutput>Domain</computeroutput> template parameter defaults to <computeroutput>proto::default_domain</computeroutput>. </para></description><typedef name="value_type"><type><classname>proto::result_of::arg</classname>&lt; terminal_type &gt;::type</type></typedef><typedef name="reference"><type><classname>proto::result_of::arg</classname>&lt; terminal_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>proto::result_of::arg</classname>&lt; terminal_type &gt;::const_reference</type></typedef><method-group name="public member functions"><method name="get" cv=""><type>reference</type></method><method name="get" cv="const"><type>const_ref
erence</type></method></method-group><constructor><template>
           <template-type-parameter name="U"/>
         </template><parameter name="u"><paramtype>U &amp;</paramtype></parameter></constructor><constructor><template>
           <template-type-parameter name="U"/>
         </template><parameter name="u"><paramtype>U const &amp;</paramtype></parameter></constructor><constructor><template>
           <template-type-parameter name="U"/>
- </template><parameter name="u"><paramtype><classname>literal</classname>&lt; U, Domain &gt; const &amp;</paramtype></parameter></constructor></struct></namespace><overloaded-function name="lit"><signature><type><classname>literal</classname>&lt; T &amp; &gt;</type><template>
+ </template><parameter name="u"><paramtype><classname>literal</classname>&lt; U, Domain &gt; const &amp;</paramtype></parameter></constructor></struct></namespace><overloaded-function name="lit"><signature><type>literal&lt; T &amp; &gt;</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype>T &amp;</paramtype></parameter></signature><signature><type><classname>literal</classname>&lt; T const &amp; &gt;</type><template>
+ </template><parameter name="t"><paramtype>T &amp;</paramtype><description><para>The object to wrap. </para></description></parameter></signature><signature><type>literal&lt; T const &amp; &gt;</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></signature><description><para>lit </para></description></overloaded-function></namespace></namespace></header><header name="boost/xpressive/proto/make_expr.hpp"><para>Given a Fusion sequence of arguments and the type of a proto Expression, unpacks the sequence into the Expression. </para><namespace name="boost"><namespace name="fusion"/><namespace name="proto"><namespace name="functional"><struct name="make_expr"><template>
+ </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></signature><purpose>A helper function for creating a <computeroutput>literal&lt;&gt;</computeroutput> wrapper. </purpose><description><para>
+
+
+
+</para></description><returns><para>literal&lt;T &amp;&gt;(t) </para></returns><throws><simpara>Will not throw.</simpara></throws><notes><para>The returned value holds the argument by reference. </para></notes></overloaded-function></namespace></namespace></header><header name="boost/xpressive/proto/make_expr.hpp"><para>Definition of the <computeroutput>make_expr()</computeroutput> and <computeroutput>unpack_expr()</computeroutput> utilities for building Proto expression nodes from children nodes or from a Fusion sequence of children nodes, respectively. </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="make_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Domain"/>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="A0"/>
- </template><specialization><template-arg>This(A0)</template-arg></specialization><inherit access="public">boost::proto::result_of::make_expr&lt; Tag, Domain, remove_reference&lt; A0 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="result"><template>
+ </template><specialization><template-arg>This(A0)</template-arg></specialization><typedef name="type"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A0 &gt;::type</type></typedef></struct-specialization><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
- </template><specialization><template-arg>This(A0</template-arg><template-arg>A1)</template-arg></specialization><inherit access="public">boost::proto::result_of::make_expr&lt; Tag, Domain, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="result"><template>
+ </template><specialization><template-arg>This(A0</template-arg><template-arg>A1)</template-arg></specialization><typedef name="type"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A0, A1 &gt;::type</type></typedef></struct-specialization><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
- </template><specialization><template-arg>This(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg></specialization><inherit access="public">boost::proto::result_of::make_expr&lt; Tag, Domain, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="result"><template>
+ </template><specialization><template-arg>This(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg></specialization><typedef name="type"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A0, A1, A2 &gt;::type</type></typedef></struct-specialization><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
- </template><specialization><template-arg>This(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg></specialization><inherit access="public">boost::proto::result_of::make_expr&lt; Tag, Domain, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type, remove_reference&lt; A3 &gt;::type &gt;</inherit></struct-specialization><struct-specialization name="result"><template>
+ </template><specialization><template-arg>This(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg></specialization><typedef name="type"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A0, A1, A2, A3 &gt;::type</type></typedef></struct-specialization><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="A4"/>
- </template><specialization><template-arg>This(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4)</template-arg></specialization><inherit access="public">boost::proto::result_of::make_expr&lt; Tag, Domain, remove_reference&lt; A0 &gt;::type, remove_reference&lt; A1 &gt;::type, remove_reference&lt; A2 &gt;::type, remove_reference&lt; A3 &gt;::type, remove_reference&lt; A4 &gt;::type &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A &gt;::type const</type><template>
- <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0 &gt;::type const</type><template>
+ </template><specialization><template-arg>This(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4)</template-arg></specialization><typedef name="type"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A0, A1, A2, A3, A4 &gt;::type</type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, A0 const &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1 &gt;::type const</type><template>
+ </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><description><para>Construct an expression node with tag type <computeroutput>Tag</computeroutput> and in the domain <computeroutput>Domain</computeroutput>. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1, const A2 &gt;::type const</type><template>
+ </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1, const A2 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1, const A2, const A3 &gt;::type const</type><template>
+ </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1, const A2, const A3 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
           <template-type-parameter name="A3"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter><parameter name="a3"><paramtype>const A3 &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1, const A2, const A3, const A4 &gt;::type const</type><template>
+ </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter><parameter name="a3"><paramtype>const A3 &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const A0, const A1, const A2, const A3, const A4 &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
           <template-type-parameter name="A3"/>
           <template-type-parameter name="A4"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter><parameter name="a3"><paramtype>const A3 &amp;</paramtype></parameter><parameter name="a4"><paramtype>const A4 &amp;</paramtype></parameter></method></method-group></struct><struct name="unpack_expr"><template>
+ </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter><parameter name="a3"><paramtype>const A3 &amp;</paramtype></parameter><parameter name="a4"><paramtype>const A4 &amp;</paramtype></parameter><description><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></method></method-group></struct><struct name="unpack_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Domain"/>
     </template><struct name="result"><template>
@@ -918,55 +832,27 @@
     </template></struct><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Sequence"/>
- </template><specialization><template-arg>This(Sequence)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::unpack_expr</classname>&lt; Tag, Domain, Sequence &gt;::type</type><template>
+ </template><specialization><template-arg>This(Sequence)</template-arg></specialization><typedef name="type"><type><classname>result_of::unpack_expr</classname>&lt; Tag, Domain, typename remove_reference&lt; Sequence &gt;::type &gt;::type</type></typedef></struct-specialization><typedef name="proto_is_callable_"><type>void</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::unpack_expr</classname>&lt; Tag, Domain, Sequence const &gt;::type const</type><template>
           <template-type-parameter name="Sequence"/>
- </template><parameter name="sequence"><paramtype>Sequence const &amp;</paramtype></parameter></method></method-group></struct><struct name="unfused_expr_fun"><template>
+ </template><parameter name="sequence"><paramtype>Sequence const &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="result_of"><struct name="unpack_expr"><template>
       <template-type-parameter name="Tag"/>
- <template-type-parameter name="Domain"/>
- </template><struct name="result"><template>
       <template-type-parameter name="Sequence"/>
- </template><inherit access="public">boost::proto::result_of::unpack_expr&lt; Tag, Domain, Sequence &gt;</inherit></struct><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>proto::result_of::unpack_expr</classname>&lt; Tag, Domain, Sequence &gt;::type</type><template>
- <template-type-parameter name="Sequence"/>
- </template><parameter name="sequence"><paramtype>Sequence const &amp;</paramtype></parameter></method></method-group></struct><struct name="unfused_expr"><template>
+ <template-type-parameter name="EnableIf1"/>
+ <template-type-parameter name="EnableIf2"/>
+ </template><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct><struct-specialization name="unpack_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Domain"/>
- </template></struct><struct-specialization name="make_expr"><template>
- <template-type-parameter name="Domain"/>
- </template><specialization><template-arg>tag::terminal</template-arg><template-arg>Domain</template-arg></specialization><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
- <template-type-parameter name="This"/>
- <template-type-parameter name="A"/>
- </template><specialization><template-arg>This(A)</template-arg></specialization><inherit access="public">boost::proto::result_of::make_expr&lt; tag::terminal, Domain, A &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; <classname>tag::terminal</classname>, Domain, A &gt;::type</type><template>
- <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::make_expr</classname>&lt; <classname>tag::terminal</classname>, Domain, A const &gt;::type</type><template>
- <template-type-parameter name="A"/>
- </template><parameter name="a"><paramtype>A const &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace><namespace name="result_of"><struct name="unpack_expr"><template>
- <template-type-parameter name="Tag"/>
       <template-type-parameter name="Sequence"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template></struct><struct name="make_expr"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Domain</template-arg><template-arg>Sequence</template-arg><template-arg>typename Domain::proto_is_domain_</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct name="make_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="A4"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template></struct><struct-specialization name="make_expr"><template>
- <template-type-parameter name="Tag"/>
- <template-type-parameter name="A0"/>
- <template-type-parameter name="A1"/>
- <template-type-parameter name="A2"/>
- <template-type-parameter name="A3"/>
- <template-type-parameter name="A4"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>deduce_domain</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>void</template-arg></specialization></struct-specialization><struct-specialization name="unpack_expr"><template>
- <template-type-parameter name="Tag"/>
- <template-type-parameter name="Domain"/>
- <template-type-parameter name="Sequence"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Domain</template-arg><template-arg>Sequence</template-arg><template-arg>typename Domain::proto_is_domain_</template-arg></specialization></struct-specialization><struct-specialization name="make_expr"><template>
+ <template-type-parameter name="EnableIf1"/>
+ <template-type-parameter name="EnableIf2"/>
+ </template><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct><struct-specialization name="make_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="Domain"/>
       <template-type-parameter name="A0"/>
@@ -974,28 +860,21 @@
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="A4"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>Domain</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>typename Domain::proto_is_domain_</template-arg></specialization></struct-specialization></namespace><overloaded-function name="unpack_expr"><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; Sequence &gt;, <classname>result_of::unpack_expr</classname>&lt; Tag, Sequence &gt;&gt;::type const</type><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>Domain</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>typename Domain::proto_is_domain_</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization></namespace><overloaded-function name="unpack_expr"><signature><type>lazy_disable_if&lt; is_domain&lt; Sequence &gt;, <classname>result_of::unpack_expr</classname>&lt; Tag, Sequence const &gt;&gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="Sequence"/>
- </template><parameter name="sequence"><paramtype>Sequence const &amp;</paramtype></parameter></signature><signature><type><classname>result_of::unpack_expr</classname>&lt; Tag, Domain, Sequence2 &gt;::type const</type><template>
+ </template><parameter name="sequence"><paramtype>Sequence const &amp;</paramtype></parameter></signature><signature><type><classname>result_of::unpack_expr</classname>&lt; Tag, Domain, Sequence2 const &gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="Domain"/>
           <template-type-parameter name="Sequence2"/>
- </template><parameter name="sequence2"><paramtype>Sequence2 const &amp;</paramtype></parameter></signature><description><para>unpack_expr </para></description></overloaded-function><overloaded-function name="make_expr"><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, A0 &gt;&gt;::type const</type><template>
- <template-type-parameter name="Tag"/>
- <template-type-parameter name="A0"/>
- </template><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter></signature><signature><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, B0 &gt;::type const</type><template>
- <template-type-parameter name="Tag"/>
- <template-type-parameter name="Domain"/>
- <template-type-parameter name="B0"/>
- </template><parameter name="b0"><paramtype>B0 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0 &gt;&gt;::type const</type><template>
+ </template><parameter name="sequence2"><paramtype>Sequence2 const &amp;</paramtype></parameter></signature><description><para>unpack_expr </para></description></overloaded-function><overloaded-function name="make_expr"><signature><type>lazy_disable_if&lt; is_domain&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, A0 const &gt;&gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="A0"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter></signature><signature><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, const B0 &gt;::type const</type><template>
+ </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter></signature><signature><type><classname>result_of::make_expr</classname>&lt; Tag, Domain, B0 const &gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="Domain"/>
           <template-type-parameter name="B0"/>
- </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1 &gt;&gt;::type const</type><template>
+ </template><parameter name="b0"><paramtype>B0 const &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; is_domain&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1 &gt;&gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
@@ -1004,7 +883,7 @@
           <template-type-parameter name="Domain"/>
           <template-type-parameter name="B0"/>
           <template-type-parameter name="B1"/>
- </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1, const A2 &gt;&gt;::type const</type><template>
+ </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; is_domain&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1, const A2 &gt;&gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
@@ -1015,7 +894,7 @@
           <template-type-parameter name="B0"/>
           <template-type-parameter name="B1"/>
           <template-type-parameter name="B2"/>
- </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter><parameter name="b2"><paramtype>const B2 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1, const A2, const A3 &gt;&gt;::type const</type><template>
+ </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter><parameter name="b2"><paramtype>const B2 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; is_domain&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1, const A2, const A3 &gt;&gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
@@ -1028,7 +907,7 @@
           <template-type-parameter name="B1"/>
           <template-type-parameter name="B2"/>
           <template-type-parameter name="B3"/>
- </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter><parameter name="b2"><paramtype>const B2 &amp;</paramtype></parameter><parameter name="b3"><paramtype>const B3 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; <classname>is_domain</classname>&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1, const A2, const A3, const A4 &gt;&gt;::type const</type><template>
+ </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter><parameter name="b2"><paramtype>const B2 &amp;</paramtype></parameter><parameter name="b3"><paramtype>const B3 &amp;</paramtype></parameter></signature><signature><type>lazy_disable_if&lt; is_domain&lt; A0 &gt;, <classname>result_of::make_expr</classname>&lt; Tag, const A0, const A1, const A2, const A3, const A4 &gt;&gt;::type const</type><template>
           <template-type-parameter name="Tag"/>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
@@ -1045,16 +924,54 @@
           <template-type-parameter name="B4"/>
         </template><parameter name="b0"><paramtype>const B0 &amp;</paramtype></parameter><parameter name="b1"><paramtype>const B1 &amp;</paramtype></parameter><parameter name="b2"><paramtype>const B2 &amp;</paramtype></parameter><parameter name="b3"><paramtype>const B3 &amp;</paramtype></parameter><parameter name="b4"><paramtype>const B4 &amp;</paramtype></parameter></signature><description><para>make_expr </para></description></overloaded-function></namespace></namespace></header><header name="boost/xpressive/proto/matches.hpp"><para>Contains definition of matches&lt;&gt; metafunction for determining if a given expression matches a given pattern. </para><namespace name="boost"><namespace name="proto"><namespace name="control"><struct name="not_"><template>
       <template-type-parameter name="Grammar"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_identity_transform</inherit><typedef name="proto_base_expr"><type><classname>not_</classname></type></typedef></struct><struct name="if_"><template>
- <template-type-parameter name="Condition"/>
+ </template><purpose>Inverts the set of expressions matched by a grammar. When used as a transform, <computeroutput>not_&lt;&gt;</computeroutput> returns the current expression unchanged. </purpose><description><para>If an expression type <computeroutput>E</computeroutput> does not match a grammar <computeroutput>G</computeroutput>, then <computeroutput>E</computeroutput> does match <computeroutput>not_&lt;G&gt;</computeroutput>. For example, <computeroutput>not_&lt;terminal&lt;_&gt; &gt;</computeroutput> will match any non-terminal. </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>Expr</type></typedef></struct-specialization><typedef name="proto_base_expr"><type><classname>not_</classname></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>Expr const &amp;</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>An expression </para></description></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter><description><para>
+
+
+</para></description><requires><para><computeroutput>matches&lt;Expr,not_&gt;::value</computeroutput> is <computeroutput>true</computeroutput>. </para></requires><returns><para><computeroutput>expr</computeroutput> </para></returns></method></method-group></struct><struct name="if_"><template>
+ <template-type-parameter name="If"/>
       <template-type-parameter name="Then"/>
       <template-type-parameter name="Else"/>
- </template><inherit access="public">boost::proto::control::or_&lt; and_&lt; if_&lt; Condition &gt;, Then &gt;, and_&lt; not_&lt; if_&lt; Condition &gt; &gt;, Else &gt; &gt;</inherit></struct><struct-specialization name="if_"><template>
- <template-type-parameter name="Condition"/>
- <template-type-parameter name="Then"/>
- </template><specialization><template-arg>Condition</template-arg><template-arg>Then</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::control::and_&lt; if_&lt; Condition &gt;, Then &gt;</inherit></struct-specialization><struct-specialization name="if_"><template>
- <template-type-parameter name="Condition"/>
- </template><specialization><template-arg>Condition</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_identity_transform</inherit><typedef name="proto_base_expr"><type><classname>if_</classname></type></typedef></struct-specialization><struct name="or_"><template>
+ </template><purpose>Used to select one grammar or another based on the result of a compile-time Boolean. When used as a transform, <computeroutput>if_&lt;&gt;</computeroutput> selects between two transforms based on a compile-time Boolean. </purpose><description><para>When <computeroutput>if_&lt;If,Then,Else&gt;</computeroutput> is used as a grammar, <computeroutput>If</computeroutput> must be a Proto transform and <computeroutput>Then</computeroutput> and <computeroutput>Else</computeroutput> must be grammars. An expression type <computeroutput>E</computeroutput> matches <computeroutput>if_&lt;If,Then,Else&gt;</computeroutput> if <computeroutput>when&lt;_,If&gt;::result&lt;void(E,int,int)&gt;::type::value</computeroutput> is <computeroutput>true</computeroutput> and <computeroutput>E</computeroutput> matches <computeroutput>U</computeroutput>; or, if <computeroutput>when&lt;_,If&gt;::result&lt;void(E,int,int)&gt;::type::value</computeroutput> is <computeroutput>false</computeroutput> and <computeroutpu
t>E</computeroutput> matches <computeroutput>V</computeroutput>.</para><para>The template parameter <computeroutput>Then</computeroutput> defaults to <computeroutput>_</computeroutput> and <computeroutput>Else</computeroutput> defaults to <computeroutput>not&lt;_&gt;</computeroutput>, so an expression type <computeroutput>E</computeroutput> will match <computeroutput>if_&lt;If&gt;</computeroutput> if and only if <computeroutput>when&lt;_,If&gt;::result&lt;void(E,int,int)&gt;::type::value</computeroutput> is <computeroutput>true</computeroutput>.</para><para><programlisting> // A grammar that only matches integral terminals,
+ // using is_integral&lt;&gt; from Boost.Type_traits.
+ struct IsIntegral
+ : and_&lt;
+ terminal&lt;_&gt;
+ , if_&lt; is_integral&lt;_arg&gt;() &gt;
+ &gt;
+ {};
+</programlisting></para><para>When <computeroutput>if_&lt;If,Then,Else&gt;</computeroutput> is used as a transform, <computeroutput>If</computeroutput>, <computeroutput>Then</computeroutput> and <computeroutput>Else</computeroutput> must be Proto transforms. When applying the transform to an expression <computeroutput>E</computeroutput>, state <computeroutput>S</computeroutput> and visitor <computeroutput>V</computeroutput>, if <computeroutput>when&lt;_,If&gt;::result&lt;void(E,S,V)&gt;::type::value</computeroutput> is <computeroutput>true</computeroutput> then the <computeroutput>Then</computeroutput> transform is applied; otherwise the <computeroutput>Else</computeroutput> transform is applied.</para><para><programlisting> // Match a terminal. If the terminal is integral, return
+ // mpl::true_; otherwise, return mpl::false_.
+ struct IsIntegral2
+ : when&lt;
+ terminal&lt;_&gt;
+ , if_&lt;
+ is_integral&lt;_arg&gt;()
+ , mpl::true_()
+ , mpl::false_()
+ &gt;
+ &gt;
+ {};
+</programlisting> </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="condition"><type>when&lt; _, If &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef><typedef name="which"><type>mpl::if_&lt; condition, when&lt; _, Then &gt;, when&lt; _, Else &gt;&gt;::type</type></typedef><typedef name="type"><type>which::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type><classname>if_</classname></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>An expression </para></description></parameter><parameter name="state"><paramtype>State const &amp;</paramtype><description><para>The current state </para></description></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype><description><para>A visitor of arbitrary type </para></description></parameter><description><para>
+
+</para></description><returns><para><computeroutput>result&lt;void(Expr, State, Visitor)&gt;::which()(expr, state, visitor)</computeroutput> </para></returns></method></method-group></struct><struct name="or_"><template>
       <template-type-parameter name="G0"/>
       <template-type-parameter name="G1"/>
       <template-type-parameter name="G2"/>
@@ -1063,15 +980,19 @@
       <template-type-parameter name="G5"/>
       <template-type-parameter name="G6"/>
       <template-type-parameter name="G7"/>
- </template><struct name="apply"><template>
+ </template><purpose>For matching one of a set of alternate grammars. Alternates tried in order to avoid ambiguity. When used as a transform, <computeroutput>or_&lt;&gt;</computeroutput> applies the transform associated with the first grammar that matches the expression. </purpose><description><para>An expression type <computeroutput>E</computeroutput> matches <computeroutput>or_&lt;B0,B1,...Bn&gt;</computeroutput> if <computeroutput>E</computeroutput> matches any <computeroutput>Bx</computeroutput> for <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput>.</para><para>When applying <computeroutput>or_&lt;B0,B1,...Bn&gt;</computeroutput> as a transform with an expression <computeroutput>e</computeroutput> of type <computeroutput>E</computeroutput>, state <computeroutput>s</computeroutput> and visitor <computeroutput>v</computeroutput>, it is equivalent to <computeroutput>Bx()(e, s, v)</computeroutput>, where <computeroutput>x</computeroutput> is the lowest number such that <compute
routput>matches&lt;E,Bx&gt;::value</computeroutput> is <computeroutput>true</computeroutput>. </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><typedef name="which"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="type"><type>which::template <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type></typedef></struct><typedef name="proto_base_expr"><type><classname>or_</classname></type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="which"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="type"><type>which::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type><classname>or_</classname></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="and_"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>An expression </para></description></parameter><parameter name="state"><paramtype>State const &amp;</paramtype><description><para>The current state </para></description></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype><description><para>A visitor of arbitrary type </para></description></parameter><description><para>
+
+
+</para></description><requires><para><computeroutput>matches&lt;Expr,or_&gt;::value</computeroutput> is <computeroutput>true</computeroutput>. </para></requires><returns><para><computeroutput>result&lt;void(Expr, State, Visitor)&gt;::which()(expr, state, visitor)</computeroutput> </para></returns></method></method-group></struct><struct name="and_"><template>
       <template-type-parameter name="G0"/>
       <template-type-parameter name="G1"/>
       <template-type-parameter name="G2"/>
@@ -1080,38 +1001,109 @@
       <template-type-parameter name="G5"/>
       <template-type-parameter name="G6"/>
       <template-type-parameter name="G7"/>
- </template><struct name="apply"><template>
+ </template><purpose>For matching all of a set of grammars. When used as a transform, <computeroutput>and_&lt;&gt;</computeroutput> applies the transform associated with the last grammar in the set. </purpose><description><para>An expression type <computeroutput>E</computeroutput> matches <computeroutput>and_&lt;B0,B1,...Bn&gt;</computeroutput> if <computeroutput>E</computeroutput> matches all <computeroutput>Bx</computeroutput> for <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput>.</para><para>When applying <computeroutput>and_&lt;B0,B1,...Bn&gt;</computeroutput> as a transform with an expression <computeroutput>e</computeroutput>, state <computeroutput>s</computeroutput> and visitor <computeroutput>v</computeroutput>, it is equivalent to <computeroutput>Bn()(e, s, v)</computeroutput>. </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><typedef name="which"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="type"><type>which::template <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type></typedef></struct><typedef name="proto_base_expr"><type><classname>and_</classname></type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="which"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="type"><type>which::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type><classname>and_</classname></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="switch_"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>An expression </para></description></parameter><parameter name="state"><paramtype>State const &amp;</paramtype><description><para>The current state </para></description></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype><description><para>A visitor of arbitrary type </para></description></parameter><description><para>
+
+
+</para></description><requires><para><computeroutput>matches&lt;Expr,and_&gt;::value</computeroutput> is <computeroutput>true</computeroutput>. </para></requires><returns><para><computeroutput>result&lt;void(Expr, State, Visitor)&gt;::which()(expr, state, visitor)</computeroutput> </para></returns></method></method-group></struct><struct name="switch_"><template>
       <template-type-parameter name="Cases"/>
- </template><struct name="apply"><template>
+ </template><purpose>For matching one of a set of alternate grammars, which are looked up based on an expression's tag type. When used as a transform, <computeroutput>switch_&lt;&gt;</computeroutput> applies the transform associated with the grammar that matches the expression. </purpose><description><para>
+An expression type <computeroutput>E</computeroutput> matches <computeroutput>switch_&lt;C&gt;</computeroutput> if <computeroutput>E</computeroutput> matches <computeroutput>C::case_&lt;E::proto_tag&gt;</computeroutput>.</para><para>When applying <computeroutput>switch_&lt;C&gt;</computeroutput> as a transform with an expression <computeroutput>e</computeroutput> of type <computeroutput>E</computeroutput>, state <computeroutput>s</computeroutput> and visitor <computeroutput>v</computeroutput>, it is equivalent to <computeroutput>C::case_&lt;E::proto_tag&gt;()(e, s, v)</computeroutput>. </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><typedef name="proto_base_expr"><type><classname>switch_</classname></type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="which"><type>Cases::template case_&lt; typename Expr::proto_tag &gt;</type></typedef><typedef name="type"><type>which::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type><classname>switch_</classname></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="exact"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>An expression </para></description></parameter><parameter name="state"><paramtype>State const &amp;</paramtype><description><para>The current state </para></description></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype><description><para>A visitor of arbitrary type </para></description></parameter><description><para>
+
+
+</para></description><requires><para><computeroutput>matches&lt;Expr,switch_&gt;::value</computeroutput> is <computeroutput>true</computeroutput>. </para></requires><returns><para><computeroutput>result&lt;void(Expr, State, Visitor)&gt;::which()(expr, state, visitor)</computeroutput> </para></returns></method></method-group></struct><struct name="exact"><template>
       <template-type-parameter name="T"/>
- </template></struct><struct name="convertible_to"><template>
+ </template><purpose>For forcing exact matches of terminal types. </purpose><description><para>By default, matching terminals ignores references and cv-qualifiers. For instance, a terminal expression of type <computeroutput>terminal&lt;int const &amp;&gt;type</computeroutput> will match the grammar <computeroutput>terminal&lt;int&gt;</computeroutput>. If that is not desired, you can force an exact match with <computeroutput>terminal&lt;exact&lt;int&gt; &gt;</computeroutput>. This will only match integer terminals where the terminal is held by value. </para></description></struct><struct name="convertible_to"><template>
       <template-type-parameter name="T"/>
- </template></struct><struct name="vararg"><template>
+ </template><purpose>For matching terminals that are convertible to a type. </purpose><description><para>Use <computeroutput>convertible_to&lt;&gt;</computeroutput> to match a terminal that is convertible to some type. For example, the grammar <computeroutput>terminal&lt;convertible_to&lt;int&gt; &gt;</computeroutput> will match any terminal whose argument is convertible to an integer.</para><para>
+</para></description></struct><struct name="vararg"><template>
       <template-type-parameter name="Grammar"/>
- </template><typedef name="proto_is_vararg_"><type>void</type></typedef></struct></namespace><namespace name="result_of"><struct name="matches"><template>
+ </template><purpose>For matching a Grammar to a variable number of sub-expressions. </purpose><description><para>An expression type <computeroutput>expr&lt;AT, argsN&lt;A0,...An,U0,...Um&gt; &gt;</computeroutput> matches a grammar <computeroutput>expr&lt;BT, argsM&lt;B0,...Bn,vararg&lt;V&gt; &gt; &gt;</computeroutput> if <computeroutput>BT</computeroutput> is <computeroutput>_</computeroutput> or <computeroutput>AT</computeroutput>, and if <computeroutput>Ax</computeroutput> matches <computeroutput>Bx</computeroutput> for each <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput> and if <computeroutput>Ux</computeroutput> matches <computeroutput>V</computeroutput> for each <computeroutput>x</computeroutput> in <computeroutput>[0,m)</computeroutput>.</para><para>For example:</para><para><programlisting> // Match any function call expression, irregardless
+ // of the number of function arguments:
+ struct Function
+ : function&lt; vararg&lt;_&gt; &gt;
+ {};
+</programlisting></para><para>When used as a transform, <computeroutput>vararg&lt;G&gt;</computeroutput> applies <computeroutput>G</computeroutput>'s transform. </para></description><typedef name="proto_is_vararg_"><type>void</type></typedef></struct></namespace><namespace name="result_of"><struct name="matches"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="Grammar"/>
- </template></struct></namespace><namespace name="wildcardns_"><struct name="_"><inherit access="public">boost::proto::has_transformns_::has_identity_transform</inherit><typedef name="proto_base_expr"><type><classname>_</classname></type></typedef><typedef name="proto_is_wildcard_"><type>void</type></typedef></struct><function name="is_wildcard_expression_fun"><type><emphasis>unspecified</emphasis></type><template>
- <template-type-parameter name="T"/>
- </template><parameter name=""><paramtype>T const *</paramtype></parameter></function></namespace></namespace></namespace></header><header name="boost/xpressive/proto/operators.hpp"><para>Contains all the overloaded operators that make it possible to build expression templates using proto components </para><namespace name="boost"><namespace name="proto"><struct name="is_extension"><template>
+ </template><purpose>A Boolean metafunction that evaluates whether a given expression type matches a grammar. </purpose><description><para><computeroutput>matches&lt;Expr,Grammar&gt;</computeroutput> inherits (indirectly) from <computeroutput>mpl::true_</computeroutput> if <computeroutput>Expr::proto_base_expr</computeroutput> matches <computeroutput>Grammar::proto_base_expr</computeroutput>, and from <computeroutput>mpl::false_</computeroutput> otherwise.</para><para>Non-terminal expressions are matched against a grammar according to the following rules:</para><para><itemizedlist>
+<listitem><para>The wildcard pattern, <computeroutput>_</computeroutput>, matches any expression. </para></listitem>
+<listitem><para>An expression <computeroutput>expr&lt;AT, argsN&lt;A0,A1,...An&gt; &gt;</computeroutput> matches a grammar <computeroutput>expr&lt;BT, argsN&lt;B0,B1,...Bn&gt; &gt;</computeroutput> if <computeroutput>BT</computeroutput> is <computeroutput>_</computeroutput> or <computeroutput>AT</computeroutput>, and if <computeroutput>Ax</computeroutput> matches <computeroutput>Bx</computeroutput> for each <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput>. </para></listitem>
+<listitem><para>An expression <computeroutput>expr&lt;AT, argsN&lt;A0,...An,U0,...Um&gt; &gt;</computeroutput> matches a grammar <computeroutput>expr&lt;BT, argsM&lt;B0,...Bn,vararg&lt;V&gt; &gt; &gt;</computeroutput> if <computeroutput>BT</computeroutput> is <computeroutput>_</computeroutput> or <computeroutput>AT</computeroutput>, and if <computeroutput>Ax</computeroutput> matches <computeroutput>Bx</computeroutput> for each <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput> and if <computeroutput>Ux</computeroutput> matches <computeroutput>V</computeroutput> for each <computeroutput>x</computeroutput> in <computeroutput>[0,m)</computeroutput>. </para></listitem>
+<listitem><para>An expression <computeroutput>E</computeroutput> matches <computeroutput>or_&lt;B0,B1,...Bn&gt;</computeroutput> if <computeroutput>E</computeroutput> matches some <computeroutput>Bx</computeroutput> for <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput>. </para></listitem>
+<listitem><para>An expression <computeroutput>E</computeroutput> matches <computeroutput>and_&lt;B0,B1,...Bn&gt;</computeroutput> if <computeroutput>E</computeroutput> matches all <computeroutput>Bx</computeroutput> for <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput>. </para></listitem>
+<listitem><para>An expression <computeroutput>E</computeroutput> matches <computeroutput>if_&lt;T,U,V&gt;</computeroutput> if <computeroutput>when&lt;_,T&gt;::result&lt;void(E,int,int)&gt;::type::value</computeroutput> is <computeroutput>true</computeroutput> and <computeroutput>E</computeroutput> matches <computeroutput>U</computeroutput>; or, if <computeroutput>when&lt;_,T&gt;::result&lt;void(E,int,int)&gt;::type::value</computeroutput> is <computeroutput>false</computeroutput> and <computeroutput>E</computeroutput> matches <computeroutput>V</computeroutput>. (Note: <computeroutput>U</computeroutput> defaults to <computeroutput>_</computeroutput> and <computeroutput>V</computeroutput> defaults to <computeroutput>not&lt;_&gt;</computeroutput>.) </para></listitem>
+<listitem><para>An expression <computeroutput>E</computeroutput> matches <computeroutput>not_&lt;T&gt;</computeroutput> if <computeroutput>E</computeroutput> does not match <computeroutput>T</computeroutput>. </para></listitem>
+<listitem><para>An expression <computeroutput>E</computeroutput> matches <computeroutput>switch_&lt;C&gt;</computeroutput> if <computeroutput>E</computeroutput> matches <computeroutput>C::case_&lt;E::proto_tag&gt;</computeroutput>.</para></listitem>
+</itemizedlist>
+A terminal expression <computeroutput>expr&lt;tag::terminal,args0&lt;A&gt; &gt;</computeroutput> matches a grammar <computeroutput>expr&lt;BT,args0&lt;B&gt; &gt;</computeroutput> if <computeroutput>BT</computeroutput> is <computeroutput>_</computeroutput> or <computeroutput>tag::terminal</computeroutput> and one of the following is true:</para><para><itemizedlist>
+<listitem><para><computeroutput>B</computeroutput> is the wildcard pattern, <computeroutput>_</computeroutput> </para></listitem>
+<listitem><para><computeroutput>A</computeroutput> is <computeroutput>B</computeroutput> </para></listitem>
+<listitem><para><computeroutput>A</computeroutput> is <computeroutput>B &amp;</computeroutput> </para></listitem>
+<listitem><para><computeroutput>A</computeroutput> is <computeroutput>B const &amp;</computeroutput> </para></listitem>
+<listitem><para><computeroutput>B</computeroutput> is <computeroutput>exact&lt;A&gt;</computeroutput> </para></listitem>
+<listitem><para><computeroutput>B</computeroutput> is <computeroutput>convertible_to&lt;X&gt;</computeroutput> and <computeroutput>is_convertible&lt;A,X&gt;::value</computeroutput> is <computeroutput>true</computeroutput>. </para></listitem>
+<listitem><para><computeroutput>A</computeroutput> is <computeroutput>X[M]</computeroutput> or <computeroutput>X(&amp;)[M]</computeroutput> and <computeroutput>B</computeroutput> is <computeroutput>X[proto::N]</computeroutput>. </para></listitem>
+<listitem><para><computeroutput>A</computeroutput> is <computeroutput>X(&amp;)[M]</computeroutput> and <computeroutput>B</computeroutput> is <computeroutput>X(&amp;)[proto::N]</computeroutput>. </para></listitem>
+<listitem><para><computeroutput>A</computeroutput> is <computeroutput>X[M]</computeroutput> or <computeroutput>X(&amp;)[M]</computeroutput> and <computeroutput>B</computeroutput> is <computeroutput>X*</computeroutput>. </para></listitem>
+<listitem><para><computeroutput>B</computeroutput> lambda-matches <computeroutput>A</computeroutput> (see below).</para></listitem>
+</itemizedlist>
+A type <computeroutput>B</computeroutput> lambda-matches <computeroutput>A</computeroutput> if one of the following is true:</para><para><itemizedlist>
+<listitem><para><computeroutput>B</computeroutput> is <computeroutput>A</computeroutput> </para></listitem>
+<listitem><para><computeroutput>B</computeroutput> is the wildcard pattern, <computeroutput>_</computeroutput> </para></listitem>
+<listitem><para><computeroutput>B</computeroutput> is <computeroutput>T&lt;B0,B1,...Bn&gt;</computeroutput> and <computeroutput>A</computeroutput> is <computeroutput>T&lt;A0,A1,...An&gt;</computeroutput> and for each <computeroutput>x</computeroutput> in <computeroutput>[0,n)</computeroutput>, <computeroutput>Ax</computeroutput> and <computeroutput>Bx</computeroutput> are types such that <computeroutput>Ax</computeroutput> lambda-matches <computeroutput>Bx</computeroutput> </para></listitem>
+</itemizedlist>
+</para></description></struct></namespace><namespace name="wildcardns_"><struct name="_"><purpose>A wildcard grammar element that matches any expression, and a transform that returns the current expression unchanged. </purpose><description><para>The wildcard type, <computeroutput>_</computeroutput>, is a grammar element such that <computeroutput>matches&lt;E,_&gt;::value</computeroutput> is <computeroutput>true</computeroutput> for any expression type <computeroutput>E</computeroutput>.</para><para>The wildcard can also be used as a stand-in for a template argument when matching terminals. For instance, the following is a grammar that will match any <computeroutput>std::complex&lt;&gt;</computeroutput> terminal:</para><para><programlisting> BOOST_MPL_ASSERT((
+ matches&lt;
+ terminal&lt;std::complex&lt;double&gt; &gt;::type
+ , terminal&lt;std::complex&lt; _ &gt; &gt;
+ &gt;
+ ));
+</programlisting></para><para>When used as a transform, <computeroutput>_</computeroutput> returns the current expression unchanged. For instance, in the following, <computeroutput>_</computeroutput> is used with the <computeroutput>fold&lt;&gt;</computeroutput> transform to fold the children of a node:</para><para><programlisting> struct CountChildren
+ : or_&lt;
+ // Terminals have no children
+ when&lt;terminal&lt;_&gt;, mpl::int_&lt;0&gt;()&gt;
+ // Use fold&lt;&gt; to count the children of non-terminals
+ , otherwise&lt;
+ fold&lt;
+ _ // &lt;-- fold the current expression
+ , mpl::int_&lt;0&gt;()
+ , mpl::plus&lt;_state, mpl::int_&lt;1&gt; &gt;()
+ &gt;
+ &gt;
+ &gt;
+ {};
+</programlisting> </para></description><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>Expr</type></typedef></struct-specialization><typedef name="proto_base_expr"><type><classname>_</classname></type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>Expr const &amp;</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype><description><para>An expression </para></description></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter><description><para>
+
+</para></description><returns><para><computeroutput>expr</computeroutput> </para></returns></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/operators.hpp"><para>Contains all the overloaded operators that make it possible to build Proto expression trees. </para><namespace name="boost"><namespace name="proto"><struct name="is_extension"><template>
       <template-type-parameter name="T"/>
- </template></struct><namespace name="exprns_"><function name="operator+"><type><emphasis>unspecified</emphasis></type><template>
+ </template><inherit access="public">boost::mpl::false_</inherit></struct><namespace name="exprns_"><function name="operator+"><type><emphasis>unspecified</emphasis></type><template>
           <template-type-parameter name="Arg"/>
         </template><parameter name="arg"><paramtype>Arg &amp;</paramtype></parameter></function><function name="operator+"><type><emphasis>unspecified</emphasis></type><template>
           <template-type-parameter name="Arg"/>
@@ -1511,48 +1503,46 @@
         </template><parameter name="left"><paramtype>Left const &amp;</paramtype></parameter><parameter name="right"><paramtype>Right &amp;</paramtype></parameter></function><function name="operator^="><type><emphasis>unspecified</emphasis></type><template>
           <template-type-parameter name="Left"/>
           <template-type-parameter name="Right"/>
- </template><parameter name="left"><paramtype>Left const &amp;</paramtype></parameter><parameter name="right"><paramtype>Right const &amp;</paramtype></parameter></function><function name="if_else"><type><classname>boost::proto::result_of::make_expr</classname>&lt; <classname>tag::if_else_</classname>, <classname>deduce_domain</classname>, const A0, const A1, const A2 &gt;::type const</type><template>
+ </template><parameter name="left"><paramtype>Left const &amp;</paramtype></parameter><parameter name="right"><paramtype>Right const &amp;</paramtype></parameter></function><function name="if_else"><type><classname>boost::proto::result_of::make_expr</classname>&lt; <classname>tag::if_else_</classname>, deduce_domain, A0 const &amp;, A1 const &amp;, A2 const &amp; &gt;::type const</type><template>
           <template-type-parameter name="A0"/>
           <template-type-parameter name="A1"/>
           <template-type-parameter name="A2"/>
- </template><parameter name="a0"><paramtype>const A0 &amp;</paramtype></parameter><parameter name="a1"><paramtype>const A1 &amp;</paramtype></parameter><parameter name="a2"><paramtype>const A2 &amp;</paramtype></parameter><description><para>if_else </para></description></function></namespace></namespace></namespace></header><header name="boost/xpressive/proto/proto.hpp"><para>The proto expression template compiler and supporting utilities. </para></header><header name="boost/xpressive/proto/proto_fwd.hpp"><para>Forward declarations of all of proto's public types and functions. </para><namespace name="boost"><namespace name="proto"><namespace name="context"/><namespace name="control"><data-member name="N"><type>int const</type></data-member></namespace><namespace name="domainns_"/><namespace name="exops"/><namespace name="exprns_"/><namespace name="functional"/><namespace name="generatorns_"/><namespace name="has_transformns_"><struct name="has_identity_transform"><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="op"/><namespace name="refns_"/><namespace name="result_of"/><namespace name="tag"/><namespace name="transform"/><namespace name="utility"/><namespace name="wildcardns_"/></namespace></namespace></header><header name="boost/xpressive/proto/ref.hpp"><para>Utility for storing a sub-expr by reference </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="unref"><struct name="result"><template>
- <template-type-parameter name="T"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><parameter name="a0"><paramtype>A0 const &amp;</paramtype></parameter><parameter name="a1"><paramtype>A1 const &amp;</paramtype></parameter><parameter name="a2"><paramtype>A2 const &amp;</paramtype></parameter><description><para>if_else </para></description></function></namespace></namespace></namespace></header><header name="boost/xpressive/proto/proto.hpp"><para>The proto expression template compiler and supporting utilities. </para></header><header name="boost/xpressive/proto/proto_fwd.hpp"><para>Forward declarations of all of proto's public types and functions. </para><namespace name="boost"><namespace name="proto"><namespace name="context"/><namespace name="control"><data-member name="N"><type>int const</type></data-member></namespace><namespace name="domainns_"/><namespace name="exops"/><namespace name="exprns_"/><namespace name="functional"><typedef name="make_terminal"><type><classname>make_expr</classname>&lt; <classname>tag::terminal</classname> &gt;</type></typedef><typedef nam
e="make_posit"><type><classname>make_expr</classname>&lt; <classname>tag::posit</classname> &gt;</type></typedef><typedef name="make_negate"><type><classname>make_expr</classname>&lt; <classname>tag::negate</classname> &gt;</type></typedef><typedef name="make_dereference"><type><classname>make_expr</classname>&lt; <classname>tag::dereference</classname> &gt;</type></typedef><typedef name="make_complement"><type><classname>make_expr</classname>&lt; <classname>tag::complement</classname> &gt;</type></typedef><typedef name="make_address_of"><type><classname>make_expr</classname>&lt; <classname>tag::address_of</classname> &gt;</type></typedef><typedef name="make_logical_not"><type><classname>make_expr</classname>&lt; <classname>tag::logical_not</classname> &gt;</type></typedef><typedef name="make_pre_inc"><type><classname>make_expr</classname>&lt; <classname>tag::pre_inc</classname> &gt;</type></typedef><typedef name="make_pre_dec"><type><classname>make_expr</classname>&lt; <classname>tag::pre_dec</classname> &g
t;</type></typedef><typedef name="make_post_inc"><type><classname>make_expr</classname>&lt; <classname>tag::post_inc</classname> &gt;</type></typedef><typedef name="make_post_dec"><type><classname>make_expr</classname>&lt; <classname>tag::post_dec</classname> &gt;</type></typedef><typedef name="make_shift_left"><type><classname>make_expr</classname>&lt; <classname>tag::shift_left</classname> &gt;</type></typedef><typedef name="make_shift_right"><type><classname>make_expr</classname>&lt; <classname>tag::shift_right</classname> &gt;</type></typedef><typedef name="make_multiplies"><type><classname>make_expr</classname>&lt; <classname>tag::multiplies</classname> &gt;</type></typedef><typedef name="make_divides"><type><classname>make_expr</classname>&lt; <classname>tag::divides</classname> &gt;</type></typedef><typedef name="make_modulus"><type><classname>make_expr</classname>&lt; <classname>tag::modulus</classname> &gt;</type></typedef><typedef name="make_plus"><type><classname>make_expr</classname>&lt; <classna
me>tag::plus</classname> &gt;</type></typedef><typedef name="make_minus"><type><classname>make_expr</classname>&lt; <classname>tag::minus</classname> &gt;</type></typedef><typedef name="make_less"><type><classname>make_expr</classname>&lt; <classname>tag::less</classname> &gt;</type></typedef><typedef name="make_greater"><type><classname>make_expr</classname>&lt; <classname>tag::greater</classname> &gt;</type></typedef><typedef name="make_less_equal"><type><classname>make_expr</classname>&lt; <classname>tag::less_equal</classname> &gt;</type></typedef><typedef name="make_greater_equal"><type><classname>make_expr</classname>&lt; <classname>tag::greater_equal</classname> &gt;</type></typedef><typedef name="make_equal_to"><type><classname>make_expr</classname>&lt; <classname>tag::equal_to</classname> &gt;</type></typedef><typedef name="make_not_equal_to"><type><classname>make_expr</classname>&lt; <classname>tag::not_equal_to</classname> &gt;</type></typedef><typedef name="make_logical_or"><type><classname>make_
expr</classname>&lt; <classname>tag::logical_or</classname> &gt;</type></typedef><typedef name="make_logical_and"><type><classname>make_expr</classname>&lt; <classname>tag::logical_and</classname> &gt;</type></typedef><typedef name="make_bitwise_and"><type><classname>make_expr</classname>&lt; <classname>tag::bitwise_and</classname> &gt;</type></typedef><typedef name="make_bitwise_or"><type><classname>make_expr</classname>&lt; <classname>tag::bitwise_or</classname> &gt;</type></typedef><typedef name="make_bitwise_xor"><type><classname>make_expr</classname>&lt; <classname>tag::bitwise_xor</classname> &gt;</type></typedef><typedef name="make_comma"><type><classname>make_expr</classname>&lt; <classname>tag::comma</classname> &gt;</type></typedef><typedef name="make_mem_ptr"><type><classname>make_expr</classname>&lt; <classname>tag::mem_ptr</classname> &gt;</type></typedef><typedef name="make_assign"><type><classname>make_expr</classname>&lt; <classname>tag::assign</classname> &gt;</type></typedef><typedef name="
make_shift_left_assign"><type><classname>make_expr</classname>&lt; <classname>tag::shift_left_assign</classname> &gt;</type></typedef><typedef name="make_shift_right_assign"><type><classname>make_expr</classname>&lt; <classname>tag::shift_right_assign</classname> &gt;</type></typedef><typedef name="make_multiplies_assign"><type><classname>make_expr</classname>&lt; <classname>tag::multiplies_assign</classname> &gt;</type></typedef><typedef name="make_divides_assign"><type><classname>make_expr</classname>&lt; <classname>tag::divides_assign</classname> &gt;</type></typedef><typedef name="make_modulus_assign"><type><classname>make_expr</classname>&lt; <classname>tag::modulus_assign</classname> &gt;</type></typedef><typedef name="make_plus_assign"><type><classname>make_expr</classname>&lt; <classname>tag::plus_assign</classname> &gt;</type></typedef><typedef name="make_minus_assign"><type><classname>make_expr</classname>&lt; <classname>tag::minus_assign</classname> &gt;</type></typedef><typedef name="make_bitwise
_and_assign"><type><classname>make_expr</classname>&lt; <classname>tag::bitwise_and_assign</classname> &gt;</type></typedef><typedef name="make_bitwise_or_assign"><type><classname>make_expr</classname>&lt; <classname>tag::bitwise_or_assign</classname> &gt;</type></typedef><typedef name="make_bitwise_xor_assign"><type><classname>make_expr</classname>&lt; <classname>tag::bitwise_xor_assign</classname> &gt;</type></typedef><typedef name="make_subscript"><type><classname>make_expr</classname>&lt; <classname>tag::subscript</classname> &gt;</type></typedef><typedef name="make_if_else"><type><classname>make_expr</classname>&lt; <classname>tag::if_else_</classname> &gt;</type></typedef><typedef name="make_function"><type><classname>make_expr</classname>&lt; <classname>tag::function</classname> &gt;</type></typedef></namespace><namespace name="generatorns_"/><namespace name="op"/><namespace name="refns_"/><namespace name="result_of"/><namespace name="tag"/><namespace name="transform"><struct name="callable"><typedef
name="proto_is_callable_"><type>void</type></typedef></struct><typedef name="arg0"><type><classname>arg_c</classname>&lt; 0 &gt;</type></typedef><typedef name="arg1"><type><classname>arg_c</classname>&lt; 1 &gt;</type></typedef><typedef name="arg2"><type><classname>arg_c</classname>&lt; 2 &gt;</type></typedef><typedef name="arg3"><type><classname>arg_c</classname>&lt; 3 &gt;</type></typedef><typedef name="arg4"><type><classname>arg_c</classname>&lt; 4 &gt;</type></typedef><typedef name="arg5"><type><classname>arg_c</classname>&lt; 5 &gt;</type></typedef><typedef name="arg6"><type><classname>arg_c</classname>&lt; 6 &gt;</type></typedef><typedef name="arg7"><type><classname>arg_c</classname>&lt; 7 &gt;</type></typedef><typedef name="arg8"><type><classname>arg_c</classname>&lt; 8 &gt;</type></typedef><typedef name="arg9"><type><classname>arg_c</classname>&lt; 9 &gt;</type></typedef><typedef name="arg"><type><classname>arg0</classname></type></typedef><typedef name="left"><type><classname>arg0</classname></type>
</typedef><typedef name="right"><type><classname>arg1</classname></type></typedef></namespace><namespace name="utility"/><namespace name="wildcardns_"/><typedef name="_make_terminal"><type><classname>functional::make_terminal</classname></type></typedef><typedef name="_make_posit"><type><classname>functional::make_posit</classname></type></typedef><typedef name="_make_negate"><type><classname>functional::make_negate</classname></type></typedef><typedef name="_make_dereference"><type><classname>functional::make_dereference</classname></type></typedef><typedef name="_make_complement"><type><classname>functional::make_complement</classname></type></typedef><typedef name="_make_address_of"><type><classname>functional::make_address_of</classname></type></typedef><typedef name="_make_logical_not"><type><classname>functional::make_logical_not</classname></type></typedef><typedef name="_make_pre_inc"><type><classname>functional::make_pre_inc</classname></type></typedef><typedef name="_make_pre_dec"><type><classname>
functional::make_pre_dec</classname></type></typedef><typedef name="_make_post_inc"><type><classname>functional::make_post_inc</classname></type></typedef><typedef name="_make_post_dec"><type><classname>functional::make_post_dec</classname></type></typedef><typedef name="_make_shift_left"><type><classname>functional::make_shift_left</classname></type></typedef><typedef name="_make_shift_right"><type><classname>functional::make_shift_right</classname></type></typedef><typedef name="_make_multiplies"><type><classname>functional::make_multiplies</classname></type></typedef><typedef name="_make_divides"><type><classname>functional::make_divides</classname></type></typedef><typedef name="_make_modulus"><type><classname>functional::make_modulus</classname></type></typedef><typedef name="_make_plus"><type><classname>functional::make_plus</classname></type></typedef><typedef name="_make_minus"><type><classname>functional::make_minus</classname></type></typedef><typedef name="_make_less"><type><classname>functional::
make_less</classname></type></typedef><typedef name="_make_greater"><type><classname>functional::make_greater</classname></type></typedef><typedef name="_make_less_equal"><type><classname>functional::make_less_equal</classname></type></typedef><typedef name="_make_greater_equal"><type><classname>functional::make_greater_equal</classname></type></typedef><typedef name="_make_equal_to"><type><classname>functional::make_equal_to</classname></type></typedef><typedef name="_make_not_equal_to"><type><classname>functional::make_not_equal_to</classname></type></typedef><typedef name="_make_logical_or"><type><classname>functional::make_logical_or</classname></type></typedef><typedef name="_make_logical_and"><type><classname>functional::make_logical_and</classname></type></typedef><typedef name="_make_bitwise_and"><type><classname>functional::make_bitwise_and</classname></type></typedef><typedef name="_make_bitwise_or"><type><classname>functional::make_bitwise_or</classname></type></typedef><typedef name="_make_bitwis
e_xor"><type><classname>functional::make_bitwise_xor</classname></type></typedef><typedef name="_make_comma"><type><classname>functional::make_comma</classname></type></typedef><typedef name="_make_mem_ptr"><type><classname>functional::make_mem_ptr</classname></type></typedef><typedef name="_make_assign"><type><classname>functional::make_assign</classname></type></typedef><typedef name="_make_shift_left_assign"><type><classname>functional::make_shift_left_assign</classname></type></typedef><typedef name="_make_shift_right_assign"><type><classname>functional::make_shift_right_assign</classname></type></typedef><typedef name="_make_multiplies_assign"><type><classname>functional::make_multiplies_assign</classname></type></typedef><typedef name="_make_divides_assign"><type><classname>functional::make_divides_assign</classname></type></typedef><typedef name="_make_modulus_assign"><type><classname>functional::make_modulus_assign</classname></type></typedef><typedef name="_make_plus_assign"><type><classname>functio
nal::make_plus_assign</classname></type></typedef><typedef name="_make_minus_assign"><type><classname>functional::make_minus_assign</classname></type></typedef><typedef name="_make_bitwise_and_assign"><type><classname>functional::make_bitwise_and_assign</classname></type></typedef><typedef name="_make_bitwise_or_assign"><type><classname>functional::make_bitwise_or_assign</classname></type></typedef><typedef name="_make_bitwise_xor_assign"><type><classname>functional::make_bitwise_xor_assign</classname></type></typedef><typedef name="_make_subscript"><type><classname>functional::make_subscript</classname></type></typedef><typedef name="_make_if_else"><type><classname>functional::make_if_else</classname></type></typedef><typedef name="_make_function"><type><classname>functional::make_function</classname></type></typedef><typedef name="_flatten"><type><classname>functional::flatten</classname></type></typedef><typedef name="_pop_front"><type><classname>functional::pop_front</classname></type></typedef><typedef
name="_reverse"><type><classname>functional::reverse</classname></type></typedef><typedef name="_eval"><type><classname>functional::deep_copy</classname></type></typedef><typedef name="_deep_copy"><type><classname>functional::deep_copy</classname></type></typedef><typedef name="_expr"><type><classname>transform::expr</classname></type></typedef><typedef name="_state"><type><classname>transform::state</classname></type></typedef><typedef name="_visitor"><type><classname>transform::visitor</classname></type></typedef><typedef name="_arg0"><type><classname>transform::arg0</classname></type></typedef><typedef name="_arg1"><type><classname>transform::arg1</classname></type></typedef><typedef name="_arg2"><type><classname>transform::arg2</classname></type></typedef><typedef name="_arg3"><type><classname>transform::arg3</classname></type></typedef><typedef name="_arg4"><type><classname>transform::arg4</classname></type></typedef><typedef name="_arg5"><type><classname>transform::arg5</classname></type></typedef><typ
edef name="_arg6"><type><classname>transform::arg6</classname></type></typedef><typedef name="_arg7"><type><classname>transform::arg7</classname></type></typedef><typedef name="_arg8"><type><classname>transform::arg8</classname></type></typedef><typedef name="_arg9"><type><classname>transform::arg9</classname></type></typedef><typedef name="_arg"><type><classname>transform::arg</classname></type></typedef><typedef name="_left"><type><classname>transform::left</classname></type></typedef><typedef name="_right"><type><classname>transform::right</classname></type></typedef></namespace></namespace></header><header name="boost/xpressive/proto/ref.hpp"><para>Utility for storing a sub-expr by reference </para><namespace name="boost"><namespace name="proto"><namespace name="functional"><struct name="unref"><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="T"/>
- </template><specialization><template-arg>This(T)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>T &amp;</type><template>
+ </template><specialization><template-arg>This(T)</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; boost::remove_const&lt; boost::remove_reference&lt; T &gt;::type &gt;::type &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>T &amp;</type><template>
           <template-type-parameter name="T"/>
         </template><parameter name="t"><paramtype>T &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>T const &amp;</type><template>
           <template-type-parameter name="T"/>
         </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>T &amp;</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype><classname>ref_</classname>&lt; T &gt; &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>T &amp;</type><template>
+ </template><parameter name="t"><paramtype>ref_&lt; T &gt; &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>T &amp;</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype><classname>ref_</classname>&lt; T &gt; const &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="refns_"><struct name="ref_"><template>
+ </template><parameter name="t"><paramtype>ref_&lt; T &gt; const &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="refns_"><struct name="ref_"><template>
       <template-type-parameter name="Expr"/>
- </template><typedef name="proto_base_expr"><type>Expr::proto_base_expr</type></typedef><typedef name="proto_tag"><type>Expr::proto_tag</type></typedef><typedef name="proto_args"><type>Expr::proto_args</type></typedef><typedef name="proto_arity"><type>Expr::proto_arity</type></typedef><typedef name="proto_domain"><type>Expr::proto_domain</type></typedef><typedef name="fusion_tag"><type>tag::proto_ref</type></typedef><typedef name="proto_is_ref_"><type>void</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>Expr</type></typedef><typedef name="proto_arg0"><type>Expr::proto_arg0</type></typedef><typedef name="proto_arg1"><type>Expr::proto_arg1</type></typedef><typedef name="proto_arg2"><type>Expr::proto_arg2</type></typedef><typedef name="proto_arg3"><type>Expr::proto_arg3</type></typedef><typedef name="proto_arg4"><type>Expr::proto_arg4</type></typedef><method-group name="public member functions"><method name="proto_base" cv="const"><type>mpl:
:if_&lt; is_const &lt; Expr &gt;, proto_base_expr const &amp;, proto_base_expr &amp; &gt;::type</type></method></method-group><data-member name="expr"><type>Expr &amp;</type></data-member><method-group name="public static functions"><method name="make" cv=""><type>static <classname>ref_</classname>&lt; Expr &gt;</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="ref_"><template>
+ </template><typedef name="proto_base_expr"><type>Expr::proto_base_expr</type></typedef><typedef name="proto_tag"><type>Expr::proto_tag</type></typedef><typedef name="proto_args"><type>Expr::proto_args</type></typedef><typedef name="proto_arity"><type>Expr::proto_arity</type></typedef><typedef name="proto_domain"><type>Expr::proto_domain</type></typedef><typedef name="proto_is_ref_"><type>void</type></typedef><typedef name="proto_is_expr_"><type>void</type></typedef><typedef name="proto_derived_expr"><type>Expr</type></typedef><typedef name="proto_arg0"><type>Expr::proto_arg0</type></typedef><typedef name="proto_arg1"><type>Expr::proto_arg1</type></typedef><typedef name="proto_arg2"><type>Expr::proto_arg2</type></typedef><typedef name="proto_arg3"><type>Expr::proto_arg3</type></typedef><typedef name="proto_arg4"><type>Expr::proto_arg4</type></typedef><data-member name="expr"><type>Expr &amp;</type></data-member><method-group name="public member functions"><method name="proto_base" cv="const"><type>mpl::i
f_&lt; is_const&lt; Expr &gt;, proto_base_expr const &amp;, proto_base_expr &amp; &gt;::type</type></method></method-group><method-group name="public static functions"><method name="make" cv=""><type>static <classname>ref_</classname>&lt; Expr &gt;</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="ref_"><template>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>ref_&lt; Expr &gt;</template-arg></specialization></struct-specialization></namespace><namespace name="result_of"><struct name="unref"><template>
       <template-type-parameter name="T"/>
     </template><typedef name="type"><type>T</type></typedef><typedef name="reference"><type>T &amp;</type></typedef><typedef name="const_reference"><type>T const &amp;</type></typedef></struct><struct-specialization name="unref"><template>
       <template-type-parameter name="T"/>
- </template><specialization><template-arg>ref_&lt; T &gt;</template-arg></specialization><typedef name="type"><type>T::proto_derived_expr</type></typedef><typedef name="reference"><type>T &amp;</type></typedef><typedef name="const_reference"><type>T &amp;</type></typedef></struct-specialization><struct-specialization name="unref"><template>
+ </template><specialization><template-arg>ref_&lt; T &gt;</template-arg></specialization><typedef name="type"><type>T</type></typedef><typedef name="reference"><type>T &amp;</type></typedef><typedef name="const_reference"><type>T &amp;</type></typedef></struct-specialization><struct-specialization name="unref"><template>
+ <template-type-parameter name="T"/>
+ </template><specialization><template-arg>ref_&lt; T const &gt;</template-arg></specialization><typedef name="type"><type>T</type></typedef><typedef name="reference"><type>T const &amp;</type></typedef><typedef name="const_reference"><type>T const &amp;</type></typedef></struct-specialization><struct-specialization name="unref"><template>
       <template-type-parameter name="T"/>
     </template><specialization><template-arg>T &amp;</template-arg></specialization><typedef name="type"><type>T</type></typedef><typedef name="reference"><type>T &amp;</type></typedef><typedef name="const_reference"><type>T &amp;</type></typedef></struct-specialization><struct-specialization name="unref"><template>
       <template-type-parameter name="T"/>
- </template><specialization><template-arg>T const &amp;</template-arg></specialization><typedef name="type"><type>T</type></typedef><typedef name="reference"><type>T const &amp;</type></typedef><typedef name="const_reference"><type>T const &amp;</type></typedef></struct-specialization></namespace><data-member name="unref"><type><classname>functional::unref</classname> const</type></data-member></namespace></namespace></header><header name="boost/xpressive/proto/tags.hpp"><para>Contains the tags for all the overloadable operators in C++ </para><namespace name="boost"><namespace name="proto"><namespace name="tag"><struct name="terminal"><purpose>Tag type for terminals; aka, leaves in the expression tree. </purpose></struct><struct name="posit"><purpose>Tag type for the unary + operator. </purpose></struct><struct name="negate"><purpose>Tag type for the unary - operator. </purpose></struct><struct name="dereference"><purpose>Tag type for the unary * operator. </purpose></struct><struct name="complement"><pu
rpose>Tag type for the unary ~ operator. </purpose></struct><struct name="address_of"><purpose>Tag type for the unary &amp; operator. </purpose></struct><struct name="logical_not"><purpose>Tag type for the unary ! operator. </purpose></struct><struct name="pre_inc"><purpose>Tag type for the unary prefix ++ operator. </purpose></struct><struct name="pre_dec"><purpose>Tag type for the unary prefix -- operator. </purpose></struct><struct name="post_inc"><purpose>Tag type for the unary postfix ++ operator. </purpose></struct><struct name="post_dec"><purpose>Tag type for the unary postfix -- operator. </purpose></struct><struct name="shift_left"><purpose>Tag type for the binary &lt;&lt; operator. </purpose></struct><struct name="shift_right"><purpose>Tag type for the binary &gt;&gt; operator. </purpose></struct><struct name="multiplies"><purpose>Tag type for the binary * operator. </purpose></struct><struct name="divides"><purpose>Tag type for the binary / operator. </purpose></struct><struct name="modulus"><purp
ose>Tag type for the binary % operator. </purpose></struct><struct name="plus"><purpose>Tag type for the binary + operator. </purpose></struct><struct name="minus"><purpose>Tag type for the binary - operator. </purpose></struct><struct name="less"><purpose>Tag type for the binary &lt; operator. </purpose></struct><struct name="greater"><purpose>Tag type for the binary &gt; operator. </purpose></struct><struct name="less_equal"><purpose>Tag type for the binary &lt;= operator. </purpose></struct><struct name="greater_equal"><purpose>Tag type for the binary &gt;= operator. </purpose></struct><struct name="equal_to"><purpose>Tag type for the binary == operator. </purpose></struct><struct name="not_equal_to"><purpose>Tag type for the binary != operator. </purpose></struct><struct name="logical_or"><purpose>Tag type for the binary || operator. </purpose></struct><struct name="logical_and"><purpose>Tag type for the binary &amp;&amp; operator. </purpose></struct><struct name="bitwise_and"><purpose>Tag type for the b
inary &amp; operator. </purpose></struct><struct name="bitwise_or"><purpose>Tag type for the binary | operator. </purpose></struct><struct name="bitwise_xor"><purpose>Tag type for the binary ^ operator. </purpose></struct><struct name="comma"><purpose>Tag type for the binary , operator. </purpose></struct><struct name="mem_ptr"><purpose>Tag type for the binary -&gt;* operator. </purpose></struct><struct name="assign"><purpose>Tag type for the binary = operator. </purpose></struct><struct name="shift_left_assign"><purpose>Tag type for the binary &lt;&lt;= operator. </purpose></struct><struct name="shift_right_assign"><purpose>Tag type for the binary &gt;&gt;= operator. </purpose></struct><struct name="multilpies_assign"><purpose>Tag type for the binary *= operator. </purpose></struct><struct name="divides_assign"><purpose>Tag type for the binary /= operator. </purpose></struct><struct name="modulus_assign"><purpose>Tag type for the binary = operator. </purpose></struct><struct name="plus_assign"><purpose>Tag
type for the binary += operator. </purpose></struct><struct name="minus_assign"><purpose>Tag type for the binary -= operator. </purpose></struct><struct name="bitwise_and_assign"><purpose>Tag type for the binary &amp;= operator. </purpose></struct><struct name="bitwise_or_assign"><purpose>Tag type for the binary |= operator. </purpose></struct><struct name="bitwise_xor_assign"><purpose>Tag type for the binary ^= operator. </purpose></struct><struct name="subscript"><purpose>Tag type for the binary subscript operator. </purpose></struct><struct name="if_else_"><purpose>Tag type for the ternary ?: conditional operator. </purpose></struct><struct name="function"><purpose>Tag type for the nary function call operator. </purpose></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/traits.hpp"><para>Contains definitions for arg&lt;&gt;, arg_c&lt;&gt;, left&lt;&gt;, right&lt;&gt;, tag&lt;&gt;, and the helper functions arg(), arg_c(), left() and right(). </para><namespace name="bo
ost"><namespace name="proto"><namespace name="functional"><struct name="as_expr"><template>
+ </template><specialization><template-arg>T const &amp;</template-arg></specialization><typedef name="type"><type>T</type></typedef><typedef name="reference"><type>T const &amp;</type></typedef><typedef name="const_reference"><type>T const &amp;</type></typedef></struct-specialization></namespace><data-member name="unref"><type><classname>functional::unref</classname> const</type></data-member></namespace></namespace></header><header name="boost/xpressive/proto/tags.hpp"><para>Contains the tags for all the overloadable operators in C++ </para><namespace name="boost"><namespace name="proto"><namespace name="tag"><struct name="terminal"><purpose>Tag type for terminals; aka, leaves in the expression tree. </purpose></struct><struct name="posit"><purpose>Tag type for the unary + operator. </purpose></struct><struct name="negate"><purpose>Tag type for the unary - operator. </purpose></struct><struct name="dereference"><purpose>Tag type for the unary * operator. </purpose></struct><struct name="complement"><pu
rpose>Tag type for the unary ~ operator. </purpose></struct><struct name="address_of"><purpose>Tag type for the unary &amp; operator. </purpose></struct><struct name="logical_not"><purpose>Tag type for the unary ! operator. </purpose></struct><struct name="pre_inc"><purpose>Tag type for the unary prefix ++ operator. </purpose></struct><struct name="pre_dec"><purpose>Tag type for the unary prefix -- operator. </purpose></struct><struct name="post_inc"><purpose>Tag type for the unary postfix ++ operator. </purpose></struct><struct name="post_dec"><purpose>Tag type for the unary postfix -- operator. </purpose></struct><struct name="shift_left"><purpose>Tag type for the binary &lt;&lt; operator. </purpose></struct><struct name="shift_right"><purpose>Tag type for the binary &gt;&gt; operator. </purpose></struct><struct name="multiplies"><purpose>Tag type for the binary * operator. </purpose></struct><struct name="divides"><purpose>Tag type for the binary / operator. </purpose></struct><struct name="modulus"><purp
ose>Tag type for the binary % operator. </purpose></struct><struct name="plus"><purpose>Tag type for the binary + operator. </purpose></struct><struct name="minus"><purpose>Tag type for the binary - operator. </purpose></struct><struct name="less"><purpose>Tag type for the binary &lt; operator. </purpose></struct><struct name="greater"><purpose>Tag type for the binary &gt; operator. </purpose></struct><struct name="less_equal"><purpose>Tag type for the binary &lt;= operator. </purpose></struct><struct name="greater_equal"><purpose>Tag type for the binary &gt;= operator. </purpose></struct><struct name="equal_to"><purpose>Tag type for the binary == operator. </purpose></struct><struct name="not_equal_to"><purpose>Tag type for the binary != operator. </purpose></struct><struct name="logical_or"><purpose>Tag type for the binary || operator. </purpose></struct><struct name="logical_and"><purpose>Tag type for the binary &amp;&amp; operator. </purpose></struct><struct name="bitwise_and"><purpose>Tag type for the b
inary &amp; operator. </purpose></struct><struct name="bitwise_or"><purpose>Tag type for the binary | operator. </purpose></struct><struct name="bitwise_xor"><purpose>Tag type for the binary ^ operator. </purpose></struct><struct name="comma"><purpose>Tag type for the binary , operator. </purpose></struct><struct name="mem_ptr"><purpose>Tag type for the binary -&gt;* operator. </purpose></struct><struct name="assign"><purpose>Tag type for the binary = operator. </purpose></struct><struct name="shift_left_assign"><purpose>Tag type for the binary &lt;&lt;= operator. </purpose></struct><struct name="shift_right_assign"><purpose>Tag type for the binary &gt;&gt;= operator. </purpose></struct><struct name="multiplies_assign"><purpose>Tag type for the binary *= operator. </purpose></struct><struct name="divides_assign"><purpose>Tag type for the binary /= operator. </purpose></struct><struct name="modulus_assign"><purpose>Tag type for the binary = operator. </purpose></struct><struct name="plus_assign"><purpose>Tag
type for the binary += operator. </purpose></struct><struct name="minus_assign"><purpose>Tag type for the binary -= operator. </purpose></struct><struct name="bitwise_and_assign"><purpose>Tag type for the binary &amp;= operator. </purpose></struct><struct name="bitwise_or_assign"><purpose>Tag type for the binary |= operator. </purpose></struct><struct name="bitwise_xor_assign"><purpose>Tag type for the binary ^= operator. </purpose></struct><struct name="subscript"><purpose>Tag type for the binary subscript operator. </purpose></struct><struct name="if_else_"><purpose>Tag type for the ternary ?: conditional operator. </purpose></struct><struct name="function"><purpose>Tag type for the nary function call operator. </purpose></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/traits.hpp"><para>Contains definitions for arg&lt;&gt;, arg_c&lt;&gt;, left&lt;&gt;, right&lt;&gt;, tag&lt;&gt;, and the helper functions arg(), arg_c(), left() and right(). </para><namespace name="bo
ost"><namespace name="proto"><struct name="is_callable"><template>
+ <template-type-parameter name="T"/>
+ </template></struct><struct name="is_aggregate"><template>
+ <template-type-parameter name="T"/>
+ </template><description><para>is_aggregate </para></description></struct><struct-specialization name="is_aggregate"><template>
+ <template-type-parameter name="Tag"/>
+ <template-type-parameter name="Args"/>
+ <template-nontype-parameter name="N"><type>long</type></template-nontype-parameter>
+ </template><specialization><template-arg>proto::expr&lt; Tag</template-arg><template-arg>Args</template-arg><template-arg>N &gt;</template-arg></specialization><inherit access="public">boost::mpl::true_</inherit></struct-specialization><namespace name="functional"><struct name="as_expr"><template>
       <template-type-parameter name="Domain"/>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="T"/>
     </template><specialization><template-arg>This(T)</template-arg></specialization><inherit access="public">boost::proto::result_of::as_expr&lt; remove_reference&lt; T &gt;::type, Domain &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::as_expr</classname>&lt; T, Domain &gt;::result_type</type><template>
@@ -1561,9 +1551,7 @@
           <template-type-parameter name="T"/>
         </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></method></method-group></struct><struct name="as_arg"><template>
       <template-type-parameter name="Domain"/>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="T"/>
     </template><specialization><template-arg>This(T)</template-arg></specialization><inherit access="public">boost::proto::result_of::as_arg&lt; remove_reference&lt; T &gt;::type, Domain &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::as_arg</classname>&lt; T, Domain &gt;::type</type><template>
@@ -1572,9 +1560,7 @@
           <template-type-parameter name="T"/>
         </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></method></method-group></struct><struct name="arg_c"><template>
       <template-nontype-parameter name="N"><type>long</type></template-nontype-parameter>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>This(Expr)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result_of::arg_c&lt; Expr, N &gt;::reference</type><template>
@@ -1583,230 +1569,245 @@
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="arg"><template>
       <template-type-parameter name="N"/>
- </template><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>This(Expr)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::arg</classname>&lt; Expr, N &gt;::reference</type><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><inherit access="public">boost::proto::result_of::arg&lt; boost::remove_const&lt; boost::remove_reference&lt; Expr &gt;::type &gt;::type, N &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::arg</classname>&lt; Expr, N &gt;::reference</type><template>
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::arg</classname>&lt; Expr, N &gt;::const_reference</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="left"><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="left"><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>This(Expr)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::left</classname>&lt; Expr &gt;::reference</type><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><inherit access="public">boost::proto::result_of::left&lt; boost::remove_const&lt; boost::remove_reference&lt; Expr &gt;::type &gt;::type &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::left</classname>&lt; Expr &gt;::reference</type><template>
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::left</classname>&lt; Expr &gt;::const_reference</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="right"><struct name="result"><template>
- <template-type-parameter name="Sig"/>
- </template></struct><struct-specialization name="result"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct><struct name="right"><struct-specialization name="result"><template>
       <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>This(Expr)</template-arg></specialization></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::right</classname>&lt; Expr &gt;::reference</type><template>
+ </template><specialization><template-arg>This(Expr)</template-arg></specialization><inherit access="public">boost::proto::result_of::right&lt; boost::remove_const&lt; boost::remove_reference&lt; Expr &gt;::type &gt;::type &gt;</inherit></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type><classname>result_of::right</classname>&lt; Expr &gt;::reference</type><template>
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type><classname>result_of::right</classname>&lt; Expr &gt;::const_reference</type><template>
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="op"><struct name="terminal"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_identity_transform</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::terminal</classname>, <classname>args0</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::terminal</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="if_else_"><template>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>Expr</type></typedef></struct-specialization><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::terminal</classname>, <classname>args0</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::terminal</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>Expr const &amp;</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="if_else_"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
       <template-type-parameter name="V"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::if_else_</classname>, <classname>args3</classname>&lt; T, U, V &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::if_else_</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><typedef name="proto_arg2"><type>V</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="unary_expr"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::if_else_</classname>, <classname>args3</classname>&lt; T, U, V &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::if_else_</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><typedef name="proto_arg2"><type>V</type></typedef></struct><struct name="unary_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="binary_expr"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="binary_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="posit"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="posit"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::posit</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::posit</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="negate"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::posit</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::posit</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="negate"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::negate</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::negate</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="dereference"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::negate</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::negate</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="dereference"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::dereference</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::dereference</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="complement"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::dereference</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::dereference</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="complement"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::complement</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::complement</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="address_of"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::complement</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::complement</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="address_of"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::address_of</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::address_of</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="logical_not"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::address_of</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::address_of</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="logical_not"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::logical_not</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::logical_not</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="pre_inc"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::logical_not</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::logical_not</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="pre_inc"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::pre_inc</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::pre_inc</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="pre_dec"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::pre_inc</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::pre_inc</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="pre_dec"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::pre_dec</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::pre_dec</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="post_inc"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::pre_dec</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::pre_dec</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="post_inc"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::post_inc</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::post_inc</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="post_dec"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::post_inc</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::post_inc</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="post_dec"><template>
       <template-type-parameter name="T"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::post_dec</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::post_dec</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="shift_left"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::post_dec</classname>, <classname>args1</classname>&lt; T &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::post_dec</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef></struct><struct name="shift_left"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::shift_left</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_left</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="shift_right"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::shift_left</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_left</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="shift_right"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::shift_right</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_right</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="multiplies"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::shift_right</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_right</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="multiplies"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::multiplies</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::multiplies</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="divides"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::multiplies</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::multiplies</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="divides"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::divides</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::divides</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="modulus"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::divides</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::divides</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="modulus"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::modulus</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::modulus</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="plus"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::modulus</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::modulus</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="plus"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::plus</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::plus</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="minus"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::plus</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::plus</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="minus"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::minus</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::minus</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="less"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::minus</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::minus</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="less"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::less</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::less</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="greater"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::less</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::less</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="greater"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::greater</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::greater</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="less_equal"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::greater</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::greater</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="less_equal"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::less_equal</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::less_equal</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="greater_equal"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::less_equal</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::less_equal</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="greater_equal"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::greater_equal</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::greater_equal</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="equal_to"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::greater_equal</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::greater_equal</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="equal_to"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::equal_to</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::equal_to</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="not_equal_to"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::equal_to</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::equal_to</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="not_equal_to"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::not_equal_to</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::not_equal_to</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="logical_or"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::not_equal_to</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::not_equal_to</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="logical_or"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::logical_or</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::logical_or</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="logical_and"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::logical_or</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::logical_or</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="logical_and"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::logical_and</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::logical_and</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="bitwise_and"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::logical_and</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::logical_and</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="bitwise_and"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::bitwise_and</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_and</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="bitwise_or"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::bitwise_and</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_and</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="bitwise_or"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::bitwise_or</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_or</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="bitwise_xor"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::bitwise_or</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_or</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="bitwise_xor"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::bitwise_xor</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_xor</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="comma"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::bitwise_xor</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_xor</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="comma"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::comma</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::comma</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="mem_ptr"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::comma</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::comma</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="mem_ptr"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::mem_ptr</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::mem_ptr</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::mem_ptr</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::mem_ptr</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="shift_left_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="shift_left_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::shift_left_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_left_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="shift_right_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::shift_left_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_left_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="shift_right_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::shift_right_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_right_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="multilpies_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::shift_right_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::shift_right_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="multiplies_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::multilpies_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::multilpies_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="divides_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::multiplies_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::multiplies_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="divides_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::divides_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::divides_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="modulus_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::divides_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::divides_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="modulus_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::modulus_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::modulus_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="plus_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::modulus_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::modulus_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="plus_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::plus_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::plus_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="minus_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::plus_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::plus_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="minus_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::minus_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::minus_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="bitwise_and_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::minus_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::minus_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="bitwise_and_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::bitwise_and_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_and_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="bitwise_or_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::bitwise_and_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_and_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="bitwise_or_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::bitwise_or_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_or_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="bitwise_xor_assign"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::bitwise_or_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_or_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="bitwise_xor_assign"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::bitwise_xor_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_xor_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct name="subscript"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::bitwise_xor_assign</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::bitwise_xor_assign</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct name="subscript"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="U"/>
- </template><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::subscript</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef><method-group name="public member functions"/><constructor/></struct><struct-specialization name="function"><template>
+ </template><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::subscript</classname>, <classname>args2</classname>&lt; T, U &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::subscript</classname></type></typedef><typedef name="proto_arg0"><type>T</type></typedef><typedef name="proto_arg1"><type>U</type></typedef></struct><struct-specialization name="function"><template>
       <template-type-parameter name="A0"/>
- </template><specialization><template-arg>A0</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; A0 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></ty
pedef></struct-specialization><struct-specialization name="nary_expr"><template>
+ </template><specialization><template-arg>A0</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args1</classname>&lt; A0 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-spec
ialization name="nary_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="A0"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args1</classname>&lt; A0 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specializa
tion name="function"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args1</classname>&lt; A0 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><template>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
- </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::function</classname>, <classname>args2</classname>&lt; A0, A1 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specializatio
n><struct-specialization name="nary_expr"><template>
+ </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args2</classname>&lt; A0, A1 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="nary_expr">
<template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args2</classname>&lt; A0, A1 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><templa
te>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args2</classname>&lt; A0, A1 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><template>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
- </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::function</classname>, <classname>args3</classname>&lt; A0, A1, A2 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization nam
e="nary_expr"><template>
+ </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args3</classname>&lt; A0, A1, A2 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="nary_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args3</classname>&lt; A0, A1, A2 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>void</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args3</classname>&lt; A0, A1, A2 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><template>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
- </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::function</classname>, <classname>args4</classname>&lt; A0, A1, A2, A3 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="nary_expr"><template>
+ </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args4</classname>&lt; A0, A1, A2, A3 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="nary_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args4</classname>&lt; A0, A1, A2, A3 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>void</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args4</classname>&lt; A0, A1, A2, A3 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><struct-specialization name="function"><template>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="A4"/>
- </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; <classname>proto::tag::function</classname>, <classname>args5</classname>&lt; A0, A1, A2, A3, A4 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type>A4</type></typedef></struct-specialization><struct-specialization name="nary_expr"><template>
+ </template><specialization><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; <classname>proto::tag::function</classname>, <classname>args5</classname>&lt; A0, A1, A2, A3, A4 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type><classname>proto::tag::function</classname></type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type>A4</type></typedef></struct-specialization><struct-specialization name="nary_expr"><template>
       <template-type-parameter name="Tag"/>
       <template-type-parameter name="A0"/>
       <template-type-parameter name="A1"/>
       <template-type-parameter name="A2"/>
       <template-type-parameter name="A3"/>
       <template-type-parameter name="A4"/>
- </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>void</template-arg></specialization><inherit access="public">boost::proto::has_transformns_::has_pass_through_transform&lt; Grammar &gt;</inherit><typedef name="type"><type>expr&lt; Tag, <classname>args5</classname>&lt; A0, A1, A2, A3, A4 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type>A4</type></typedef></struct-specialization></namespace><namespace name="result_of"><struct name="is_ref"><template>
+ </template><specialization><template-arg>Tag</template-arg><template-arg>A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4</template-arg><template-arg>void</template-arg></specialization><typedef name="proto_is_callable_"><type>int</type></typedef><typedef name="type"><type>proto::expr&lt; Tag, <classname>args5</classname>&lt; A0, A1, A2, A3, A4 &gt; &gt;</type></typedef><typedef name="proto_base_expr"><type>type</type></typedef><typedef name="proto_tag"><type>Tag</type></typedef><typedef name="proto_arg0"><type>A0</type></typedef><typedef name="proto_arg1"><type>A1</type></typedef><typedef name="proto_arg2"><type>A2</type></typedef><typedef name="proto_arg3"><type>A3</type></typedef><typedef name="proto_arg4"><type>A4</type></typedef></struct-specialization></namespace><namespace name="result_of"><struct name="is_ref"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="EnableIf"/>
- </template></struct><struct name="is_expr"><template>
+ </template><inherit access="public">boost::mpl::false_</inherit></struct><struct-specialization name="is_ref"><template>
+ <template-type-parameter name="T"/>
+ </template><specialization><template-arg>T</template-arg><template-arg>typename T::proto_is_ref_</template-arg></specialization><inherit access="public">boost::mpl::true_</inherit></struct-specialization><struct name="is_expr"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="EnableIf"/>
- </template></struct><struct name="tag_of"><template>
- <template-type-parameter name="Expr"/>
- </template><typedef name="type"><type>Expr::proto_tag</type></typedef></struct><struct name="id"><template>
+ </template><inherit access="public">boost::mpl::false_</inherit></struct><struct-specialization name="is_expr"><template>
+ <template-type-parameter name="T"/>
+ </template><specialization><template-arg>T</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization><inherit access="public">boost::mpl::true_</inherit></struct-specialization><struct name="tag_of"><template>
       <template-type-parameter name="Expr"/>
- </template><inherit access="public">boost::proto::result_of::deep_copy&lt; Expr &gt;</inherit></struct><struct name="as_expr"><template>
+ </template><typedef name="type"><type>Expr::proto_tag</type></typedef></struct><struct name="as_expr"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="Domain"/>
       <template-type-parameter name="EnableIf"/>
- </template><typedef name="proto_arg0"><type>mpl::eval_if&lt; mpl::or_&lt; boost::is_array&lt; T &gt;, is_function&lt; T &gt; &gt;, add_reference&lt; T &gt;, remove_cv&lt; T &gt;&gt;::type</type></typedef><typedef name="expr_type"><type>expr&lt; <classname>proto::tag::terminal</classname>, <classname>args0</classname>&lt; proto_arg0 &gt; &gt;</type></typedef><typedef name="type"><type>Domain::template apply&lt; expr_type &gt;::type</type></typedef><typedef name="result_type"><type>type const</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static result_type</type><template>
+ </template><typedef name="proto_arg0"><type>mpl::eval_if&lt; mpl::or_&lt; boost::is_array&lt; T &gt;, is_function&lt; T &gt; &gt;, add_reference&lt; T &gt;, remove_cv&lt; T &gt;&gt;::type</type></typedef><typedef name="expr_type"><type>proto::expr&lt; <classname>proto::tag::terminal</classname>, <classname>args0</classname>&lt; proto_arg0 &gt; &gt;</type></typedef><typedef name="type"><type>Domain::template apply&lt; expr_type &gt;::type</type></typedef><typedef name="result_type"><type>type const</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static result_type</type><template>
           <template-type-parameter name="T2"/>
- </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct><struct name="as_arg"><template>
+ </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="as_expr"><template>
+ <template-type-parameter name="T"/>
+ <template-type-parameter name="Domain"/>
+ </template><specialization><template-arg>T</template-arg><template-arg>Domain</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization><typedef name="type"><type>T::proto_derived_expr</type></typedef><typedef name="result_type"><type>T &amp;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static result_type</type><template>
+ <template-type-parameter name="T2"/>
+ </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct-specialization><struct name="as_arg"><template>
       <template-type-parameter name="T"/>
       <template-type-parameter name="Domain"/>
       <template-type-parameter name="EnableIf"/>
- </template><typedef name="expr_type"><type>expr&lt; <classname>proto::tag::terminal</classname>, <classname>args0</classname>&lt; T &amp; &gt; &gt;</type></typedef><typedef name="type"><type>Domain::template apply&lt; expr_type &gt;::type</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type</type><template>
+ </template><typedef name="expr_type"><type>proto::expr&lt; <classname>proto::tag::terminal</classname>, <classname>args0</classname>&lt; T &amp; &gt; &gt;</type></typedef><typedef name="type"><type>Domain::template apply&lt; expr_type &gt;::type</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type</type><template>
+ <template-type-parameter name="T2"/>
+ </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="as_arg"><template>
+ <template-type-parameter name="T"/>
+ <template-type-parameter name="Domain"/>
+ </template><specialization><template-arg>T</template-arg><template-arg>Domain</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization><typedef name="type"><type>ref_&lt; T &gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static type</type><template>
           <template-type-parameter name="T2"/>
- </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct><struct name="arg"><template>
+ </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct-specialization><struct name="arg"><template>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="N"/>
     </template></struct><struct name="left"><template>
@@ -1815,43 +1816,29 @@
       <template-type-parameter name="Expr"/>
     </template><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg1 &gt;</inherit></struct><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>0</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg0 &gt;</inherit><method-group name="public static functions"><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 0 &gt;::reference</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 0 &gt;::const_reference</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="arg_c"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>0</template-arg></specialization><typedef name="wrapped_type"><type>Expr::proto_arg0</type></typedef><typedef name="type"><type><classname>unref</classname>&lt; wrapped_type &gt;::type</type></typedef><typedef name="reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::const_reference</type></typedef><method-group name="public static functions"/></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>Expr const</template-arg><template-arg>0</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 0 &gt;</inherit></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>1</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg1 &gt;</inherit><method-group name="public static functions"><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 1 &gt;::reference</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 1 &gt;::const_reference</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="arg_c"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>1</template-arg></specialization><typedef name="wrapped_type"><type>Expr::proto_arg1</type></typedef><typedef name="type"><type><classname>unref</classname>&lt; wrapped_type &gt;::type</type></typedef><typedef name="reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::const_reference</type></typedef><method-group name="public static functions"/></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>Expr const</template-arg><template-arg>1</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 1 &gt;</inherit></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>2</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg2 &gt;</inherit><method-group name="public static functions"><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 2 &gt;::reference</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 2 &gt;::const_reference</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="arg_c"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>2</template-arg></specialization><typedef name="wrapped_type"><type>Expr::proto_arg2</type></typedef><typedef name="type"><type><classname>unref</classname>&lt; wrapped_type &gt;::type</type></typedef><typedef name="reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::const_reference</type></typedef><method-group name="public static functions"/></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>Expr const</template-arg><template-arg>2</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 2 &gt;</inherit></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>3</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg3 &gt;</inherit><method-group name="public static functions"><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 3 &gt;::reference</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 3 &gt;::const_reference</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="arg_c"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>3</template-arg></specialization><typedef name="wrapped_type"><type>Expr::proto_arg3</type></typedef><typedef name="type"><type><classname>unref</classname>&lt; wrapped_type &gt;::type</type></typedef><typedef name="reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::const_reference</type></typedef><method-group name="public static functions"/></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>Expr const</template-arg><template-arg>3</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 3 &gt;</inherit></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>4</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg4 &gt;</inherit><method-group name="public static functions"><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 4 &gt;::reference</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 4 &gt;::const_reference</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="arg_c"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>4</template-arg></specialization><typedef name="wrapped_type"><type>Expr::proto_arg4</type></typedef><typedef name="type"><type><classname>unref</classname>&lt; wrapped_type &gt;::type</type></typedef><typedef name="reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::const_reference</type></typedef><method-group name="public static functions"/></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
     </template><specialization><template-arg>Expr const</template-arg><template-arg>4</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 4 &gt;</inherit></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr</template-arg><template-arg>5</template-arg></specialization><inherit access="public">boost::proto::result_of::unref&lt; Expr::proto_arg5 &gt;</inherit><method-group name="public static functions"><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 5 &gt;::reference</type><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></method><method name="call" cv=""><type>static <classname>arg_c</classname>&lt; Expr, 5 &gt;::const_reference</type><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="arg_c"><template>
+ </template><specialization><template-arg>Expr</template-arg><template-arg>5</template-arg></specialization><typedef name="wrapped_type"><type>Expr::proto_arg5</type></typedef><typedef name="type"><type><classname>unref</classname>&lt; wrapped_type &gt;::type</type></typedef><typedef name="reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::reference</type></typedef><typedef name="const_reference"><type><classname>unref</classname>&lt; wrapped_type &gt;::const_reference</type></typedef><method-group name="public static functions"/></struct-specialization><struct-specialization name="arg_c"><template>
       <template-type-parameter name="Expr"/>
- </template><specialization><template-arg>Expr const</template-arg><template-arg>5</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 5 &gt;</inherit></struct-specialization><struct-specialization name="is_ref"><template>
- <template-type-parameter name="T"/>
- </template><specialization><template-arg>T</template-arg><template-arg>typename T::proto_is_ref_</template-arg></specialization></struct-specialization><struct-specialization name="is_expr"><template>
- <template-type-parameter name="T"/>
- </template><specialization><template-arg>T</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization></struct-specialization><struct-specialization name="as_expr"><template>
- <template-type-parameter name="T"/>
- <template-type-parameter name="Domain"/>
- </template><specialization><template-arg>T</template-arg><template-arg>Domain</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization><typedef name="type"><type>T::proto_derived_expr</type></typedef><typedef name="result_type"><type>T &amp;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static result_type</type><template>
- <template-type-parameter name="T2"/>
- </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="as_arg"><template>
- <template-type-parameter name="T"/>
- <template-type-parameter name="Domain"/>
- </template><specialization><template-arg>T</template-arg><template-arg>Domain</template-arg><template-arg>typename T::proto_is_expr_</template-arg></specialization><typedef name="type"><type><classname>ref_</classname>&lt; T &gt;</type></typedef><method-group name="public static functions"><method name="call" cv=""><type>static <classname>type</classname></type><template>
- <template-type-parameter name="T2"/>
- </template><parameter name="t"><paramtype>T2 &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace><function name="implicit_expr"><type><emphasis>unspecified</emphasis></type><template>
+ </template><specialization><template-arg>Expr const</template-arg><template-arg>5</template-arg></specialization><inherit access="public">boost::proto::result_of::arg_c&lt; Expr, 5 &gt;</inherit></struct-specialization></namespace><data-member name="left"><type><classname>functional::left</classname> const</type></data-member><data-member name="right"><type><classname>functional::right</classname> const</type></data-member><function name="implicit_expr"><type><emphasis>unspecified</emphasis></type><template>
           <template-type-parameter name="A0"/>
         </template><parameter name="a0"><paramtype>A0 &amp;</paramtype></parameter></function><function name="implicit_expr"><type><emphasis>unspecified</emphasis></type><template>
           <template-type-parameter name="A0"/>
@@ -1875,342 +1862,484 @@
           <template-type-parameter name="T"/>
         </template><parameter name="t"><paramtype>T &amp;</paramtype></parameter></signature><signature><type><classname>result_of::as_expr</classname>&lt; T const &gt;::result_type</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></signature><description><para>as_expr </para></description></overloaded-function><overloaded-function name="as_arg"><signature><type><classname>result_of::as_arg</classname>&lt; T &gt;::type</type><template>
+ </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></signature><description><para>as_expr</para><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></overloaded-function><overloaded-function name="as_arg"><signature><type><classname>result_of::as_arg</classname>&lt; T &gt;::type</type><template>
           <template-type-parameter name="T"/>
         </template><parameter name="t"><paramtype>T &amp;</paramtype></parameter></signature><signature><type><classname>result_of::as_arg</classname>&lt; T const &gt;::type</type><template>
           <template-type-parameter name="T"/>
- </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></signature><description><para>as_arg </para></description></overloaded-function><overloaded-function name="arg"><signature><type><classname>result_of::unref</classname>&lt; typename Expr::proto_base_expr::proto_arg0 &gt;::reference</type><template>
+ </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></signature><description><para>as_arg</para><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></overloaded-function><overloaded-function name="arg"><signature><type><classname>result_of::unref</classname>&lt; typename Expr::proto_base_expr::proto_arg0 &gt;::reference</type><template>
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></signature><signature><type><classname>result_of::unref</classname>&lt; typename Expr::proto_base_expr::proto_arg0 &gt;::const_reference</type><template>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></signature><description><para>arg </para></description></overloaded-function><overloaded-function name="arg_c"><signature><type>result_of::arg_c&lt; Expr, N &gt;::reference</type><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></signature><description><para>arg</para><para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para></description></overloaded-function><overloaded-function name="arg_c"><signature><type>result_of::arg_c&lt; Expr, N &gt;::reference</type><template>
           <template-nontype-parameter name="N"><type>long</type></template-nontype-parameter>
           <template-type-parameter name="Expr"/>
         </template><parameter name="expr"><paramtype>Expr &amp;</paramtype></parameter></signature><signature><type>result_of::arg_c&lt; Expr, N &gt;::const_reference</type><template>
           <template-nontype-parameter name="N"><type>long</type></template-nontype-parameter>
           <template-type-parameter name="Expr"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></signature><description><para>arg_c </para></description></overloaded-function><data-member name="left"><type><classname>functional::left</classname> const</type></data-member><data-member name="right"><type><classname>functional::right</classname> const</type></data-member></namespace></namespace></header><header name="boost/xpressive/proto/transform.hpp"><para>Includes all the transforms in the transform/ sub-directory. </para></header><header name="boost/xpressive/proto/transform/apply.hpp"><para>Proto transforms for applying MPL placeholder expressions. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="always"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Always"/>
- <template-type-parameter name="Factory"/>
- </template><struct name="apply"><template>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Always</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static Always</type><template>
- <template-type-parameter name="Expr"/>
- <template-type-parameter name="State"/>
- <template-type-parameter name="Visitor"/>
- </template><parameter name=""><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="apply1"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Lambda"/>
- <template-type-parameter name="Factory"/>
- </template><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter></signature><description><para>arg_c </para></description></overloaded-function></namespace></namespace></header><header name="boost/xpressive/proto/transform.hpp"><para>Includes all the transforms in the transform/ sub-directory. </para></header><header name="boost/xpressive/proto/transform/arg.hpp"><para>Contains definition of the argN transforms. </para><namespace name="boost"><namespace name="proto"><struct name="_arg_c"><template>
+ <template-nontype-parameter name="I"><type>int</type></template-nontype-parameter>
+ </template><inherit access="public">boost::proto::transform::arg_c&lt; I &gt;</inherit></struct><namespace name="transform"><struct name="expr"><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>Expr</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>Expr const &amp;</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="apply2"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Lambda"/>
- <template-type-parameter name="Factory"/>
- </template><struct name="apply"><template>
+ </template><parameter name="expr_"><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="state"><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>State</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>State const &amp;</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="apply3"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Lambda"/>
- <template-type-parameter name="Factory"/>
- </template><struct name="apply"><template>
+ </template><parameter name=""><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state_"><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="visitor"><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>Visitor</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>Visitor &amp;</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/arg.hpp"><para>Proto transforms for extracting arguments from expressions. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="arg"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="N"/>
- </template><struct name="apply"><template>
+ </template><parameter name=""><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor_"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="arg_c"><template>
+ <template-nontype-parameter name="I"><type>int</type></template-nontype-parameter>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><inherit access="public">boost::proto::result_of::arg&lt; Grammar::template apply&lt; Expr, State, Visitor &gt;::type, N &gt;</inherit></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>proto::result_of::arg_c&lt; Expr, I &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>proto::result_of::arg_c&lt; Expr, I &gt;::const_reference</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="arg_c"><template>
- <template-type-parameter name="Grammar"/>
- <template-nontype-parameter name="N"><type>long</type></template-nontype-parameter>
- </template><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="_ref"><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="T"/>
+ </template><specialization><template-arg>This(T &amp;)</template-arg></specialization><typedef name="type"><type>boost::reference_wrapper&lt; T &gt;</type></typedef></struct-specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="T"/>
+ </template><specialization><template-arg>This(T)</template-arg></specialization><typedef name="type"><type>boost::reference_wrapper&lt; T const &gt;</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>boost::reference_wrapper&lt; T &gt;</type><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="t"><paramtype>T &amp;</paramtype></parameter></method><method name="operator()" cv="const"><type>boost::reference_wrapper&lt; T const &gt;</type><template>
+ <template-type-parameter name="T"/>
+ </template><parameter name="t"><paramtype>T const &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/bind.hpp"><para>Contains definition of the bind&lt;&gt; transform. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="bind"><template>
+ <template-type-parameter name="Fun"/>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; <classname>Fun</classname> &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="left"><template>
- <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="bind"><template>
+ <template-type-parameter name="Return"/>
+ </template><specialization><template-arg>Return()</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><inherit access="public">boost::proto::result_of::left&lt; Grammar::template apply&lt; Expr, State, Visitor &gt;::type &gt;</inherit></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; Return &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type() &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="right"><template>
- <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="bind"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ </template><specialization><template-arg>Return(A0)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><inherit access="public">boost::proto::result_of::right&lt; Grammar::template apply&lt; Expr, State, Visitor &gt;::type &gt;</inherit></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; Return &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type(A0) &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="identity"><template>
- <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>Expr_</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static Expr_ const &amp;</type><template>
- <template-type-parameter name="Expr_"/>
- <template-type-parameter name="State_"/>
- <template-type-parameter name="Visitor_"/>
- </template><parameter name="expr_"><paramtype>Expr_ const &amp;</paramtype></parameter><parameter name=""><paramtype>State_ const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor_ &amp;</paramtype></parameter></method></method-group></struct><struct name="state"><template>
- <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
- <template-type-parameter name=""/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="bind"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
- <template-type-parameter name=""/>
- </template><typedef name="type"><type>State</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static State const &amp;</type><template>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; Return &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type(A0, A1) &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name=""><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state_"><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="visitor"><template>
- <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
- <template-type-parameter name=""/>
- <template-type-parameter name=""/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="bind"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><typedef name="type"><type>Visitor</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static Visitor &amp;</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; Return &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type(A0, A1, A2) &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name=""><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor_"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/branch.hpp"><para>A special-purpose proto transform for transforming one branch of the expression tree separately from the rest. Given an expression and a new state, it transforms the expression using the new state. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="branch"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="BranchState"/>
- </template><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="bind"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; Return &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type(A0, A1, A2, A3) &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/compose.hpp"><para>A special-purpose proto transform for composing two transfomations. Given two Grammars, expressions that match the first grammar are transformed according to that grammar, and the result is forwarded to the second for further transformation. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="compose"><template>
- <template-type-parameter name="Grammar1"/>
- <template-type-parameter name="Grammar2"/>
- </template><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="bind"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ <template-type-parameter name="A4"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><typedef name="type"><type>Grammar2::template <classname>apply</classname>&lt; typename Grammar1::template <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type, State, Visitor &gt;::type</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><classname>call</classname>&lt; typename <classname>make</classname>&lt; Return &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type(A0, A1, A2, A3, A4) &gt;</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/construct.hpp"><para>For constructing an arbitrary type from a bunch of transforms. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct-specialization name="construct"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Result"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>Result()</template-arg></specialization><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/call.hpp"><para>Contains definition of the call&lt;&gt; transform. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="call"><template>
+ <template-type-parameter name="Fun"/>
+ </template><inherit access="public">Fun</inherit><typedef name="proto_is_callable_"><type>void</type></typedef></struct><struct-specialization name="call"><template>
+ <template-type-parameter name="Fun"/>
+ </template><specialization><template-arg>Fun()</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group><method-group name="private static functions"/></struct-specialization><struct-specialization name="construct"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Result"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="call"><template>
+ <template-type-parameter name="Fun"/>
       <template-type-parameter name="Arg0"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>Result(Arg0)</template-arg></specialization><struct name="apply"><template>
+ </template><specialization><template-arg>Fun(Arg0)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group><method-group name="private static functions"/></struct-specialization><struct-specialization name="construct"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Result"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="call"><template>
+ <template-type-parameter name="Fun"/>
       <template-type-parameter name="Arg0"/>
       <template-type-parameter name="Arg1"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>Result(Arg0</template-arg><template-arg>Arg1)</template-arg></specialization><struct name="apply"><template>
+ </template><specialization><template-arg>Fun(Arg0</template-arg><template-arg>Arg1)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group><method-group name="private static functions"/></struct-specialization><struct-specialization name="construct"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Result"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="call"><template>
+ <template-type-parameter name="Fun"/>
       <template-type-parameter name="Arg0"/>
       <template-type-parameter name="Arg1"/>
       <template-type-parameter name="Arg2"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>Result(Arg0</template-arg><template-arg>Arg1</template-arg><template-arg>Arg2)</template-arg></specialization><struct name="apply"><template>
+ </template><specialization><template-arg>Fun(Arg0</template-arg><template-arg>Arg1</template-arg><template-arg>Arg2)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>boost::result_of&lt; <classname>Fun</classname>(typename <classname>when</classname>&lt; _, Arg0 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, Arg1 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, Arg2 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type)&gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group><method-group name="private static functions"/></struct-specialization><struct-specialization name="construct"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Result"/>
- <template-type-parameter name="Arg0"/>
- <template-type-parameter name="Arg1"/>
- <template-type-parameter name="Arg2"/>
- <template-type-parameter name="Arg3"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>Result(Arg0</template-arg><template-arg>Arg1</template-arg><template-arg>Arg2</template-arg><template-arg>Arg3)</template-arg></specialization><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="call"><template>
+ <template-type-parameter name="Fun"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ </template><specialization><template-arg>Fun(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>boost::result_of&lt; <classname>Fun</classname>(typename <classname>when</classname>&lt; _, A0 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A1 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A2 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A3 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type)&gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group><method-group name="private static functions"/></struct-specialization><struct-specialization name="construct"><template>
- <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Result"/>
- <template-type-parameter name="Arg0"/>
- <template-type-parameter name="Arg1"/>
- <template-type-parameter name="Arg2"/>
- <template-type-parameter name="Arg3"/>
- <template-type-parameter name="Arg4"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>Result(Arg0</template-arg><template-arg>Arg1</template-arg><template-arg>Arg2</template-arg><template-arg>Arg3</template-arg><template-arg>Arg4)</template-arg></specialization><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="call"><template>
+ <template-type-parameter name="Fun"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ <template-type-parameter name="A4"/>
+ </template><specialization><template-arg>Fun(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type>boost::result_of&lt; <classname>Fun</classname>(typename <classname>when</classname>&lt; _, A0 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A1 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A2 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A3 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type, typename <classname>when</classname>&lt; _, A4 &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type)&gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group><method-group name="private static functions"/></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/fold.hpp"><para>A special-purpose proto transform for merging sequences of binary operations. It transforms the right operand and passes the result as state while transforming the left. Or, it might do the left first, if you choose. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct-specialization name="fold"><template>
- <template-type-parameter name="Grammar"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>void</template-arg></specialization><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/fold.hpp"><para>Contains definition of the fold&lt;&gt; and reverse_fold&lt;&gt; transforms.</para><para>Contains definition of the fold_tree&lt;&gt; and reverse_fold_tree&lt;&gt; transforms. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="fold"><template>
+ <template-type-parameter name="Sequence"/>
+ <template-type-parameter name="State0"/>
+ <template-type-parameter name="Fun"/>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"><method name="fold" cv=""><type/></method></method-group><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="sequence"><type><classname>when</classname>&lt; _, Sequence &gt;::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="reverse_fold"><template>
- <template-type-parameter name="Grammar"/>
- </template><specialization><template-arg>Grammar</template-arg><template-arg>void</template-arg></specialization><struct name="apply"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="reverse_fold"><template>
+ <template-type-parameter name="Sequence"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Fun"/>
+ </template><inherit access="public">boost::proto::transform::fold&lt; Sequence, State0, Fun &gt;</inherit></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/fold_tree.hpp"><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="fold_tree"><template>
+ <template-type-parameter name="Sequence"/>
+ <template-type-parameter name="State0"/>
+ <template-type-parameter name="Fun"/>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"><method name="reverse_fold" cv=""><type/></method></method-group><method-group name="public static functions"><method name="call" cv=""><type>static apply&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/fold_tree.hpp"><para>A higher-level transform that uses the fold, and branch transforms to recursively fold a tree. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="fold_tree"><template>
- <template-type-parameter name="Tag"/>
- <template-type-parameter name="Grammar"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="reverse_fold_tree"><template>
+ <template-type-parameter name="Sequence"/>
+ <template-type-parameter name="State0"/>
+ <template-type-parameter name="Fun"/>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
- </template><description><para>fold_tree </para></description></struct><struct name="reverse_fold_tree"><template>
- <template-type-parameter name="Tag"/>
- <template-type-parameter name="Grammar"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type><emphasis>unspecified</emphasis></type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/make.hpp"><para>Contains definition of the make&lt;&gt; transform. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="make"><template>
+ <template-type-parameter name="Fun"/>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name=""><paramtype>Expr const &amp;</paramtype></parameter><parameter name=""><paramtype>State const &amp;</paramtype></parameter><parameter name=""><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct-specialization name="make"><template>
+ <template-type-parameter name="Return"/>
+ </template><specialization><template-arg>Return()</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="make"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ </template><specialization><template-arg>Return(A0)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="make"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="make"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="make"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
- </template><description><para>reverse_fold_tree </para></description></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/function.hpp"><para>Proto transforms for applying a function object. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="function1"><template>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization><struct-specialization name="make"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ <template-type-parameter name="A4"/>
+ </template><specialization><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
+ <template-type-parameter name="Expr"/>
+ <template-type-parameter name="State"/>
+ <template-type-parameter name="Visitor"/>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct-specialization></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/pass_through.hpp"><para>TODO </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="pass_through"><template>
       <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Function1"/>
- </template><struct name="apply"><template>
+ </template><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="type"><type><emphasis>unspecified</emphasis></type></typedef></struct-specialization><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="function2"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/when.hpp"><para>Definition of when transform. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="when"><template>
+ <template-type-parameter name="Grammar"/>
+ <template-type-parameter name="Fun"/>
+ </template><inherit access="public">Fun</inherit><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef></struct><struct-specialization name="when"><template>
       <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Function2"/>
- </template><struct name="apply"><template>
+ <template-type-parameter name="Fun"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Fun *</template-arg></specialization><inherit access="public">boost::proto::transform::when&lt; Grammar, Fun &gt;</inherit></struct-specialization><struct name="otherwise"><template>
+ <template-type-parameter name="Fun"/>
+ </template><inherit access="public">boost::proto::transform::when&lt; _, Fun &gt;</inherit></struct><struct-specialization name="when"><template>
+ <template-type-parameter name="Grammar"/>
+ <template-type-parameter name="Return"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Return()</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type>mpl::if_&lt; <classname>is_callable</classname>&lt; Return &gt;, <classname>call</classname>&lt; Return() &gt;, <classname>make</classname>&lt; Return() &gt; &gt;::type</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="function3"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter><description><para>Function call operator </para></description></method></method-group></struct-specialization><struct-specialization name="when"><template>
       <template-type-parameter name="Grammar"/>
- <template-type-parameter name="Function3"/>
- </template><struct name="apply"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Return(A0)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type>mpl::if_&lt; <classname>is_callable</classname>&lt; Return &gt;, <classname>call</classname>&lt; Return(A0) &gt;, <classname>make</classname>&lt; Return(A0) &gt; &gt;::type</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/list.hpp"><para>A special-purpose proto transform for putting things into a fusion::cons&lt;&gt; list. </para><namespace name="boost"><namespace name="proto"><namespace name="transform"><struct name="list"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter><description><para>Function call operator </para></description></method></method-group></struct-specialization><struct-specialization name="when"><template>
       <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Return(A0</template-arg><template-arg>A1)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><typedef name="type"><type>fusion::cons&lt; typename Grammar::template <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type, State &gt;</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type>mpl::if_&lt; <classname>is_callable</classname>&lt; Return &gt;, <classname>call</classname>&lt; Return(A0, A1) &gt;, <classname>make</classname>&lt; Return(A0, A1) &gt; &gt;::type</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct><struct name="tail"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter><description><para>Function call operator </para></description></method></method-group></struct-specialization><struct-specialization name="when"><template>
       <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template><typedef name="type"><type>Grammar::template <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type::cdr_type</type></typedef></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type>mpl::if_&lt; <classname>is_callable</classname>&lt; Return &gt;, <classname>call</classname>&lt; Return(A0, A1, A2) &gt;, <classname>make</classname>&lt; Return(A0, A1, A2) &gt; &gt;::type</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header><header name="boost/xpressive/proto/transform/pass_through.hpp"><para>TODO </para><namespace name="boost"><namespace name="proto"><namespace name="has_transformns_"><struct name="has_pass_through_transform"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter><description><para>Function call operator </para></description></method></method-group></struct-specialization><struct-specialization name="when"><template>
       <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type>mpl::if_&lt; <classname>is_callable</classname>&lt; Return &gt;, <classname>call</classname>&lt; Return(A0, A1, A2, A3) &gt;, <classname>make</classname>&lt; Return(A0, A1, A2, A3) &gt; &gt;::type</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace><namespace name="transform"><struct name="pass_through"><template>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter><description><para>Function call operator </para></description></method></method-group></struct-specialization><struct-specialization name="when"><template>
       <template-type-parameter name="Grammar"/>
- </template><struct name="apply"><template>
+ <template-type-parameter name="Return"/>
+ <template-type-parameter name="A0"/>
+ <template-type-parameter name="A1"/>
+ <template-type-parameter name="A2"/>
+ <template-type-parameter name="A3"/>
+ <template-type-parameter name="A4"/>
+ </template><specialization><template-arg>Grammar</template-arg><template-arg>Return(A0</template-arg><template-arg>A1</template-arg><template-arg>A2</template-arg><template-arg>A3</template-arg><template-arg>A4)</template-arg></specialization><struct-specialization name="result"><template>
+ <template-type-parameter name="This"/>
       <template-type-parameter name="Expr"/>
       <template-type-parameter name="State"/>
       <template-type-parameter name="Visitor"/>
- </template></struct><method-group name="public member functions"/><constructor/><method-group name="public static functions"><method name="call" cv=""><type>static <classname>apply</classname>&lt; Expr, State, Visitor &gt;::type</type><template>
+ </template><specialization><template-arg>This(Expr</template-arg><template-arg>State</template-arg><template-arg>Visitor)</template-arg></specialization><typedef name="impl"><type>mpl::if_&lt; <classname>is_callable</classname>&lt; Return &gt;, <classname>call</classname>&lt; Return(A0, A1, A2, A3, A4) &gt;, <classname>make</classname>&lt; Return(A0, A1, A2, A3, A4) &gt; &gt;::type</type></typedef><typedef name="type"><type>impl::template result&lt; void(Expr, State, Visitor) &gt;::type</type></typedef></struct-specialization><typedef name="proto_base_expr"><type>Grammar::proto_base_expr</type></typedef><method-group name="public member functions"><method name="operator()" cv="const"><type>result&lt; void(Expr, State, Visitor) &gt;::type</type><template>
           <template-type-parameter name="Expr"/>
           <template-type-parameter name="State"/>
           <template-type-parameter name="Visitor"/>
- </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter></method></method-group></struct></namespace></namespace></namespace></header></library-reference>
+ </template><parameter name="expr"><paramtype>Expr const &amp;</paramtype></parameter><parameter name="state"><paramtype>State const &amp;</paramtype></parameter><parameter name="visitor"><paramtype>Visitor &amp;</paramtype></parameter><description><para>Function call operator </para></description></method></method-group></struct-specialization></namespace></namespace></namespace></header></library-reference>

Modified: branches/proto/v3/libs/xpressive/proto/doc/quick_start.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/quick_start.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/quick_start.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/proto/v3/libs/xpressive/proto/doc/rationale.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/rationale.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/rationale.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2006 Eric Niebler
+ / Copyright (c) 2008 Eric Niebler
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,7 +7,9 @@
 
 [section:rationale Appendix B: Rationale]
 
+[/==================================================]
 [section:static_initialization Static Initialization]
+[/==================================================]
 
 Proto expression types are PODs (Plain Old Data), and do not have constructors.
 They are brace-initialized, as follows:
@@ -17,11 +19,81 @@
 The reason is so that expression objects like `_i` above can be ['statically
 initialized]. Why is static initialization important? The terminals of many
 domain-specific embedded languages are likely to be global const objects, like
-`_1` and `_2` from the Boost.Lambda library. Were these object to require
+`_1` and `_2` from the Boost Lambda Library. Were these object to require
 run-time initialization, it might be possible to use these objects before they
 are initialized. That would be bad. Statically initialized objects cannot be
 misused that way.
 
 [endsect]
 
+[/======================================================================]
+[section:result_of Proto Transforms and the Restricted ResultOf Protocol]
+[/======================================================================]
+
+All Proto primitive transforms make use of a variant of the TR1 ResultOf
+protocol for computing the type of the transform's return value. Such
+transforms must have a nested `result<>` template (not a nested `result_type`
+typedef) which takes exactly three parameter types. That is, it must be
+defined as:
+
+ template<typename Sig> struct result {};
+
+ template<typename This, typename Expr, typename State, typename Visitor>
+ struct result<This(Expr, State, Visitor)>
+ {
+ typedef ... type;
+ };
+
+In the above, `Expr`, `State`, and `Visitor` are assumed by Proto to be
+non-cv-qualified non-reference types. The implication is that for some
+Proto transform `Tr`, some `result_of<>` instantiations work while others
+don't. See below.
+
+ // ERROR, doesn't work:
+ boost::result_of<Tr(Expr const &, State const &, Visitor &)>::type
+
+ // OK, works:
+ boost::result_of<Tr(Expr, State, Visitor)>::type
+
+It is done this way largely for compile-time performance. Full
+compliance with the TR1 ResultOf protocol incurs a not insignificant penalty
+at compile time. Metaprogramming tricks are needed to first detect a nested
+`result_type` typedef if it exists. And each nested `result<>` template
+would need to be coded specially to handle references and cv-qualifiers, which
+incurs many instantiations of `remove_reference<>` and `remove_cv<>`. In
+private testing, this was found to have a measurable impact on compile-time
+performance in the order of 10-15%, which was deemed unacceptable.
+
+The restricted protocol improves compile times while remaining largely
+compatible with TR1's `result_of<>`. As a side benefit, it makes
+Proto's primitive transforms easier to implement, since the user need not
+worry about stripping references and cv-qualification in their nested
+`result<>` templates.
+
+[endsect]
+
+[/=========================================================]
+[section:preprocessor Why Not Reuse MPL, Fusion, et cetera?]
+[/=========================================================]
+
+Anyone who has peeked at Proto's source code has probably wondered,
+"Why all the dirty preprocessor gunk? Couldn't this have been all
+implemented cleanly on top of libraries like MPL and Fusion?" The
+answer is that Proto could have been implemented this way, and in fact
+was at one point. The problem is that template metaprogramming (TMP)
+makes for very long compile times. As a foundation upon which other
+TMP-heavy libraries will be built, Proto itself should be as lightweight
+as possible. That is achieved by prefering preprocessor metaprogramming
+to template metaprogramming. Expanding a macro is far more efficient
+than instantiating a template. In some cases, the "clean" version takes
+10x longer to compile than the "dirty" version.
+
+The "clean and slow" version of Proto can still be found at
+http://svn.boost.org/svn/boost/branches/proto/v3. Anyone who is interested
+can download it and verify that it is, in fact, unusably slow to compile.
+Note that this branch's development was abandoned, and it does not
+conform exactly with Proto's current interface.
+
+[endsect]
+
 [endsect]

Modified: branches/proto/v3/libs/xpressive/proto/doc/transforms.qbk
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/doc/transforms.qbk (original)
+++ branches/proto/v3/libs/xpressive/proto/doc/transforms.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,30 +28,50 @@
 are to be transformed. Just as the grammar is defined recursively, so too
 is the tree transformation.
 
-A grammar decorated with transforms has a static member function named
-`call()` which takes three parameters:
-
-* `expr` -- the expression to transform
-* `state` -- the state of the transformation so far
-* `visitor` -- any optional auxiliary mutable state information
-
-It also has a nested `apply<>` template which is used to calculate the return
-type of the `call()` member function.
-
-Let's say we have a grammar called `Grammar`, an expression template
-object called `expr` that matches the grammar, and `state` and `visitor`
-objects of your choosing. What happens when you call
-`Grammar::call(expr, state, visitor)`? Well, if `Grammar` were defined as
-`shift_right< Rule1, Rule2 >`, for instance, it might transform the left
-child of `expr` according to `Rule1`'s transform, do the same thing to the
-right child using `Rule2`, and combine the results somehow. Of course, `Rule1`
-and `Rule2` might be defined in terms of other rules with other transforms, so
-the process executes recursively. Some transforms, the `fold<>` in particular,
-use the result of transforming one child as the `state` parameter when
-transforming the other child. In this way, the results of the recursive
-transformations can be accumulated bottom-up.
-
-That's it, in a nutshell. Now let's crack this nut and peek inside.
+You associate transforms with your grammar rules using _when_. For instance,
+you might want to promote all `int` terminals to `long`. You would say
+`when< terminal<int>, terminal<long>::type(_arg) >`. Here,
+`terminal<long>::type(_arg)` is an example of a Proto transform. It says to
+create an object of type `terminal<long>::type` and initialize it with the
+result of the `_arg` transform. `_arg` is a transform defined by Proto which
+essentially calls `proto::arg()` on the current expression.
+
+[note The transform above might look a little strange at first. It appears
+to be constructing a temporary object in place. In fact, it is a
+/function type/. Since `terminal<long>::type` and `_arg` are types,
+`terminal<long>::type(_arg)` is actually the type of a function that takes
+`_arg` as a parameter and returns `terminal<long>::type`. That is immaterial;
+there is no such function in reality. Rather, Proto interprets this function
+type as a transform, the effect of which is described above. The resemblance
+to an in-place construction of a temporary object is intentional. It is a
+concise and natural notation for specifying transforms. Proto transforms use
+function types extensively, as we'll see.]
+
+A grammar decorated with transforms is a function object that takes three
+parameters:
+
+* `expr` -- the Proto expression to transform
+* `state` -- the initial state of the transformation
+* `visitor` -- any optional mutable state information
+
+Grammars with transforms are proper function objects, so you can use
+`boost::result_of<>` to calculate their return types. So, applying a
+transform typically looks like this:
+
+ // Assuming we have an expression to transform,
+ // an initial state, and a visitor ...
+ Expr expr;
+ State state;
+ Visitor visitor;
+
+ // ... calculate the result type of applying
+ // Grammar's transform ...
+ typedef typename
+ boost::result_of<Grammar(Expr, State, Visitor)>::type
+ result_type;
+
+ // ... and apply Grammar's transform:
+ result_type result = Grammar()(expr, state, visitor);
 
 [/==========================================]
 [section Example: Calculator Arity Transform]
@@ -87,14 +107,14 @@
 
 We can immediately write the calculator grammar as follows:
 
-[CalculatorGrammar]
+[CalcGrammar]
 
 We can read this as follows: a calculator expression is either placeholder 1,
 placeholder 2, some other terminal, or some unary or binary operator whose
 operands are calculator expressions. Recall that `proto::_` is a wildcard which
 matches anything. So `terminal< _ >` will match any terminal, and
-`unary_expr< _, CalculatorGrammar >` will match any unary expression
-for which the operand matches CalculatorGrammar (the `_` matches any operator
+`unary_expr< _, CalcArity >` will match any unary expression
+for which the operand matches CalcArity (the `_` matches any operator
 tag).
 
 [/============================]
@@ -117,129 +137,151 @@
 The total arity of a calculator expression is found by recursively evaluating
 the arity of all of the sub-expressions and taking the maximum.
 
-Let's look at the sub-expression for placeholder 1. It is matched by this part
-of our grammar: `terminal< placeholder1 >`. We want to associate this
+Let's look at the sub-expression for the placeholder `_1`. It is matched by this
+part of our grammar: `terminal< placeholder1 >`. We want to associate this
 part of our grammar with an arity of `1`. We do that by attaching a transform.
 Since the arity of an expression can be evaluated at compile time, let's use
 `mpl::int_<1>` to represent the arity of the first placeholder. The following
 attaches a transform that always evaluates to `mpl::int_<1>`:
 
- transform::always< terminal< placeholder1 >, mpl::int_<1> >
+ when< terminal< placeholder1 >, mpl::int_<1>() >
 
 This grammar rule will match any `placeholder1` terminal, and will transform it
-to `mpl::int_<1>`. Likewise, we will use the `transform::always<>` transform to
-transform `placeholder2` terminals into `mpl::int_<2>`, and other terminals
-into `mpl::int_<0>`.
+to a (default-constructed) `mpl::int_<1>` object. As described previously,
+`mpl::int_<1>()` is a function type, but Proto interprets it as an object to
+construct. We will have a similar transform to convert `placeholder2` terminals
+into `mpl::int_<2>`, and other terminals into `mpl::int_<0>`.
 
 Next, let's write a transform for unary operators that returns the arity of the
 operand. It is simply:
 
- transform::arg< unary_expr< _, CalculatorGrammar > >
-
-As you might expect, the `transform::arg<>` transform returns the argument of the
-unary expression. This looks simple, but there is quite a lot going on here.
-
-First, you should know that transforms are written so that they can be chained.
-So `transform::arg<>` invokes the transform associated with
-`unary_expr< _, CalculatorGrammar >` before it does anything else.
-
-That begs the question, what does `unary_expr<>`'s transform do? Well,
-`unary_expr< _, CalculatorGrammar >` has a default transform
-associated with it. It is a /pass-through/ transform. When an expression
-of the form `expr< T, arg1< X > >` is passed to the transform, its `apply<>`
-member template will invoke the `CalculatorGrammar` transform (which we haven't
-completely defined yet -- patience) on `X` resulting in `Y`, and then
-reassemble the expression as `expr< T, arg1< Y > >`.
+ when< unary_expr< _, CalcArity >, CalcArity(_arg) >
 
-[note You may have noticed that Proto types like `unary_expr<>` serve several
-different but related roles. In particular, `unary_expr<>` is ...
+The transform `CalcArity(_arg)` recursively applies the `CalcArity`
+transform to the child node of the unary expression. As you might have noticed,
+`CalcArity(_arg)` is another function type, but Proto interprets this one
+differently. Rather than trying to construct a `CalcArity` object, Proto
+knows this is a function object and invokes it instead.
+
+[note When using function types as Proto transforms, they can either represent
+an object to construct or a function to call. It is similar to C++ where the
+syntax `foo(x)` can either be interpreted as an object to construct or a
+function to call, depending on whether `foo` is a type or a function. Proto
+can't know in general which is the case, so it uses a trait, `proto::is_callable<>`,
+to differentiate. `is_callable< mpl::int_<1> >::value` is false so `mpl::int_<1>()`
+is an object to construct, but `is_callable< CalcArity >::value` is true so
+`CalcArity(_arg)` is a function to call. (`is_callable< CalcArity >::value` is true
+because `CalcArity` inherits from `proto::or_<>`, which is callable.)]
+
+[/
+ That begs the question, what does `unary_expr<>`'s transform do? Well,
+ `unary_expr< _, CalcArity >` has a default transform
+ associated with it. It is a /pass-through/ transform. When an expression
+ of the form `expr< T, arg1< X > >` is passed to the transform, its `apply<>`
+ member template will invoke the `CalcArity` transform (which we haven't
+ completely defined yet -- patience) on `X` resulting in `Y`, and then
+ reassemble the expression as `expr< T, arg1< Y > >`.
+
+ [note You may have noticed that Proto types like `unary_expr<>` serve several
+ different but related roles. In particular, `unary_expr<>` is ...
+
+ ... [*a meta-function]: `unary_expr<T, X>::type` is a typedef for
+ `expr<T, args1<X> >`.
+
+ ... [*a grammar]: `unary_expr<U, Y>` is a simle grammar that matches
+ `expr<T, args1<X> >` if an only if `U` is `T` or `proto::_`, and `Y` is a
+ grammar that matches `X`.
+
+ ... [*a transform]: `unary_expr<U, Y>::apply<expr<T, args1<X> >, S, V>::type`
+ applies `unary_expr<>`'s pass-through transform to `expr<T, args1<X> >` with
+ state `S` and visitor `V`. The result is
+ `expr<T, args1< Y::apply<X, S, V>::type > >`.
+ ]
+
+ So, putting a few things together, consider the calculator expression `+_1`,
+ which would have the following type:
+
+ expr< tag::posit, arg1<
+ expr< tag::terminal, arg0< placeholder1 > >
+ > >
+
+ If we executed the `unary_expr< _, CalcArity >` transform on this
+ expression, we would expect to get:
+
+ expr< tag::posit, arg1<
+ mpl::int_<1>
+ > >
+
+ And if we added the `transform::arg<>` transform also, as in
+ `transform::arg< unary_expr< _, CalcArity > >`, we expect the result
+ to be:
 
-... [*a meta-function]: `unary_expr<T, X>::type` is a typedef for
-`expr<T, args1<X> >`.
-
-... [*a grammar]: `unary_expr<U, Y>` is a simle grammar that matches
-`expr<T, args1<X> >` if an only if `U` is `T` or `proto::_`, and `Y` is a
-grammar that matches `X`.
-
-... [*a transform]: `unary_expr<U, Y>::apply<expr<T, args1<X> >, S, V>::type`
-applies `unary_expr<>`'s pass-through transform to `expr<T, args1<X> >` with
-state `S` and visitor `V`. The result is
-`expr<T, args1< Y::apply<X, S, V>::type > >`.
-]
-
-So, putting a few things together, consider the calculator expression `+_1`,
-which would have the following type:
-
- expr< tag::posit, arg1<
- expr< tag::terminal, arg0< placeholder1 > >
- > >
+ mpl::int_<1>
 
-If we executed the `unary_expr< _, CalculatorGrammar >` transform on this
-expression, we would expect to get:
+ Which is exactly what we want.
 
- expr< tag::posit, arg1<
- mpl::int_<1>
- > >
+ [note *Default Transforms*
 
-And if we added the `transform::arg<>` transform also, as in
-`transform::arg< unary_expr< _, CalculatorGrammar > >`, we expect the result
-to be:
-
- mpl::int_<1>
-
-Which is exactly what we want.
-
-[note *Default Transforms*
-
-All the tools Proto provides for defining grammar rules have default transforms
-associated with them. Just as `unary_expr<>` has a pass-through transform,
-so too does `binary_expr<>`, `shift_right<>`, and all the others.
-`proto::or_<>` has a default transform which evaluates the transform of the
-branch that matched. `proto::and_<>`'s default transform evaluates the
-transform of the last branch. Even `proto::expr<>`, `proto::if_<>`,
-`proto::not_<>`, and `proto::_` have no-op default transforms that simply return
-unmodified the expressions passed to them.
+ All the tools Proto provides for defining grammar rules have default transforms
+ associated with them. Just as `unary_expr<>` has a pass-through transform,
+ so too does `binary_expr<>`, `shift_right<>`, and all the others.
+ `proto::or_<>` has a default transform which evaluates the transform of the
+ branch that matched. `proto::and_<>`'s default transform evaluates the
+ transform of the last branch. Even `proto::expr<>`, `proto::if_<>`,
+ `proto::not_<>`, and `proto::_` have no-op default transforms that simply return
+ unmodified the expressions passed to them.
+ ]
 ]
 
 The arity of a binary operator is the maximum of the arity of the left and
-right operands. Proto does not provide a transform that can help us directly,
-but we can easily write our own. This is what it looks like, and we'll describe
-it below:
-
-[binary_max]
-
-This transform will be used as follows:
-`binary_max< binary_expr< _, CalculatorGrammar, CalculatorGrammar > >`.
-First, note that the transform is a template that takes a Grammar as a template
-parameter. It inherits from the Grammar, as all transforms must. Next, we
-define a nested `apply<>` template which calculates the return type. The first
-thing it does is invoke `Grammar`'s transform. Recall that `binary_expr<>`
-has a pass-through transform. Given an expression like
-`expr< T, arg2< A, B > >`, it transforms it to `expr< T, arg2< X, Y > >`, where
-`X` and `Y` are the results of transforming `A` and `B` according to
-`CalculatorGrammar`.
-
-Next, we extract from this transformed binary expression the left and right
-argument types. As the arguments were transformed in the previous step, we
-expect them to already be of the form `mpl::int_<N>`. Then we use `mpl::max<>`
-to find the maximum, and we're done.
-
-The static `call()` member function is needed to complete the transform
-interface. It simply returns a default-constructed object, which will be an
-instantiation of `mpl::int_<>`.
+right operands. We can specify this with the help of `mpl::max<>`, which is a
+so-called meta-function that computes the maximum of two compile-time integers.
+The transform is described below:
+
+ when<
+ binary_expr< _, CalcArity, CalcArity >
+ , mpl::max< CalcArity(_left), CalcArity(_right) >()
+ >
 
-Piecing it all together, the complete `CalculatorGrammar` looks like this:
+The above says to match binary calculator expressions and compute their
+arity by first computing the arity of the left and right children and then
+taking their maximum.
+
+There's a lot going on in the above transform, so let's take it one piece
+at a time, starting with the parts we know. `CalcArity(_left)`
+will calculate the arity of the left child, returning a compile-time integer.
+Likewise for `CalcArity(_right)`. What is new is that these two
+transforms are nested within another: `mpl::max<...>()`. Proto notices that
+`mpl::max<...>` is not callable, so this transform is interpreted as an
+object to construct rather than a function to invoke. Using meta-programming
+tricks, Proto disassembles the `mpl::max<...>` template looking for nested
+Proto transforms to apply. It finds two and applies them, resulting in
+`mpl::max< mpl::int_<X>, mpl::int_<Y> >`.
+
+Having first applied any nested transforms, Proto then looks to see if
+`mpl::max<X, Y>` has a nested `::type` typedef. This is a common convention
+used by meta-functions. In this case, `mpl::max<>::type` is a typedef
+for `mpl::int_< Z >` where `Z` is the maximum of `X` and `Y`. The trailing
+`()` on the transform indicates that the result should be default-constructed,
+so this transform returns `mpl::int_<Z>()`. And we're done.
+
+[note Had `mpl::max<>` not had a nested `::type` typedef, the transform
+would have created and returned a default-constructed `mpl::max<>` object
+instead. That is, the result of substituting nested transforms need not
+of necessity have a nested `::type` typedef, but it is used if it is there.]
 
-[CalculatorArityGrammar]
+Piecing it all together, the complete `CalcArity` looks like this:
 
-We can use our CalculatorGrammar transform to calculate the arity of any
+[CalcArity]
+
+We can use our `CalcArity` transform to calculate the arity of any
 calculator expression:
 
     int i = 0; // not used, dummy state and visitor parameter
 
- std::cout << CalculatorGrammar::call( lit(100) * 200, i, i) << '\n';
- std::cout << CalculatorGrammar::call( (_1 - _1) / _1 * 100, i, i) << '\n';
- std::cout << CalculatorGrammar::call( (_2 - _1) / _2 * 100, i, i) << '\n';
+ std::cout << CalcArity()( lit(100) * 200, i, i) << '\n';
+ std::cout << CalcArity()( (_1 - _1) / _1 * 100, i, i) << '\n';
+ std::cout << CalcArity()( (_2 - _1) / _2 * 100, i, i) << '\n';
 
 This displays the following:
 
@@ -257,67 +299,91 @@
 [section Canned Transforms]
 [/========================]
 
-Some transforms are generally useful, so Proto provides them. They are
-described below. Each is of the form:
-
- boost::proto::transform::``[~transform-name]``< Grammar ``[~\[, additional args ...\]]`` >
+So far, we've seen how to write custom transforms using function types.
+These were implemented in terms of more primitive transforms provided by
+Proto, such as `_arg`, `_left`, and `_right`. This section describes those
+transforms and others in detail.
 
-They each inherit from their `Grammar` parameter; therefore, they themselves
-match the same expressions as `Grammar` does. As transforms, they all have
-nested static `call()` member functions that accept `expr`, `state`, and
-`visitor` parameters, as well as `apply<>` member templates for calculating
-the return type of `call()`. The tables below show what `call()` and `apply<>`
-do for each of the transforms that Proto provides.
+All the transforms defined in this section are of the following form:
 
-[section:arg_c_and_friends [^arg<>], [^arc_c<>], [^left<>] and [^right<>]]
-
- namespace boost { namespace proto { namespace transform
+ struct some_transform : callable
     {
- template<typename Grammar, typename N = mpl::long_<0> >
- struct arg;
+ template<typename Sig>
+ struct result;
 
- template<typename Grammar, long N>
- struct arg_c;
+ template<typename This, typename Expr, typename State, typename Visitor>
+ struct result<This(Expr, State, Visitor)>
+ {
+ typedef ... type;
+ };
+
+ template<typename Expr, typename State, typename Visitor>
+ typename result<void(Expr, State, Visitor)>::type
+ operator()(Expr const &expr, State const &state, Visitor &visitor) const
+ {
+ return ...;
+ }
+ };
+
+So defined, `some_transform` is a transform "in the raw". It can be used
+without needing to explicitly specify any arguments to the transform. These
+are the building blocks from which you can compose larger transforms using
+function types.
 
- template<typename Grammar>
- struct left;
+[section:arg_c_and_friends [^_arg], [^_left], and [^_right]]
 
- template<typename Grammar>
- struct right;
- }}}
+ namespace boost { namespace proto
+ {
+ namespace transform
+ {
+ template<long N>
+ struct arg_c;
+
+ typedef arg_c<0> arg0;
+ typedef arg_c<1> arg1;
+ ...
+ typedef arg_c<9> arg9;
+
+ typedef arg_c<0> arg;
+ typedef arg_c<0> left;
+ typedef arg_c<1> right;
+ }
+
+ typedef transform::arg0 _arg0;
+ typedef transform::arg1 _arg1;
+ ...
+ typedef transform::arg9 _arg9;
+
+ typedef transform::arg _arg;
+ typedef transform::left _left;
+ typedef transform::right _right;
+ }}
 
 These transforms are useful for extracting the ['[^N]]th argument from an
-expression. The `left<Grammar>` transform is equivalent to the
-`arg_c<Grammar, 0>` transform, and the `right<Grammar>` transform is equivalent
-to the `arg_c<Grammar, 1>` transform.
+expression. The `_left` transform is equivalent to the `arg_c<0>` transform,
+and the `_right` transform is equivalent to the `arg_c<1>` transform.
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::arg<Grammar, N>::apply<Expr, State, Visitor>::type`]
- [`proto::result_of::arg<typename Grammar::apply<Expr, State, Visitor>::type, N>::type`]
- ]
- [ [`transform::arg<Grammar, N>::call(expr, state, visitor)`]
- [`proto::arg<N>(Grammar::call(expr, state, visitor))`]
- ]
- [ [`transform::arg_c<Grammar, N>::apply<Expr, State, Visitor>::type`]
- [`proto::result_of::arg_c<typename Grammar::apply<Expr, State, Visitor>::type, N>::type`]
+ [ [`transform::arg_c<N>::result<void(Expr, State, Visitor)>::type`]
+ [`proto::result_of::arg_c<Expr, N>::type`]
     ]
- [ [`transform::arg_c<Grammar, N>::call(expr, state, visitor)`]
- [`proto::arg_c<N>(Grammar::call(expr, state, visitor))`]
+ [ [`transform::arg_c<N>()(expr, state, visitor)`]
+ [`proto::arg_c<N>(expr)`]
     ]
- [ [`transform::left<Grammar>::apply<Expr, State, Visitor>::type`]
- [`proto::result_of::left<typename Grammar::apply<Expr, State, Visitor>::type>::type`]
+ [ [`transform::left::result<void(Expr, State, Visitor)>::type`]
+ [`proto::result_of::left<Expr>::type`]
     ]
- [ [`transform::left<Grammar>::call(expr, state, visitor)`]
- [`proto::left(Grammar::call(expr, state, visitor))`]
+ [ [`transform::left()(expr, state, visitor)`]
+ [`proto::left(expr)`]
     ]
- [ [`transform::right<Grammar>::apply<Expr, State, Visitor>::type`]
- [`proto::result_of::right<typename Grammar::apply<Expr, State, Visitor>::type>::type`]
+ [ [`transform::right::result<void(Expr, State, Visitor)>::type`]
+ [`proto::result_of::right<Expr>::type`]
     ]
- [ [`transform::right<Grammar>::call(expr, state, visitor)`]
- [`proto::right(Grammar::call(expr, state, visitor))`]
+ [ [`transform::right()(expr, state, visitor)`]
+ [`proto::right(expr)`]
     ]
 ]
 
@@ -325,391 +391,649 @@
 
     // Matches an integer terminal and extracts the int.
     struct Int
- : transform::arg< terminal<int> >
+ : when< terminal<int>, _arg >
     {};
 
 [endsect]
 
-[section:identity_and_friends [^identity<>], [^state<>] and [^visitor<>]]
+[section:identity_and_friends [^_expr], [^_state] and [^_visitor]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar>
- struct identity;
-
- template<typename Grammar>
- struct state;
-
- template<typename Grammar>
- struct visitor;
- }}}
-
-The `identity<>`, `state<>` and `visitor<>` transforms merely return the
-`expr`, `state` and `visitor` arguments, respectively.
+ namespace transform
+ {
+ struct expr;
+ struct state;
+ struct visitor;
+ }
+
+ typedef transform::expr _expr;
+ typedef transform::state _state;
+ typedef transform::visitor _visitor;
+ }}
+
+The `expr`, `state` and `visitor` transforms merely return the
+`expr`, `state` and `visitor` arguments, respectively. Proto's
+wildcard pattern, `_`, behaves like `transform::expr` when used
+as a transform.
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::identity<Grammar>::apply<Expr, State, Visitor>::type`]
+ [ [`_::result<void(Expr, State, Visitor)>::type`]
         [`Expr`]
     ]
- [ [`transform::identity<Grammar>::call(expr, state, visitor)`]
- [`expr`]
+ [ [`_()(expr_, state, visitor)`]
+ [`expr_`]
     ]
- [ [`transform::state<Grammar>::apply<Expr, State, Visitor>::type`]
+ [ [`transform::expr::result<void(Expr, State, Visitor)>::type`]
+ [`Expr`]
+ ]
+ [ [`transform::expr()(expr_, state, visitor)`]
+ [`expr_`]
+ ]
+ [ [`transform::state::result<void(Expr, State, Visitor)>::type`]
         [`State`]
     ]
- [ [`transform::state<Grammar>::call(expr, state, visitor)`]
- [`state`]
+ [ [`transform::state()(expr, state_, visitor)`]
+ [`state_`]
     ]
- [ [`transform::visitor<Grammar>::apply<Expr, State, Visitor>::type`]
+ [ [`transform::visitor::result<void(Expr, State, Visitor)>::type`]
         [`Visitor`]
     ]
- [ [`transform::visitor<Grammar>::call(expr, state, visitor)`]
- [`visitor`]
+ [ [`transform::visitor()(expr, state, visitor_)`]
+ [`visitor_`]
     ]
 ]
 
 Example:
 
     // Matches a subscript expression where the left- and right-hand operands
- // match MyGrammar, returns the expression unmodified; that is, without
- // applying MyGrammar's transforms to the left and right operands, as would
- // happen by default.
+ // match MyGrammar, returns the expression unmodified
     struct Subscript
- : transform::identity< subscript<MyGrammar, MyGrammar> >
+ : when< subscript<MyGrammar, MyGrammar>, _expr >
     {};
 
 [endsect]
 
-[section:always [^always<>]]
+[section:if [^if_<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar, typename Always, typename Factory = ``[~default-factory]``>
- struct always;
- }}}
+ namespace control
+ {
+ template<
+ typename If
+ , typename Then = _
+ , typename Else = not_<_>
+ >
+ struct if_;
+ }
 
-The `always<>` transform always returns a certain type. By default, its
-`call()` member returns a default constructed object of that type, but you can
-configure this with the optional `Factory` parameter.
+ using control::if_;
+ }}
+
+We've already seen the _if_ template in the context of grammars, but
+_if_ can also be used as a transform. It can be used to conditionally
+apply one transform or another based on some condition. The three
+template parameters are Proto transforms. The result of applying the
+first transform should be a compile-time Boolean. If it is true, then
+the first transform is applied. The second is applied otherwise.
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::always<Grammar, Type, Factory>::apply<Expr, State, Visitor>::type`]
- [`Type`]
+ [ [``control::if_<If, Then, Else>
+ ::result<void(Expr, State, Visitor)>::type``]
+ [``typedef
+ mpl::if_<
+ when<_, If>::result<void(Expr, State, Visitor)>::type
+ , when<_, Then>
+ , when<_, Else>
+ >::type
+branch;
+
+typedef branch::result<void(Expr, State, Visitor)>::type type;``]
     ]
- [ [`transform::always<Grammar, Type, Factory>::call(expr, state, visitor)`]
- [`Factory()()`]
+ [ [`control::if_<If, Then, Else>()(expr, state, visitor)`]
+ [``typedef ... branch; // Same as above
+branch()(expr, state, visitor);``]
     ]
 ]
 
 Example:
 
- // Match a placeholder terminal and return the arity of the
- // placeholder.
- struct PlaceholderArity
- : transform::always< terminal<placeholder1>, mpl::int_<1> >
+ // Match a terminal. If size of the terminal
+ // argument is less than or equal to 4, make
+ // a new terminal that stores the argument by
+ // value. Otherwise, store the argument by
+ // reference.
+ struct ByValOrRef
+ : when<
+ terminal<_>
+ , if_<
+ mpl::less_equal<
+ mpl::sizeof_<_arg>
+ , mpl::size_t<4>
+ >()
+ , _make_terminal(_arg)
+ , _make_terminal(_ref(_arg))
+ >
+ >
     {};
 
 [endsect]
 
-[section:applyn [^apply1<>], [^apply2<>] and [^apply3<>]]
+[section:and_or_not [^and_<>], [^or_<>], and [^not_<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar, typename Lambda, typename Factory = ``[~default-factory]``>
- struct apply1;
-
- template<typename Grammar, typename Lambda, typename Factory = ``[~default-factory]``>
- struct apply2;
-
- template<typename Grammar, typename Lambda, typename Factory = ``[~default-factory]``>
- struct apply3;
- }}}
+ namespace control
+ {
+ template<typename... T>
+ struct and_;
+
+ template<typename... T>
+ struct or_;
+
+ template<typename T>
+ struct not_;
+ }
+
+ using control::and_;
+ using control::or_;
+ using control::not_;
+ }}
+
+As with _if_, the grammar elements _and_, _or_, and _not_ can
+also be used as transforms. At a high level, here is what the
+transforms do:
+
+[variablelist
+[ [`and_<T0,T1,...,Tn>`]
+ [Apply the transform `Tn`.] ]
+[ [`or_<T0,T1,...,Tn>`]
+ [Apply the transform `Tx` where `x` is the lowest number
+ such that `matches<Expr,Tx>::value` is `true`.] ]
+[ [`not_<T>`] [Return the current expression unchanged.] ]
+]
 
-The `apply1<>` transform invokes an MPL lambda expression with the Proto
-expression as the argument, `apply2<>` uses the expression and the state
-as arguments and `apply3<>` uses the expression, state and visitor.
+The following table specifies the behaviors described above more
+precisely.
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::apply1<Grammar, Lambda, Factory>::apply<Expr, State, Visitor>::type`]
- [`mpl::apply1<Lambda, typename Grammar::apply<Expr, State, Visitor>::type>::type`]
- ]
- [ [`transform::apply1<Grammar, Lambda, Factory>::call(expr, state, visitor)`]
- [`Factory()(Grammar::call(expr, state, visitor))`]
- ]
- [ [`transform::apply2<Grammar, Lambda, Factory>::apply<Expr, State, Visitor>::type`]
- [`mpl::apply2<Lambda, typename Grammar::apply<Expr, State, Visitor>::type, State>::type`]
+ [ [``control::and_<A,B,C>
+ ::result<void(Expr, State, Visitor)>::type``]
+ [`C::result<void(Expr, State, Visitor)>::type`]
+ ]
+ [ [`control::and_<A,B,C>()(expr, state, visitor)`]
+ [`C()(expr, state, visitor)`]
+ ]
+ [ [``control::or_<A,B,C>
+ ::result<void(Expr, State, Visitor)>::type``]
+ [``typedef mpl::if_<
+ matches<Expr, A>
+ , A
+ , mpl::if_<
+ matches<Expr, B>
+ , B
+ , C
+ >::type
+>::type which;
+
+typedef which::result<void(Expr, State, Visitor)>::type type;``]
     ]
- [ [`transform::apply2<Grammar, Lambda, Factory>::call(expr, state, visitor)`]
- [`Factory()(Grammar::call(expr, state, visitor), state)`]
+ [ [`control::or_<A,B,C>()(expr, state, visitor)`]
+ [``typedef ... which; // Same as above
+which()(expr, state, visitor);``]
     ]
- [ [`transform::apply3<Grammar, Lambda, Factory>::apply<Expr, State, Visitor>::type`]
- [`mpl::apply3<Lambda, typename Grammar::apply<Expr, State, Visitor>::type, State, Visitor>::type`]
+ [ [``control::not_<A>
+ ::result<void(Expr, State, Visitor)>::type``]
+ [`Expr`]
     ]
- [ [`transform::apply3<Grammar, Lambda, Factory>::call(expr, state, visitor)`]
- [`Factory()(Grammar::call(expr, state, visitor), state, visitor)`]
+ [ [`control::not_<A>()(expr, state, visitor)`]
+ [`expr`]
     ]
 ]
 
-The `call()` member functions of Proto's `applyN<>` transforms simply return a
-default constructed object of the appropriate type by default. If you want a
-different behavior, you can specify a `Factory` type as the third template
-parameter.
-
 Example:
 
- // Another way to implement a transform that calculates the arity of a
- // binary Calculator expression. This code is functionally equivalent to
- // the binary_max<> transform defined above. The mpl::max<...> type below
- // is an MPL Placeholder expression (note the use of mpl::_) that
- // mpl::apply1<> knows how to evaluate. The effect of the
- // BinaryCalculatorArity grammar is to match binary Calculator expressions,
- // evaluate the arity of the left and right sub-expressions and return the
- // maximum of the two.
- struct BinaryCalculatorArity
- : transform::apply1<
- binary_expr<_, CalculatorArity, CalculatorArity>
- , mpl::max<result_of::left<mpl::_>, result_of::right<mpl::_> >
+ // A transform that matches any expression and
+ // unwraps any reference_wrapped terminals it
+ // finds.
+ struct UnwrapReference
+ : or_<
+ // Pass through terminals that are not
+ // reference_wrappers unchanged:
+ and_<
+ terminal<_>
+ , not_<if_<is_reference_wrapper<_arg>()> >
+ >
+ // For other terminals (i.e., reference_wrapper
+ // terminals), unwrap the reference:
+ , when<
+ terminal<_>
+ , terminal<unwrap_reference<_arg> >(_arg)
+ >
+ // Otherwise, match non-terminals and
+ // recurse.
+ , when<
+ nary_expr<_, vararg<UnwrapReference> >
+ >
+ >
+ {};
+
+The above transform serves to illustrate the behaviors of the _and_,
+_or_, and _not_ transforms, but it is admittedly contrived. The
+transform is more easily written as follows:
+
+ // Functionally identical to the UnwrapReference
+ // transform above:
+ struct UnwrapReference
+ : or_<
+ when<
+ terminal<reference_wrapper<_> >
+ , terminal<unwrap_reference<_arg> >(_arg)
+ >
+ , terminal<_>
+ , nary_expr<_, vararg<UnwrapReference> >
>
     {};
 
 [endsect]
 
-[section:branch [^branch<>]]
+[section:call [^call<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar, typename BranchState>
- struct branch;
- }}}
+ namespace transform
+ {
+ template<typename Fun>
+ struct call;
+ }
+
+ using transform::call;
+ }}
+
+The `call<>` transform is used to invoke callable transforms and evaluate
+their arguments. When you use a callable transform as in
+`when< posit<_>, Callable(_arg) >`, the `call<>` transform is used behind
+the scenes to evaluate `Callable(_arg)`. In fact, for any callable
+transform, the following short- and long-forms are equivalent:
+
+[table
+ [ [Short From]
+ [Long Form] ]
+ [ [ `when< Grammar, Callable(Tran1, Tran2...) >` ]
+ [ `when< Grammar, call< Callable(Tran1, Tran2...) > >` ] ]
+]
+
+You might decide to use `call<>` explicitly in cases when Proto
+can't figure out that a given transform is callable. (See the discussion on
+the `is_callable<>` trait TODO LINK.) Rather than specialize
+`proto::is_callable<>` for your transform, you can simply wrap its use in
+`call<>`, instead.
+
+[tip For users of legacy compilers like MSVC 7.1, `call<>` is useful to work
+around compiler bugs. Doubly-nested transforms such as `Callable(_arg1(_arg2))`
+cause older compilers problems, but the equivalent `Callable(call<_arg1(_arg2)>)`
+solves the problem.]
 
-The `branch<>` transform applies `Grammar`'s transform with a new `state`
-parameter. This is useful when you want to compile a branch of the expression
-tree independently of the rest; for example, when you want to fold everything
-under a certain child node into a list.
+The semantics of `call<>` are described in the table below:
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::branch<Grammar, BranchState>::apply<Expr, State, Visitor>::type`]
- [`typename Grammar::template apply<Expr, BranchState, Visitor>::type`]
- ]
- [ [`transform::branch<Grammar, BranchState>::call(expr, state, visitor)`]
- [`Grammar::call(expr, BranchState(), visitor)`]
+ [ [`call<Fun(A0, A1, ... AN)>::result<void(Expr, State, Visitor)>::type`]
+ [``boost::result_of<Fun(
+ when<_, A0>::result<void(Expr, State, Visitor)>::type
+ , when<_, A1>::result<void(Expr, State, Visitor)>::type
+ ...
+ , when<_, AN>::result<void(Expr, State, Visitor)>::type
+)>::type``]
+ ]
+ [ [`call<Fun(A0, A1, ... AN)>()(expr, state, visitor)`]
+ [``Fun()(
+ when<_, A0>()(expr, state, visitor)
+ , when<_, A1>()(expr, state, visitor)
+ ...
+ , when<_, AN>()(expr, state, visitor)
+)``]
     ]
 ]
 
+The target of a callable transform can be any function object that implements
+the Boost.ResultOf protocol. Function objects that take up to
+`BOOST_PROTO_MAX_ARITY` are handled.
+
+For callable transforms that take 0, 1, or 2 arguments, special handling is done
+to see if the transform actually expects 3 arguments, as Proto's primitive
+transforms do. (This can be detected with meta-programming tricks.) So, even
+though a transform like `_arg1` requires three parameters: expression,
+state and visitor; it can be "called" with just one, like `_arg1(_arg2)`. Proto
+treats this as if were `call<_arg1(_arg2, _state, _visitor)>`.
+
+If no transform arguments are specified at all, as in `call<_arg1>`, this is
+the same as `_arg1`. For this reason, `call<_arg1>(_arg2)` is the same as
+`call<_arg1(_arg2)>`.
+
 Example:
 
-See the [link reverse_fold_example [^reverse_fold<>] example].
+[LazyMakePair2]
 
 [endsect]
 
-[section:compose [^compose<>]]
+[section:make [^make<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar1, typename Grammar2>
- struct compose;
- }}}
+ namespace transform
+ {
+ template<typename Fun>
+ struct make;
+ }
+
+ using transform::make;
+ }}
+
+The `make<>` transform is used to construct objects and evaluate
+their constructor arguments. When you use an object transform as in
+`when< posit<_>, Object(_arg) >`, the `make<>` transform is used behind
+the scenes to evaluate `Object(_arg)`. In fact, for any object
+transform, the following short- and long-forms are equivalent:
 
-The `compose<>` transform applies two transformations in succession. It
-inherits from `Grammar1`, so it matches whatever `Grammar1` matches. The
-result of applying `Grammar1`'s transform is passed to `Grammar2`'s transform,
-along with the `state` and `visitor` parameters. It is assumed that the
-result of applying `Grammar1`'s transform is an expression that matches
-the grammar specified by `Grammar2`.
+[table
+ [ [Short From]
+ [Long Form] ]
+ [ [ `when< Grammar, Object(Tran1, Tran2...) >` ]
+ [ `when< Grammar, make< Object(Tran1, Tran2...) > >` ] ]
+]
 
-The `compose<>` transform is useful in situations where you would like to
-preprocess a node in the expression tree before forwarding it on for further
-processing.
+You might decide to use `make<>` to explicitly differentiate object
+transforms from callable transforms. (See `call<>`.)
+
+[tip For users of legacy compilers like MSVC 7.1, `make<>` is useful to work
+around compiler bugs. Doubly-nested transforms such as `Object1(Object2(_arg))`
+cause older compilers problems, but the equivalent `Object1(make<Object2(_arg)>)`
+solves the problem.]
+
+The `make<>` transform checks to see if the resulting object type is a template.
+If it is, the template type is disassembled to find nested transforms. Proto
+considers the following types to represent transforms:
+
+[def __type__ [~type]]
+[def __X__ X\']
+[def __X0__ X0\']
+[def __X1__ X1\']
+
+* Function types
+* Function pointer types
+* Types for which `proto::is_callable<__type__>::value` is `true`
+
+When an object transform with a template type such as
+`Object<X0,X1,...>(Args...)` is evaluated with a given
+`Expr`, `State`, and `Visitor`, the result type is
+`make_<Object<X0,X1,...>, Expr, State, Visitor>::type` which is
+defined as follows. For each `X` in `X0,X1,...`, do:
+
+* If `X` is a template like `Object2<Y0,Y1,...>`, then let `__X__`
+ be `make_<Object2<Y0,Y1,...>, Expr, State, Visitor>::type`
+ (which evaluates this procedure recursively). Note whether any
+ substitutions took place during this operation.
+* Otherwise, if `X` is a transform, then let `__X__` be
+ `when<_, X>::result<void(Expr, State, Visitor)>::type`.
+ Note that a substitution took place.
+* Otherwise, let `__X__` be `X`, and note that no substitution
+ took place.
+* If any substitutions took place in any of the above steps and
+ `Object<__X0__,__X1__,...>` has a nested `::type` typedef, the
+ result type is `Object<__X0__,__X1__,...>::type`.
+* Otherwise, the result type is `Object<__X0__,__X1__,...>`.
+
+Note that `when<>` is implemented in terms of `call<>` and `make<>`,
+so the above procedure is evaluated recursively.
+
+Given the above description of the `make_<>` helper, the semantics
+of the `make<>` transform is described as follows:
+
+[def __AN__ A[~N]]
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::compose<Grammar1, Grammar2>::apply<Expr, State, Visitor>::type`]
- [``typename Grammar2::template apply<
- typename Grammar1::template apply<Expr, State, Visitor>::type
- , State
- , Visitor
->::type``]
+ [ [`make<Object(A0, A1, ... __AN__)>::result<void(Expr, State, Visitor)>::type`]
+ [`make_<Object, Expr, State, Visitor>::type`]
     ]
- [ [`transform::compose<Grammar1, Grammar2>::call(expr, state, visitor)`]
- [``Grammar2::call(
- Grammar1::call(expr, state, visitor), state, visitor)``]
+ [ [`make<Object(A0, A1, ... __AN__)>()(expr, state, visitor)`]
+ [``make_<Object, Expr, State, Visitor>::type(
+ when<_, A0>()(expr, state, visitor)
+ , when<_, A1>()(expr, state, visitor)
+ ...
+ , when<_, __AN__>()(expr, state, visitor)
+)``]
     ]
 ]
 
+Objects with constructors that take up to `BOOST_PROTO_MAX_ARITY` are handled.
+Some types are so-called /aggregates/ that do not have constructors; rather,
+they use /aggregate initialization/. For these types, you can specialize
+`proto::is_aggregate<>` and Proto will use a brace initializer list to
+initialize the object rather than a constructor. Proto knows that `proto::expr<>`
+is such an aggregate, so if you use object transforms to "construct" a
+new node in an expression tree, the right thing happens.
+
+If no transform arguments are specified at all, as in `make<Object>`, this is
+the same as `make<Object()>`.
+
 Example:
 
- // A fragment of a Calculator grammar which uses compose<> to process
- // a node in the expression tree after it has been preprocessed by
- // an arg<> transform.
- struct Calculator
- : or_<
- // ...
- transform::compose<
- // Match anything of the form +X, and
- // extract X, discarding the +.
- transform::arg<posit<_> >
- // Now invoke the Calculator transform on X
- , Calculator
- >
- >
- {};
+[LazyMakePair]
 
 [endsect]
 
-[section:list [^list<>]]
+[section:bind [^bind<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar>
- struct list;
- }}}
+ namespace transform
+ {
+ template<typename Fun>
+ struct bind;
+ }
+
+ using transform::bind;
+ }}
+
+Sometimes you would like a higher-order transform that returns another
+transform to be evaluated. This can happen when you have a transform
+whose behavior needs to be parameterized on the current state of the
+transformation. For these situations, you can use the `bind<>` transform,
+which is essentially an invocation of the `make<>` transform (to evaluate
+any nested transforms and create the higher-order transform) followed
+by an invocation of `call<>` (to actually execute the higher-order
+transform).
 
-`list<>` is a simple transform that builds a fusion cons list, using the
-transformed expression as the list's head, and the state as the list's tail.
+The behavior of `bind<>` is easily specified in terms of `make<>` and
+`call<>`.
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::list<Grammar>::apply<Expr, State, Visitor>::type`]
- [``fusion::cons<
- typename Grammar::template apply<Expr, State, Visitor>::type
- , State
->``]
- ]
- [ [`transform::list<Grammar>::call(expr, state, visitor)`]
- [``fusion::cons<
- typename Grammar::template apply<Expr, State, Visitor>::type
- , State
->(Grammar::call(expr, state, visitor), state)``]
+ [ [`bind<Object(A0, A1, ... __AN__)>::result<void(Expr, State, Visitor)>::type`]
+ [``call<
+ make<Object>::result<void(Expr, State, Visitor)>::type(A0, A1, ... __AN__)
+>::result<void(Expr, State, Visitor)>::type``]
+ ]
+ [ [`bind<Object(A0, A1, ... __AN__)>()(expr, state, visitor)`]
+ [``call<
+ make<Object>::result<void(Expr, State, Visitor)>::type(A0, A1, ... __AN__)
+>()(expr, state, visitor)``]
     ]
 ]
 
-Example:
+If no transform arguments are specified at all, as in `bind<Object>`, this is
+the same as `bind<Object(_expr, _state, _visitor)>`.
+
+[endsect]
 
-See the [link reverse_fold_example [^reverse_fold<>] example].
+[section:when [^when<>]]
+
+ namespace boost { namespace proto
+ {
+ namespace transform
+ {
+ template<typename Grammar, typename Transform = Grammar>
+ struct when;
+ }
+
+ using transform::when;
+ }}
+
+`when<>` associates a grammar rule with a transform. It can be used
+in a grammar in place of the rule; that is, it behaves as a grammar
+rule. Expression tree nodes that match the grammar rule are processed
+with the associated transform; that it, `when<>` also behaves like
+a transform.
+
+When no transform is specified, as with `when< posit<Calculator> >`,
+the grammar is treated as the transform. Every grammar element has
+a default transform. For most, such as `posit<>`, the default transform
+is `pass_through<>`.
+
+The `when<>` transform is easily specified in terms of `call<>`,
+`make<>`, and the `is_callable<>` trait.
+
+[table
+ [ [Expression]
+ [Returns]
+ ]
+ [ [`when<Grammar, R(A0, A1, ... __AN__)>::result<void(Expr, State, Visitor)>::type`]
+ [``mpl::if_<
+ is_callable<R>
+ , call<R(A0, A1, ... __AN__)>
+ , make<R(A0, A1, ... __AN__)>
+>::type::result<void(Expr, State, Visitor)>::type``]
+ ]
+ [ [`when<Grammar, R(A0, A1, ... __AN__)>()(expr, state, visitor)`]
+ [``mpl::if_<
+ is_callable<R>
+ , call<R(A0, A1, ... __AN__)>
+ , make<R(A0, A1, ... __AN__)>
+>::type()(expr, state, visitor)``]
+ ]
+]
+
+If no transform arguments are specified, as in `when<Grammar, _arg>`, the
+transform is assumed to be callable; that is, it is equivalent to
+`when<Grammar, call<_arg> >`.
 
 [endsect]
 
 [section:fold [^fold<>] and [^reverse_fold<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar, typename State = void>
- struct fold;
-
- template<typename Grammar, typename State = void>
- struct reverse_fold;
- }}}
+ namespace transform
+ {
+ template<typename Sequence, typename State0, typename Fun>
+ struct fold;
+
+ template<typename Sequence, typename State0, typename Fun>
+ struct reverse_fold;
+ }
+
+ using transform::fold;
+ using transform::reverse_fold;
+ }}
 
 The transforms `fold<>` and `reverse_fold<>` are akin to the
-`std::accumulate()` algorithm in the STL. They iterate over some sequence and
-accumulate some state at each element. For Proto's `fold<>` and
-`reverse_fold<>`, the "elements" of the sequence are actually pairs consisting
-of the corresponding child grammars and expressions. The state is accumulated
-by applying the child grammar's transform to the corresponding child
-expression. The result of one transform is used as the state of the next
-transform, such that the transforms nest like Russian dolls. The `fold<>`
+`std::accumulate()` algorithm in the STL, or the `fold()` algorithm in
+Boost.Fusion. They iterate over some sequence and
+accumulate some state at each element. The `fold<>`
 transform iterates over the children in order, starting with the 0th child.
 The `reverse_fold<>` transform does it in reverse order, starting with the Nth
 child. (Note that for building things like cons lists, you'll often want to
 built it back-to-front with `reverse_fold<>`.)
 
-[def __arg_N__ proto_arg[~N]]
-[def __arg_N_sub_1__ proto_arg[~N-1]]
+Both `fold<>` and `reverse_fold<>` are implemented in terms of `fusion::fold<>`.
+The three template parameters must each be Proto transforms. The have the following
+meaning:
+
+* `Sequence`: A Proto transform that returns a Fusion sequence.
+* `State`: A Proto transform that returns the initial state of the fold.
+* `Fun`: A Proto transform representing the operation to perform at each
+ iteration of the fold algorithm.
+
+Often, the `Sequence` parameter is `proto::_`, which returns the current node
+in the Proto expression tree. Tree nodes are valid Fusion sequences, where
+the children are the elements of the sequence.
+
+The semantics of the `fold<>` and `reverse_fold<>` transforms can both be
+understood in terms of a helper struct, `as_callable<>`, which binds the
+visitor and the `Fun` transform into a binary function object for use by
+`fusion::fold()`. `as_callable<>` has the following behavior:
 
 [table
     [ [Expression]
         [Returns]
     ]
- [ [`transform::fold<Grammar>::apply<Expr, State, Visitor>::type`]
- [``typename Grammar::__arg_N__::apply<
- typename Expr::__arg_N__::proto_base_expr
- , typename Grammar::__arg_N_sub_1__::apply<
- typename Expr::__arg_N_sub_1__::proto_base_expr
- , // ...
- typename Grammar::proto_arg0::apply<
- typename Expr::proto_arg0::proto_base_expr, State, Visitor>::type
- // ...
- , Visitor
- >::type
- , Visitor
+ [ [`as_callable<Fun, Visitor>::result<void(Expr, State)>::type`]
+ [`when<_, Fun>::result<void(Expr, State, Visitor)>::type`]
+ ]
+ [ [`as_callable<Fun, Visitor>(visitor)(expr, state)`]
+ [`when<_, Fun>()(expr, state, visitor)`]
+ ]
+]
+
+With the above `as_callable<>` adaptor, `fold<>` and `reverse_fold<>`
+can be easily implemented in terms of `fusion::fold<>`:
+
+[table
+ [ [Expression]
+ [Returns]
+ ]
+ [ [`fold<Sequence, State0, Fun>::result<void(Expr, State, Visitor)>::type`]
+ [``fusion::result_of::fold<
+ when<_, Sequence>::result<void(Expr, State, Visitor)>::type
+ , when<_, State0>::result<void(Expr, State, Visitor)>::type
+ , as_callable<Fun, Visitor>
>::type``]
     ]
- [ [`transform::fold<Grammar>::call(expr, state, visitor)`]
- [``Grammar::__arg_N__::call(
- proto::arg_c<N>(expr)
- , Grammar::__arg_N_sub_1__::call(
- proto::arg_c<N-1>(expr)
- , // ...
- Grammar::proto_arg0::call(
- proto::arg_c<0>(expr), state, visitor)
- // ...
- , visitor
- )
- , visitor
+ [ [`fold<Sequence, State0, Fun>()(expr, state, visitor)`]
+ [``fusion::fold(
+ when<_, Sequence>()(expr, state, visitor)
+ , when<_, State0>()(expr, state, visitor)
+ , as_callable<Fun, Visitor>(visitor)
 )``]
     ]
- [ [`transform::reverse_fold<Grammar>::apply<Expr, State, Visitor>::type`]
- [``typename Grammar::proto_arg0::apply<
- typename Expr::proto_arg0::proto_base_expr
- , typename Grammar::proto_arg1::apply<
- typename Expr::proto_arg1::proto_base_expr
- , // ...
- typename Grammar::__arg_N__::apply<
- typename Expr::__arg_N__::proto_base_expr, State, Visitor>::type
- // ...
- , Visitor
+ [ [`reverse_fold<Sequence, State0, Fun>::result<void(Expr, State, Visitor)>::type`]
+ [``fusion::result_of::fold<
+ fusion::result_of::reverse<
+ when<_, Sequence>::result<void(Expr, State, Visitor)>::type
>::type
- , Visitor
+ , when<_, State0>::result<void(Expr, State, Visitor)>::type
+ , as_callable<Fun, Visitor>
>::type``]
     ]
- [ [`transform::reverse_fold<Grammar>::call(expr, state, visitor)`]
- [``Grammar::proto_arg0::call(
- proto::arg_c<0>(expr)
- , Grammar::proto_arg1::call(
- proto::arg_c<1>(expr)
- , // ...
- Grammar::__arg_N__::call(
- proto::arg_c<N>(expr), state, visitor)
- // ...
- , visitor
+ [ [`reverse_fold<Sequence, State0, Fun>()(expr, state, visitor)`]
+ [``fusion::fold(
+ fusion::reverse(
+ when<_, Sequence>()(expr, state, visitor)
     )
- , visitor
+ , when<_, State0>()(expr, state, visitor)
+ , as_callable<Fun, Visitor>(visitor)
 )``]
     ]
 ]
 
-Both the `fold<>` and `reverse_fold<>` transforms take an optional `State`
-template parameter. For non-`void` `State` parameters, the following
-equivalances hold:
-
-[table fold<> and reverse_fold<> Equivalencies
- [[Short-Cut Grammar] [Equivalent Grammar]]
- [[`transform::fold<Grammar, State>`] [``transform::branch<
- transform::fold<Grammar>
- , State
->``]]
- [[`transform::reverse_fold<Grammar, State>`][``transform::branch<
- transform::reverse_fold<Grammar>
- , State
->``]]
-]
-
 [#reverse_fold_example]Example:
 
 [AsArgList]
@@ -718,164 +1042,117 @@
 
 [section:fold_tree [^fold_tree<>] and [^reverse_fold_tree<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Tag, typename Grammar, typename State = void>
- struct fold_tree;
-
- template<typename Tag, typename Grammar, typename State = void>
- struct reverse_fold_tree;
- }}}
+ namespace transform
+ {
+ template<typename Sequence, typename State0, typename Fun>
+ struct fold_tree;
+
+ template<typename Sequence, typename State0, typename Fun>
+ struct reverse_fold_tree;
+ }
+
+ using transform::fold;
+ using transform::reverse_fold;
+ }}
 
 The `fold_tree<>` and `reverse_fold_tree<>` transforms recursively apply the
 `fold<>` and `reverse_fold<>` transforms to sub-trees that all share a common
-`Tag` type. This is useful for flattening trees into lists; for example, you
+tag type. This is useful for flattening trees into lists; for example, you
 might use `reverse_fold_tree<>` to flatten an expression tree like `a | b | c`
 into a Fusion list like `cons(a, cons(b, cons(c)))`.
 
 The `fold_tree<>` and `reverse_fold_tree<>` transforms are unlike the other
 transforms that Proto provides in that they operate on entire sub-trees rather
-than just single nodes within the tree. As a result, their interface is
-different. The `Tag` parameter is the type of the operator tag that behaves
-like a separator. The `Grammar` parameter represents that grammar that the
-separated sub-expressions must match, and the transform that will be applied
-to each. The optional `State` parameter is the initial state of the transform.
+than just single nodes within the tree.
 
 These are higher-level transforms, implemented in terms of the `fold<>`
-transform. They are probably best understood in terms of their definition,
-which is fairly small.
+and `reverse_fold<>` transforms and helper structs `fold_tree_<>` and
+`reverse_fold_tree_<>`, one of which is shown below:
 
- namespace detail
- {
- // fold_tree_ either recurses into the expression, if its Tag
- // matches, or else ends the recursion by matching Grammar and
- // applying its transform.
- template<typename Tag, typename Grammar>
- struct fold_tree_
- : or_<
- transform::fold<
- nary_expr<Tag, vararg<fold_tree_<Tag, Grammar> > >
- >
- , Grammar
- >
- {};
- }
-
- template<typename Tag, typename Grammar, typename State = void>
- struct fold_tree
- : transform::fold<
- nary_expr<Tag, vararg<detail::fold_tree_<Tag, Grammar> > >
- , State
+ // fold_tree_ either recurses into the expression, if its Grammar
+ // matches, or else ends the recursion by matching Grammar and
+ // applying its transform.
+ template<typename Grammar, typename Fun>
+ struct fold_tree_
+ : or_<
+ when<Grammar, fold<_, _state, fold_tree_<Grammar, Fun> > >
+ , when<_, Fun>
>
     {};
+
+The `reverse_fold_tree_<>` helper is specified similarly, only with
+`reverse_fold<>` instead of `fold<>`. With these two helpers, we can
+specify the behavior of `fold_tree<>` and `reverse_fold_tree<>` as
+follows:
 
-The `reverse_fold_tree<>` transform is specified similarly, only with
-`reverse_fold<>` instead of `fold<>`.
-
-Example:
-
-[FoldTreeToList]
-
-[endsect]
-
-[section:construct [^construct<>]]
-
- namespace boost { namespace proto { namespace transform
- {
- template<typename Grammar, typename Constructor>
- struct construct;
- }}}
-
-The `construct<>` transform is a flexible tool for transforming expressions
-into other types of objects. With it, you can specify both the type of the
-object to construct as well as what parameters to pass to its constructor. A
-typical usage of the `construct<>` transform is like this:
-
- transform::construct<
- terminal<float>
- , terminal<double>::type(transform::arg<_>)
+[table
+ [ [Expression]
+ [Returns]
+ ]
+ [ [``fold_tree<Sequence, State0, Fun>
+ ::result<void(Expr, State, Visitor)>::type``]
+ [``fold<
+ Sequence
+ , State0
+ , fold_tree_<
+ nary_expr<Expr::proto_tag, vararg<_> >
+ , Fun
>
-
-The first template parameter is the grammar to match; in this case, terminals
-of type `float`. The second template parameter might look a little strange. It
-is actually a function type, but here we're using it to describe what object to
-construct and how to initialize it. In this case, we will be constructing a
-`double` terminal, using the argument from the `float` terminal. This transform
-effectively promotes a `float` to a `double`.
-
-The `Constructor` template parameter is a function type of the following form:
-
- ResultType(Transform1, Transform2, ...)
-
-where `Transform1`, `Transform2`, etc, are Proto transforms. They specify what
-arguments should be used to construct the `ResultType` object. The way it works
-is as follows. Consider the transform `transform::construct<G, R(T)>`, and an
-expression object `e` of type `E` that matches `G`. Then the result will be an
-object of type `R` constructed like this:
-
- E2 e2 = G::call(e, s, v);
- R(T::call(e2, s, v));
-
-where `s` and `v` are some state and visitor parameters, and `E2` is the return
-type of `G::call(e,s,v)`. Note that `G`'s transform is applied first, followed
-by `T`'s transform.
-
-The result type itself may be specified in terms of Proto transforms. In that
-case, the return type is the result of applying the transforms and substituting
-the transforms with the results. Consider the following code that matches an
-invocation of a lazy `make_pair_` function, and actually returns a
-`std::pair<>` of the correct type.
-
-[LazyMakePair]
-
-Notice that the result type, `std::pair<...>`, is specified in terms of Proto
-transforms. Notice also that Proto transforms are used to specify how to
-construct the `std::pair<>` object. We can now use the `MakePair` transform to
-convert a lazy `make_pair_()` function invocation into an actual `std::pair<>`:
-
-[LazyMakePairTest]
-
-The above code would display the following:
-
-[pre
-1
-3.14
+>::result<void(Expr, State, Visitor)>::type``]
+ ]
+ [ [`fold_tree<Sequence, State0, Fun>()(expr, state, visitor)`]
+ [``fold<
+ Sequence
+ , State0
+ , fold_tree_<
+ nary_expr<Expr::proto_tag, vararg<_> >
+ , Fun
+ >
+>()(expr, state, visitor)``]
+ ]
+ [ [``reverse_fold_tree<Sequence, State0, Fun>
+ ::result<void(Expr, State, Visitor)>::type``]
+ [``reverse_fold<
+ Sequence
+ , State0
+ , reverse_fold_tree_<
+ nary_expr<Expr::proto_tag, vararg<_> >
+ , Fun
+ >
+>::result<void(Expr, State, Visitor)>::type``]
+ ]
+ [ [`reverse_fold_tree<Sequence, State0, Fun>()(expr, state, visitor)`]
+ [``reverse_fold<
+ Sequence
+ , State0
+ , reverse_fold_tree_<
+ nary_expr<Expr::proto_tag, vararg<_> >
+ , Fun
+ >
+>()(expr, state, visitor)``]
+ ]
 ]
 
-When building the result type, if the result of applying a Proto transform is a
-type that has a nested `::type` member typedef, then that type is used instead.
-For instance, here is a transform that matches an integer and negates it lazily
-by wrapping it in a `negate<>` node.
-
-[NegateInt]
-
-The return type is `negate<_>`, but what is actually constructed is
-`negate<terminal<int>::type>::type`. This behavior should seem familiar if you
-have ever used MPL Placeholder expressions.
-
-The `construct<>` transform gives you a simple and convenient syntax for
-creating temporary sub-objects. In the `Constructor` expression
-`ResultType(Transform1, Transform2)`, if the type of `Transform1` is a function
-type, then it is converted into the transform `construct<_, Transform1>`. The
-following example demonstrates how to match an integer, promote it to a long
-integer, and lazily square it.
-
-[SquareAndPromoteInt]
+Example:
 
-The "arguments" to the constructor are `terminal<long>::type(transform::arg<_>)`,
-which is short-cut syntax for a nested `construct<>` transform. [footnote The
-short-cut syntax for nested constructors does not work on MSVC due to compiler
-bugs.]
+[FoldTreeToList]
 
 [endsect]
 
 [section:pass_through [^pass_through<>]]
 
- namespace boost { namespace proto { namespace transform
+ namespace boost { namespace proto
     {
- template<typename Grammar>
- struct pass_through;
- }}}
+ namespace transform
+ {
+ template<typename Grammar>
+ struct pass_through;
+ }
+
+ using transform::pass_through;
+ }}
 
 The `pass_through<>` transform iterates over the pairs of
 children in the grammar and the expression, applying the child grammar's
@@ -895,22 +1172,30 @@
     [ [Expression]
         [Returns]
     ]
- [ [`transform::pass_through<Grammar>::apply<Expr, State, Visitor>::type`]
+ [ [``transform::pass_through<Grammar>
+ ::result<void(Expr, State, Visitor)>::type``]
         [``typename nary_expr<
- typename Expr::proto_tag
- , typename Grammar::proto_arg0::apply<typename Expr::proto_arg0::proto_base_expr, State, Visitor>::type
- , typename Grammar::proto_arg1::apply<typename Expr::proto_arg1::proto_base_expr, State, Visitor>::type
+ Expr::proto_tag
+ , result_of::arg_c<Grammar, 0>::type::result<
+ void(result_of::arg_c<Expr, 0>::type, State, Visitor)>::type
+ , result_of::arg_c<Grammar, 1>::type::result<
+ void(result_of::arg_c<Expr, 1>::type, State, Visitor)>::type
     // ...
- , typename Grammar::__arg_N__::apply<typename Expr::__arg_N__::proto_base_expr, State, Visitor>::type
+ , result_of::arg_c<Grammar, N>::type::result<
+ void(result_of::arg_c<Expr, N>::type, State, Visitor)>::type
>::type``]
     ]
- [ [`transform::pass_through<Grammar>::call(expr, state, visitor)`]
- [``transform::pass_through<Grammar>::apply<Expr, State, Visitor>::type::make(
- Grammar::proto_arg0::call(proto::arg_c<0>(expr), state, visitor)
- , Grammar::proto_arg1::call(proto::arg_c<1>(expr), state, visitor)
- // ...
- , Grammar::__arg_N__::call(proto::arg_c<N>(expr), state, visitor)
-)``]
+ [ [`transform::pass_through<Grammar>()(expr, state, visitor)`]
+ [``transform::pass_through<Grammar>
+ ::result<void(Expr, State, Visitor)>::type::make(
+ result_of::arg_c<Grammar, 0>::type()(
+ proto::arg_c<0>(expr), state, visitor)
+ , result_of::arg_c<Grammar, 1>::type()(
+ proto::arg_c<1>(expr), state, visitor)
+ // ...
+ , result_of::arg_c<Grammar, N>::type()(
+ proto::arg_c<N>(expr), state, visitor)
+ )``]
     ]
 ]
 
@@ -922,4 +1207,210 @@
 
 [endsect]
 
+[/======================================================]
+[section:user_defined_transforms User-Defined Transforms]
+[/======================================================]
+
+In previous sections, we've seen how to compose larger transforms
+out of smaller transforms using function types.
+We've also seen the primitive transforms that Proto provides.
+So-called primitive transforms can be used without specifying
+arguments, like `_arg0` which returns the first child of the
+current node. But primitive transforms are not special in any way.
+They are merely ternary function objects that take the current
+expression, state and visitor as arguments.
+
+You can define your own primitive transforms. You might want to
+do this if your transform is complicated and composing it out
+of primitives becomes unwieldy. You might also do this
+to work around compiler bugs on legacy compilers that makes
+composing transforms using function types problematic. Finally,
+you might also decide to define your own primitive transforms
+to improve compile times. Since Proto can simply invoke a
+primitive transform directly without having to process arguments
+or differentiate callable transforms from object transforms,
+primitive transforms are more efficient.
+
+To define your own primitive transform, merely define a ternary
+function object that accepts an expression, a state and a visitor.
+Here, for example, is how Proto defines the `arg_c<>` transform:
+
+ namespace boost { namespace proto { namespace transform
+ {
+ // A transform that returns the I-th child
+ template<int I>
+ struct arg_c : callable
+ {
+ // Nested "result" template, used by
+ // boost::result_of<> to compute the
+ // return type of the function.
+ template<typename Sig>
+ struct result;
+
+ template<typename This, typename Expr, typename State, typename Visitor>
+ struct result<This(Expr, State, Visitor)>
+ : proto::result_of::arg_c<Expr, I>
+ {};
+
+ // Function call operator that actually
+ // executes the transform.
+ template<typename Expr, typename State, typename Visitor>
+ typename proto::result_of::arg_c<Expr, I>::const_reference
+ operator ()(Expr const &expr, State const &, Visitor &) const
+ {
+ return proto::arg_c<I>(expr);
+ }
+ };
+ }}}
+
+ namespace boost { namespace proto
+ {
+ // Note that arg_c<I> is callable, so that
+ // it can be used with arguments, as:
+ // arg_c<0>(arg_c<1>)
+ template<int I>
+ struct is_callable<transform::arg_c<I> >
+ : mpl::true_
+ {};
+ }}
+
+There is nothing particularly special about the definition of
+`arg_c<>`. It is just an ordinary polymorphic function object. The
+only interesting bit is the `is_callable<>` specialization, which
+will be described in the section called "Making Your Transform
+Callable".
+
+Once you have defined such a ternary function object, you can use
+it as a transform without any arguments and Proto will automatically
+pass it the current expression, state and visitor parameters.
+
+[endsect]
+
+[/=================================================]
+[section:is_callable Making Your Transform Callable]
+[/=================================================]
+
+Transforms are typically of the form `when< Something, R(A0,A1,...) >`. The
+question is whether `R` represents a function to call or an object to
+construct, and the answer determines how `when<>` evaluates the transform.
+`when<>` uses the `is_callable<>` trait to disambiguate between the two.
+Proto does its best to guess whether a transform is callable or not, but
+it doesn't always get it right. It's best to know the rules Proto uses,
+so that you know when you need to specialize `is_callable<>`.
+
+The first thing to know is that templates are not considered callable
+by default. This is true ['even if the template inherits from
+`proto::callable`]. Consider the following erroneous transform:
+
+ // Proto can't tell this defines a
+ // callable transform!
+ template<typename T>
+ struct times2 : callable
+ {
+ typedef T result_type;
+
+ T operator()(T i) const
+ {
+ return i * 2;
+ }
+ };
+
+ // ERROR! This is not going to
+ // multiply the int by 2.
+ struct IntTimes2
+ : when< terminal<int>, times2<int>(_arg) >
+ {};
+
+The problem is that Proto doesn't know that `times2<int>` is a callable
+transform. Instead, it assumes it's an object transform and will try to
+construct a `times2<int>` object and initialize it will an `int`. That
+will not compile.
+
+[note Why can't Proto tell that `times2<int>` is callable? After all,
+it inherits from `proto::callable`, and that is detectable, right?
+In fact, determining whether some type `X<Y>` inherits from
+`callable` will cause the template `X<Y>` to be instantiated. That's a
+problem for a type like `std::vector<_arg(_arg1)>()`, which is a valid
+transform that default-constructs a particular instantiation of
+`std::vector<>`. But `std::vector<>` will not suffer to be instantiated
+with `_arg(_arg1)` as a template parameter! As a result, Proto has
+to assume that a type `X<Y>` represents an object transform and not
+a callable transform.]
+
+There are a couple of solutions to the `times2<int>` problem. One
+solution is to wrap the transform in `call<>`. This forces Proto to
+treat `times2<int>` as callable:
+
+ // OK, calls times2<int>
+ struct IntTimes2
+ : when< terminal<int>, call<times2<int>(_arg)> >
+ {};
+
+This can be a bit of a pain, because we need to wrap every use of
+`times2<int>`, which can be tedious and error prone, and makes our
+grammar cluttered and harder to read.
+
+Another solution is to specialize `proto::is_callable<>` on our
+`times2<>` template:
+
+ namespace boost { namespace proto
+ {
+ template<typename T>
+ struct is_callable<times2<T> >
+ : mpl::true_
+ {};
+ }}
+
+ // OK, times2<> is callable
+ struct IntTimes2
+ : when< terminal<int>, times2<int>(_arg) >
+ {};
+
+This is better, but still a pain because of the need to open
+Proto's namespace.
+
+You could simply make sure that the transform is not
+a template. Consider the following:
+
+ // No longer a template!
+ struct times2int : times2<int> {};
+
+ // OK, times2int is callable
+ struct IntTimes2
+ : when< terminal<int>, times2int(_arg) >
+ {};
+
+This works because now Proto can tell that `times2int` inherits
+(indirectly) from `proto::callable`. Any non-template types can
+be safely checked for inheritance because, as they are not
+templates, there is no worry about instantiation errors.
+
+There is one last way to tell Proto that `times2<>` is callable.
+You could add an extra dummy template parameter that defaults
+to `proto::callable`:
+
+ // Proto will recognize this as callable
+ template<typename T, typename Dummy = callable>
+ struct times2 : callable
+ {
+ typedef T result_type;
+
+ T operator()(T i) const
+ {
+ return i * 2;
+ }
+ };
+
+ // OK, this works!
+ struct IntTimes2
+ : when< terminal<int>, times2<int>(_arg) >
+ {};
+
+Note that in addition to the extra template parameter, `times2<>`
+still inherits from `callable`. That's not necessary in this example
+but it's good style because any types derived from `times2<>` (as
+`times2int` defined above) will still be considered callable.
+
+[endsect]
+
 [endsect]

Modified: branches/proto/v3/libs/xpressive/proto/example/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/Jamfile.v2 (original)
+++ branches/proto/v3/libs/xpressive/proto/example/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -53,3 +53,15 @@
         mixed.cpp
     ;
 
+exe futures
+ :
+ futures.cpp
+ ;
+
+exe map_assign
+ :
+ map_assign.cpp
+ :
+ <toolset>gcc:<cxxflags>-ftemplate-depth-1024
+ ;
+

Modified: branches/proto/v3/libs/xpressive/proto/example/calc1.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/calc1.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/calc1.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 //[ Calc1
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/libs/xpressive/proto/example/calc2.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/calc2.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/calc2.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,5 +1,5 @@
 //[ Calc2
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Copied: branches/proto/v3/libs/xpressive/proto/example/futures.cpp (from r43509, /trunk/libs/xpressive/proto/example/futures.cpp)
==============================================================================
--- /trunk/libs/xpressive/proto/example/futures.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/futures.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -91,7 +91,7 @@
 {
     future(T const &t = T())
       : future_expr<typename terminal<T>::type>(
- terminal<T>::type::make(t)
+ proto::construct<typename terminal<T>::type>(t)
         )
     {}
 

Modified: branches/proto/v3/libs/xpressive/proto/example/lazy_vector.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/lazy_vector.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/lazy_vector.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //[ LazyVector
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Copied: branches/proto/v3/libs/xpressive/proto/example/map_assign.cpp (from r43509, /trunk/libs/xpressive/proto/example/map_assign.cpp)
==============================================================================
--- /trunk/libs/xpressive/proto/example/map_assign.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/map_assign.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -68,7 +68,7 @@
 struct map_list_of_expr
 {
     BOOST_PROTO_EXTENDS(Expr, map_list_of_expr, map_list_of_dom)
- BOOST_PROTO_EXTENDS_FUNCTION(Expr, map_list_of_expr, map_list_of_dom)
+ BOOST_PROTO_EXTENDS_FUNCTION()
     
     template<typename Map>
     operator Map() const

Modified: branches/proto/v3/libs/xpressive/proto/example/rgb.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/rgb.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/rgb.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //[ RGB
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/libs/xpressive/proto/example/tarray.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/tarray.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/tarray.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //[ TArray
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/libs/xpressive/proto/example/vector.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/example/vector.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/example/vector.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
 //[ Vector
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright 2007 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 //

Modified: branches/proto/v3/libs/xpressive/proto/test/calculator.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/test/calculator.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/test/calculator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // calculator.hpp
 //
-// Copyright 2006 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/proto/test/lambda.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/test/lambda.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/test/lambda.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // lambda.hpp
 //
-// Copyright 2006 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/proto/test/proto_fusion.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/proto/test/proto_fusion.cpp (original)
+++ branches/proto/v3/libs/xpressive/proto/test/proto_fusion.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // proto_fusion.cpp
 //
-// Copyright 2006 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/xpressive/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/xpressive/test/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,6 +14,7 @@
         <toolset>msvc-8.0:<define>_CRT_SECURE_NO_DEPRECATE
         <toolset>msvc-9.0:<define>_SCL_SECURE_NO_DEPRECATE
         <toolset>gcc:<cxxflags>-ftemplate-depth-1024
+ <toolset>darwin:<cxxflags>-ftemplate-depth-1024
 # <toolset>gcc:<cxxflags>-W
 # <toolset>gcc:<cxxflags>-Wall
 # <toolset>msvc:<cxxflags>-W4
@@ -58,6 +59,7 @@
          [ run test_symbols2.cpp ]
          [ run test_dynamic.cpp ]
          [ run test_dynamic_grammar.cpp ]
+ [ run test_skip.cpp ]
          [ link multiple_defs1.cpp multiple_defs2.cpp : : multiple_defs ]
          [ compile test_basic_regex.cpp ]
          [ compile test_match_results.cpp ]

Modified: branches/proto/v3/libs/xpressive/test/misc1.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/misc1.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/misc1.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // misc1.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/misc2.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/misc2.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/misc2.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,15 +1,15 @@
 ///////////////////////////////////////////////////////////////////////////////
 // misc2.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <iostream>
+#include <string>
 #include <boost/xpressive/xpressive.hpp>
+#include <boost/xpressive/regex_actions.hpp>
 #include <boost/test/unit_test.hpp>
 
-using namespace boost::unit_test;
 using namespace boost::xpressive;
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -26,6 +26,23 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////
+//
+void test_static_actions_in_dynamic_keep()
+{
+ std::string result;
+ std::string str("foo");
+
+ sregex_compiler compiler;
+ compiler["rx0"] = (s1="foo")[ ref(result) = s1 ];
+ sregex rx = compiler.compile( "(?>(?$rx0))");
+
+ bool ok = regex_match(str, rx);
+ BOOST_CHECK(ok);
+ BOOST_CHECK_EQUAL(result, "foo");
+}
+
+using namespace boost::unit_test;
+///////////////////////////////////////////////////////////////////////////////
 // init_unit_test_suite
 //
 test_suite* init_unit_test_suite( int argc, char* argv[] )
@@ -33,6 +50,7 @@
     test_suite *test = BOOST_TEST_SUITE("miscelaneous tests");
 
     test->add(BOOST_TEST_CASE(&test_complement));
+ test->add(BOOST_TEST_CASE(&test_static_actions_in_dynamic_keep));
 
     return test;
 }

Modified: branches/proto/v3/libs/xpressive/test/multiple_defs1.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/multiple_defs1.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/multiple_defs1.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // multiple_defs1.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/multiple_defs2.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/multiple_defs2.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/multiple_defs2.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // multiple_defs2.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test1.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test1.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test1.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test1.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test1.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test1.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test1.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test1.h
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -125,6 +125,13 @@
           , regex_type(bos >> L('b') >> *_ >> L("ar"))
           , no_match
         )
+ , xpr_test_case
+ (
+ "test15.1"
+ , L("fOo")
+ , regex_type(!icase(L('f') >> *as_xpr(L('o'))))
+ , backrefs(L("fOo"), nilbr)
+ )
     };
 
     return boost::make_iterator_range(test_cases);

Modified: branches/proto/v3/libs/xpressive/test/test10.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test10.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test10.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test10.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test10.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test10.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test10.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test10.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test10u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test10u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test10u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test10.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test11.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test11.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test11.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test11.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test11.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test11.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test11.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test11.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test11u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test11u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test11u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test11u.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test1u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test1u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test1u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test1.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test2.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test2.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test2.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test2.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test2.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test2.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test2.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test2.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test2u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test2u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test2u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test2.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test3.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test3.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test3.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test3.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test3.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test3.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test3.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test3.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test3u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test3u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test3u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test3.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test4.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test4.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test4.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test4.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test4.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test4.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test4.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test4.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test4u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test4u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test4u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test4.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test5.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test5.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test5.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test5.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test5.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test5.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test5.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test5.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test5u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test5u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test5u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test5.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test6.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test6.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test6.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test6.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test6.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test6.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test6.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test6.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test6u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test6u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test6u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test6.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test7.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test7.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test7.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test7.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test7.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test7.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test7.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test7.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test7u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test7u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test7u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test7.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test8.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test8.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test8.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test8.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test8.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test8.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test8.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test8.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test8u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test8u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test8u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test8.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test9.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test9.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test9.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test9.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test9.hpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test9.hpp (original)
+++ branches/proto/v3/libs/xpressive/test/test9.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test9.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test9u.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test9u.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test9u.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test9.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_actions.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_actions.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_actions.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_actions.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -68,10 +68,10 @@
     std::list<int> result;
     std::string str("1 23 456 7890");
 #if BOOST_VERSION >= 103500
- sregex rx = (+_d)[ xp::ref(result)->*push_back( as<int>(_) ) ]
+ sregex rx = (+_d)[ xp::ref(result)->*push_back( as<int>(_) ) ]
>> *(' ' >> (+_d)[ xp::ref(result)->*push_back( as<int>(_) ) ]);
 #else
- sregex rx = (+_d)[ push_back(xp::ref(result), as<int>(_) ) ]
+ sregex rx = (+_d)[ push_back(xp::ref(result), as<int>(_) ) ]
>> *(' ' >> (+_d)[ push_back(xp::ref(result), as<int>(_) ) ]);
 #endif
 

Modified: branches/proto/v3/libs/xpressive/test/test_assert.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_assert.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_assert.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_assert.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -53,7 +53,7 @@
 
     mark_tag month(1), day(2);
     // find a valid date of the form month/day/year.
- sregex date =
+ sregex date =
         (
             // Month must be between 1 and 12 inclusive
             (month= _d >> !_d) [ check(as<int>(_) >= 1

Modified: branches/proto/v3/libs/xpressive/test/test_basic_regex.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_basic_regex.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_basic_regex.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_basic_regex.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_cycles.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_cycles.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_cycles.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_cycles.hpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_dynamic.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_dynamic.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_dynamic.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_dynamic.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_dynamic_grammar.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_dynamic_grammar.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_dynamic_grammar.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -68,7 +68,7 @@
             compiler["factor"] = compiler.compile( "\\d+ | (? $group ) ", x);
             compiler["term"] = compiler.compile( "(? $factor ) (?: \\* (? $factor ) | / (? $factor ) )* ", x);
             compiler["expr"] = compiler.compile( "(? $term ) (?: \\+ (? $term ) | - (? $term ) )* ", x);
-
+
             expr = compiler["expr"];
         }
 

Modified: branches/proto/v3/libs/xpressive/test/test_match_results.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_match_results.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_match_results.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_match_results.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_non_char.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_non_char.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_non_char.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_non_char.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_partial_match.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_partial_match.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_partial_match.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_partial_match.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_algorithms.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_algorithms.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_algorithms.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_algorithms.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_compiler.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_compiler.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_compiler.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_compiler.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_constants.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_constants.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_constants.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_constants.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_error.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_error.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_error.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_error.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_iterator.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_iterator.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_iterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_iterator.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_primitives.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_primitives.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_primitives.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_primitives.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_token_iterator.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_token_iterator.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_token_iterator.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_token_iterator.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_regex_traits.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_regex_traits.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_regex_traits.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_regex_traits.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_static.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_static.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_static.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_static.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_sub_match.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_sub_match.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_sub_match.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_sub_match.cpp
 //
-// Copyright 2004 Eric Niebler. Distributed under the Boost
+// Copyright 2008 Eric Niebler. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_symbols.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_symbols.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_symbols.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,13 +1,14 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_symbols.cpp
 //
-// Copyright 2007 David Jenkins.
-// Copyright 2007 Eric Niebler.
+// Copyright 2008 David Jenkins.
+// Copyright 2008 Eric Niebler.
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
+#include <string>
 #include <map>
 #include <boost/version.hpp>
 #include <boost/xpressive/xpressive_static.hpp>
@@ -25,14 +26,16 @@
 {
     using namespace boost::xpressive;
 
- std::string result;
+ local<std::string> result;
     std::string str("foo bar baz foo bar baz");
     std::map<std::string,std::string> map1;
     map1["foo"] = "1";
     map1["bar"] = "2";
     map1["baz"] = "3";
 
- sregex rx = (a1=map1)[ xp::ref(result) = a1 ] >> *(' ' >> (a1=map1)[ xp::ref(result) += ',' + a1 ]);
+ sregex rx = skip(_s) (+(a1=map1)
+ [ result += if_else(length(result) > 0, ",", "") + a1 ]
+ );
 
     if(!regex_match(str, rx))
     {
@@ -40,7 +43,7 @@
     }
     else
     {
- BOOST_CHECK_EQUAL(result, "1,2,3,1,2,3");
+ BOOST_CHECK_EQUAL(result.get(), "1,2,3,1,2,3");
     }
 }
 
@@ -51,7 +54,7 @@
 {
     using namespace boost::xpressive;
 
- std::string result;
+ local<std::string> result;
     std::string str("foobarbazfoobazbazfoobazbar");
     std::map<std::string,std::string> map1;
     map1["foo"] = "1";
@@ -60,8 +63,9 @@
     map1["foobaz"] = "4";
     map1["foobazbaz"] = "5";
 
- sregex rx = (a1=map1)[ xp::ref(result) = a1 ]
- >> *((a1=map1)[ xp::ref(result) += ',', xp::ref(result) += a1 ]);
+ sregex rx = skip(_s) (+(a1=map1)
+ [ result += if_else(length(result) > 0, ",", "") + a1 ]
+ );
 
     if(!regex_match(str, rx))
     {
@@ -69,7 +73,7 @@
     }
     else
     {
- BOOST_CHECK_EQUAL(result, "1,2,3,5,4,2");
+ BOOST_CHECK_EQUAL(result.get(), "1,2,3,5,4,2");
     }
 }
 
@@ -89,11 +93,13 @@
     map1["bop"] = 7890;
 
 #if BOOST_VERSION >= 103500
- sregex rx = (a1=map1)[ xp::ref(result)->*push_back( a1 ) ]
- >> *(' ' >> (a1=map1)[ xp::ref(result)->*push_back( a1 ) ]);
+ sregex rx = skip(_s) (+(a1=map1)
+ [ xp::ref(result)->*push_back( a1 ) ]
+ );
 #else
- sregex rx = (a1=map1)[ push_back(xp::ref(result), a1 ) ]
- >> *(' ' >> (a1=map1)[ push_back(xp::ref(result), a1 ) ]);
+ sregex rx = skip(_s) (+(a1=map1)
+ [ push_back(xp::ref(result), a1 ) ]
+ );
 #endif
 
     if(!regex_match(str, rx))
@@ -155,7 +161,7 @@
 {
     using namespace boost::xpressive;
 
- int result = 0;
+ local<int> result(0);
     std::string str("abcdefghi");
     std::map<std::string,int> map1;
     std::map<std::string,int> map2;
@@ -176,16 +182,16 @@
     map8["h"] = 8;
     map9["i"] = 9;
 
- sregex rx =
- (a1=map1)[ xp::ref(result) += a1 ]
- >> (a2=map2)[ xp::ref(result) += a2 ]
- >> (a3=map3)[ xp::ref(result) += a3 ]
- >> (a4=map4)[ xp::ref(result) += a4 ]
- >> (a5=map5)[ xp::ref(result) += a5 ]
- >> (a6=map6)[ xp::ref(result) += a6 ]
- >> (a7=map7)[ xp::ref(result) += a7 ]
- >> (a8=map8)[ xp::ref(result) += a8 ]
- >> (a9=map9)[ xp::ref(result) += a9 ];
+ sregex rx =
+ (a1=map1)[ result += a1 ]
+ >> (a2=map2)[ result += a2 ]
+ >> (a3=map3)[ result += a3 ]
+ >> (a4=map4)[ result += a4 ]
+ >> (a5=map5)[ result += a5 ]
+ >> (a6=map6)[ result += a6 ]
+ >> (a7=map7)[ result += a7 ]
+ >> (a8=map8)[ result += a8 ]
+ >> (a9=map9)[ result += a9 ];
 
     if(!regex_match(str, rx))
     {
@@ -193,7 +199,7 @@
     }
     else
     {
- BOOST_CHECK_EQUAL(result, 45);
+ BOOST_CHECK_EQUAL(result.get(), 45);
     }
 }
 

Modified: branches/proto/v3/libs/xpressive/test/test_typeof.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_typeof.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_typeof.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_typeof.cpp
 //
-// Copyright 2007 David Jenkins. Distributed under the Boost
+// Copyright 2008 David Jenkins. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/proto/v3/libs/xpressive/test/test_typeof2.cpp
==============================================================================
--- branches/proto/v3/libs/xpressive/test/test_typeof2.cpp (original)
+++ branches/proto/v3/libs/xpressive/test/test_typeof2.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // test_typeof2.cpp
 //
-// Copyright 2007 David Jenkins. Distributed under the Boost
+// Copyright 2008 David Jenkins. Distributed under the Boost
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -43,13 +43,13 @@
     TYPEOF_TEST((+_w)[ xp::ref(result) += _ ] >> *(' ' >> (+_w)[ xp::ref(result) += ',' + _ ]));
     TYPEOF_TEST((+_w)[ xp::ref(result) += _ ] >> *(' ' >> (+_w)[ xp::ref(result) += ',' + _ ]) >> repeat<4>(_));
     std::list<int> result2;
- TYPEOF_TEST((+_d)[ xp::ref(result2)->*push_back( as<int>(_) ) ]
+ TYPEOF_TEST((+_d)[ xp::ref(result2)->*push_back( as<int>(_) ) ]
>> *(' ' >> (+_d)[ xp::ref(result2)->*push_back( as<int>(_) ) ]));
     std::map<std::string, int> result3;
     TYPEOF_TEST(( (s1= +_w) >> "=>" >> (s2= +_d) )[ xp::ref(result3)[s1] = as<int>(s2) ]);
     placeholder< std::map<std::string, int> > const _map5 = {{}};
     TYPEOF_TEST(( (s1= +_w) >> "=>" >> (s2= +_d) )[ _map5[s1] = as<int>(s2) ]);
-
+
     smatch what;
     placeholder< std::map<std::string, int> > const _map6 = {{}};
     std::map<std::string, int> result6;
@@ -105,7 +105,7 @@
>> *((a1=map10)[ xp::ref(result) += ',', xp::ref(result) += a1 ]));
     std::list<int> result12;
     std::map<std::string,int> map12;
- TYPEOF_TEST((a1=map12)[ xp::ref(result12)->*push_back( a1 ) ]
+ TYPEOF_TEST((a1=map12)[ xp::ref(result12)->*push_back( a1 ) ]
>> *(' ' >> (a1=map12)[ xp::ref(result12)->*push_back( a1 ) ]));
 
     placeholder< std::map<std::string, int> > const _map13 = {};
@@ -121,10 +121,10 @@
     std::map<std::string,int> map3a;
     TYPEOF_TEST((a1=map1a)[ xp::ref(result14) += a1 ]
>> (a2=map2a)[ xp::ref(result) += a2 ]
- >> (a3=map3a)[ xp::ref(result) += a3 ]
+ >> (a3=map3a)[ xp::ref(result) += a3 ]
         );
         {
- TYPEOF_TEST(icase(a1= map10) [ xp::ref(result) = a1 ]
+ TYPEOF_TEST(icase(a1= map10) [ xp::ref(result) = a1 ]
>> repeat<3>( (' ' >> icase(a1= map10) [ xp::ref(result) += ',', xp::ref(result) += a1 ]) )
         );
     TYPEOF_TEST(*((a1= map1a) | (a1= map2a) | 'e') [ xp::ref(result) += (a1 | "9") ]);

Deleted: branches/proto/v3/more/Jamfile.v2
==============================================================================
--- branches/proto/v3/more/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,25 +0,0 @@
-# Copyright David Abrahams 2006. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-import docutils ;
-
-import path ;
-sources = getting_started.rst BoostCon07.rst ;
-bases = $(sources:S=) ;
-
-# This is a path relative to the html/ subdirectory where the
-# generated output will eventually be moved.
-stylesheet = "--stylesheet=../rst.css" ;
-
-for local b in $(bases)
-{
- html $(b) : $(b).rst :
-
- # <docutils-cmd>"PYTHONPATH=~/src/boost/tools && python ~/src/boost/tools/litre/active-rst.py"
- # <docutils-html>"-gdt --writer=html --source-url="./$(b).rst" --link-stylesheet --traceback --trim-footnote-reference-space --footnote-references=superscript "$(stylesheet)
- <docutils-html>"-gdt --source-url="./$(b).rst" --link-stylesheet --traceback --trim-footnote-reference-space --footnote-references=superscript "$(stylesheet)
- ;
-}
-
-alias htmls : $(bases) ;
-stage . : $(bases) ;

Deleted: branches/proto/v3/more/favicon.ico
==============================================================================
Binary file. No diff available.

Deleted: branches/proto/v3/more/getting_started.rst
==============================================================================
--- branches/proto/v3/more/getting_started.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,1004 +0,0 @@
-============================
- |(logo)|__ Getting Started
-============================
-
-.. |(logo)| image:: ../boost.png
- :alt: Boost
- :class: boost-logo
-
-__ ../index.htm
-
-
-.. section-numbering::
- :depth: 2
-
-.. contents:: Contents
- :depth: 2
- :class: sidebar small
-
-.. ## Update this substitution for each release
-
-.. |boost_ver| replace:: ``boost_1_34_0``
-.. |boost_ver-bold| replace:: **boost_1_34_0**
-
-.. |root| replace:: ``/``\ *path*\ ``/``\ *to*\ ``/``\ |boost_ver|
-.. |winroot| replace:: *path*\ ``\``\ *to*\ ``\``\ |boost_ver|
-.. |winroot-default| replace:: ``C:\Program``\ `` ``\ ``Files\boost\``\ |boost_ver|
-.. |bold-winroot-default| replace:: **C:\\Program Files\\boost\\**\ |boost_ver-bold|
-
-Introduction
-============
-
-Welcome to the Boost libraries! By the time you've completed this
-tutorial, you'll be at least somewhat comfortable with the contents
-of a Boost distribution and how to go about using it.
-
-What's Here
------------
-
-This document is designed to be an *extremely* gentle introduction,
-so we included a fair amount of material that may already be very
-familiar to you. To keep things simple, we also left out some
-information intermediate and advanced users will probably want. At
-the end of this document, we'll refer you on to resources that can
-help you pursue these topics further.
-
-Preliminaries
--------------
-
-We use one typographic convention that might not be immediately
-obvious: *italic* text in examples is meant as a descriptive
-placeholder for something else, usually information that you'll
-provide. For example:
-
-.. parsed-literal::
-
- **$** echo "My name is *your name*\ "
-
-Here you're expected to imagine replacing the text “your name” with
-your actual name.
-
-We identify Unix and its variants such as Linux, FreeBSD, and MacOS
-collectively as \*nix. If you're not targeting Microsoft Windows,
-the instructions for \*nix users will probably work for you.
-Cygwin users working from the Cygwin ``bash`` prompt should also
-follow the \*nix instructions. To use your Cygwin compiler from
-the Windows command prompt, follow the instructions for Windows
-users.
-
-Although Boost supports a wide variety of Windows compilers
-(including older Microsoft compilers), most instructions for
-Windows users cover only the Visual Studio .NET 2003 and Visual
-Studio 2005. We hope that gives you enough information to adapt
-them for your own compiler or IDE.
-
-Get Boost
-=========
-
-There are basically three ways to get Boost on your system:
-
-1. **Windows Installer**: Boost Consulting provides an installer_
- for Windows platforms that installs a complete Boost
- distribution, plus optional precompiled library binaries for
- Visual Studio, and (optionally) a prebuilt version of the
- ``bjam`` build tool.
-
- .. _Windows installer: http://www.boost-consulting.com/download.html
- .. |Windows installer| replace:: **Windows installer**
- .. _Boost Consulting: http://boost-consulting.com
- .. _installer: `Windows installer`_
-
-
-2. **Download**: users of other platforms—and Windows
- users who prefer to build everything from scratch—can `download
- a complete Boost distribution`__ from SourceForge.
-
- .. ## Update this link for each release
- __ http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=376197
-
- - **Windows**: Download and run |boost_ver|\ ``.exe``
- to unpack the distribution. [#zip]_
-
- - ***nix**: Download |boost_ver|\ ``.tar.bz2``. Then, in the
- directory where you want to put the Boost installation,
- execute
-
- .. parsed-literal::
-
- tar --bzip2 -xf */path/to/*\ |boost_ver|\ .tar.bz2
-
-3. **Boost packages** from RedHat, Debian, or some other
- distribution packager: these instructions may not work for you
- if you use 3rd party packages, because other packagers sometimes
- choose to break Boost up into several packages or to reorganize
- the directory structure of the Boost distribution. [#packagers]_
-
-The Structure of a Boost Distribution
-=====================================
-
-This is is a sketch of the directory structure you'll get when you
-unpack your Boost installation (windows users replace forward
-slashes with backslashes):
-
-.. parsed-literal::
-
- |boost_ver-bold|\ **/** .................\ *The “boost root directory”*
- **index.htm** .........\ *A copy of www.boost.org starts here*
- **boost/** .........................\ *All Boost Header files*
- **libs/** ............\ *Tests, .cpp*\ s\ *, docs, etc., by library* [#installer-src]_
- **index.html** ........\ *Library documentation starts here*
- **algorithm/**
- **any/**
- **array/**
- *…more libraries…*
- **status/** .........................\ *Boost-wide test suite*
- **tools/** ...........\ *Utilities, e.g. bjam, quickbook, bcp*
- **more/** ..........................\ *Policy documents, etc.*
- **doc/** ...............\ *A subset of all Boost library docs*
-
-.. sidebar:: Header Organization
- :class: small
-
- The organization of Boost library headers isn't entirely uniform,
- but most libraries follow a few patterns:
-
- * Some older libraries and most very small libraries place all
- public headers directly into ``boost/``.
-
- * Most libraries' public headers live in a subdirectory of
- ``boost/`` named after the library. For example, you'll find
- the Type Traits Library's ``is_void.hpp`` header in
- ``boost/type_traits/is_void.hpp``.
-
- * Some libraries have an “aggregate header” in ``boost/`` that
- ``#include``\ s all of the library's other headers. For
- example, Boost.Python_'s aggregate header is
- ``boost/python.hpp``.
-
- * Most libraries place private headers in a subdirectory called
- ``detail/`` or ``aux_/``. Don't look in these directories and
- expect to find anything you can use.
-
-A few things are worth noting right off the bat:
-
-1. The path to the “boost root directory” is sometimes referred to
- as ``$BOOST_ROOT`` in documentation and mailing lists. If you
- used the Windows installer, that will usually be |winroot-default|.
-
-2. To compile anything in Boost, you need a directory containing
- the ``boost/`` subdirectory in your ``#include`` path. For most
- compilers, that means adding
-
- .. parsed-literal::
-
- -I\ |root|
-
- to the command line. Specific steps for setting up ``#include``
- paths in Microsoft Visual Studio follow later in this document;
- if you use another IDE, please consult your product's
- documentation for instructions.
-
-3. Since all of Boost's header files have the ``.hpp`` extension,
- and live in the ``boost/`` subdirectory of the boost root, your
- Boost ``#include`` directives will look like:
-
- .. parsed-literal::
-
- #include <boost/\ *whatever*\ .hpp>
-
- or
-
- .. parsed-literal::
-
- #include "boost/\ *whatever*\ .hpp"
-
- depending on your religion as regards the use of angle bracket
- includes. Even Windows users can use forward slashes in
- ``#include`` directives; your compiler doesn't care.
-
-4. Don't be distracted by the ``doc/`` subdirectory; it only
- contains a subset of the Boost documentation. Start with
- ``libs/index.html`` if you're looking for the whole enchilada.
-
-Header-Only Libraries
-=====================
-
-The first thing many people want to know is, “how do I build
-Boost?” The good news is that often, there's nothing to build.
-
-.. admonition:: Nothing to Build
-
- Most Boost libraries are **header-only**: they consist *entirely
- of header files* containing templates and inline functions, and
- require no separately-compiled library binaries or special
- treatment when linking.
-
-.. _separate:
-
-The only Boost libraries that can't be used without separate
-compilation are:
-
-* Boost.Filesystem
-* Boost.IOStreams
-* Boost.ProgramOptions
-* Boost.Python_
-* Boost.Regex
-* Boost.Serialization
-* Boost.Signals
-* Boost.Test
-* Boost.Thread
-* Boost.Wave
-
-The DateTime library has a separately-compiled component that
-is only needed if you're using its to/from_string and/or
-serialization features or if you're targeting Visual C++ 6.x or
-Borland. The Graph library also has a separately-compiled part,
-but you won't need it unless you intend to `parse GraphViz
-files`__.
-
-__ ../libs/graph/doc/read_graphviz.html
-
-.. ## Keep the list of non-header-only libraries up-to-date
-
-Build a Simple Program Using Boost
-==================================
-
-To keep things simple, let's start by using a header-only library.
-The following program reads a sequence of integers from standard
-input, uses Boost.Lambda to multiply each number by three, and
-writes them to standard output::
-
- #include <boost/lambda/lambda.hpp>
- #include <iostream>
- #include <iterator>
- #include <algorithm>
-
- int main()
- {
- using namespace boost::lambda;
- typedef std::istream_iterator<int> in;
-
- std::for_each(
- in(std::cin), in(), std::cout << (_1 * 3) << " " );
- }
-
-Copy the text of this program into a file called ``example.cpp``.
-
-.. _unix-header-only:
-
-Build on \*nix
---------------
-
-In the directory where you saved ``example.cpp``, issue the
-following command:
-
-.. parsed-literal::
-
- c++ -I |root| example.cpp -o example
-
-To test the result, type:
-
-.. parsed-literal::
-
- echo 1 2 3 | ./example
-
-.. |next| replace:: *next...*
-
-|next|__
-
-__ `Errors and Warnings`_
-
-Build from the Visual Studio Command Prompt
--------------------------------------------
-
-From your computer's *Start* menu, if you are a Visual
-Studio 2005 user, select
-
- *All Programs* > *Microsoft Visual Studio 2005*
- > *Visual Studio Tools* > *Visual Studio 2005 Command Prompt*
-
-or, if you're a Visual Studio .NET 2003 user, select
-
- *All Programs* > *Microsoft Visual Studio .NET 2003*
- > *Visual Studio .NET Tools* > *Visual Studio .NET 2003 Command Prompt*
-
-to bring up a special `command prompt`_ window set up for the Visual
-Studio compiler. In that window, type the following command and
-hit the return key:
-
-.. parsed-literal::
-
- cl /EHsc /I\ |winroot| *path*\ \\\ *to*\ \\example.cpp
-
-To test the result, type:
-
-.. parsed-literal::
-
- echo 1 2 3 | example
-
-|next|__
-
-__ `Errors and Warnings`_
-
-.. _vs-header-only:
-
-Build in the Visual Studio IDE
-------------------------------
-
-* From Visual Studio's *File* menu, select *New* > *Project…*
-* In the left-hand pane of the resulting *New Project* dialog,
- select *Visual C++* > *Win32*.
-* In the right-hand pane, select *Win32 Console Application*
- (VS8.0) or *Win32 Console Project* (VS7.1).
-* In the *name* field, enter “example”
-* Right-click **example** in the *Solution Explorer* pane and
- select *Properties* from the resulting pop-up menu
-* In *Configuration Properties* > *C/C++* > *General* > *Additional Include
- Directories*, enter the path to the Boost root directory, e.g.
- |winroot-default|.
-* In *Configuration Properties* > *C/C++* > *Precompiled Headers*, change
- *Use Precompiled Header (/Yu)* to *Not Using Precompiled
- Headers*. [#pch]_
-* Replace the contents of the ``example.cpp`` generated by the IDE
- with the example code above.
-* From the *Build* menu, select *Build Solution*.
-
-To test your application, hit the F5 key and type the following
-into the resulting window, followed by the return key::
-
- 1 2 3
-
-Then hold down the control key and press "Z", followed by the
-return key.
-
-Errors and Warnings
--------------------
-
-Don't be alarmed if you see compiler warnings from Boost headers.
-We try to eliminate them, but doing so isn't always practical.
-[#warnings]_
-
-Errors are another matter. If you're seeing compilation errors at
-this point in the tutorial, check to be sure you've copied the
-example program correctly and that you've correctly identified the
-Boost root directory.
-
-Get Boost Library Binaries
-==========================
-
-If you want to use any of the separately-compiled Boost libraries,
-you'll need library binaries.
-
-Install Visual Studio Binaries
-------------------------------
-
-The `Windows installer`_ supplied by Boost Consulting will download
-and install pre-compiled binaries into the ``lib\`` subdirectory of
-the boost root, typically |winroot-default|\ ``\lib\``.
-
-|next|__
-
-__ `Link Your Program to a Boost Library`_
-
-Build and Install \*nix Binaries
---------------------------------
-
-Issue the following commands in the shell (don't type ``$``; it
-represents the shell's prompt):
-
-.. parsed-literal::
-
- **$** cd |root|
- **$** ./configure --help
-
-Select your configuration options and invoke ``./configure`` again.
-Unless you have write permission in your system's ``/usr/local/``
-directory, you'll probably want to at least use
-
-.. parsed-literal::
-
- **$** ./configure **--prefix=**\ *path*\ /\ *to*\ /\ *installation*\ /\ *prefix*
-
-to install somewhere else. Finally,
-
-.. parsed-literal::
-
- **$** make install
-
-which will leave Boost binaries in the ``lib/`` subdirectory of
-your installation prefix. You will also find a copy of the Boost
-headers in the ``include/`` subdirectory of the installation
-prefix, so you can henceforth use that directory as an ``#include``
-path in place of the Boost root directory.
-
-|next|__
-
-__ `Expected Build Output`_
-
-Build and Install Other Binaries
---------------------------------
-
-If you're not using Visual C++ 7.1 or 8.0, or you're a \*nix user
-who wants want to build with a toolset other than your system's
-default, or if you want a nonstandard variant build of Boost
-(e.g. optimized, but with debug symbols), you'll need to use
-Boost.Build_ to create your own binaries.
-
-Boost.Build_ is a text-based system for developing, testing, and
-installing software. To use it, you'll need an executable called
-``bjam``.
-
-.. |precompiled-bjam| replace:: pre-compiled ``bjam`` executables
-
-
-.. _precompiled-bjam: http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941
-.. _Boost.Jam documentation: Boost.Jam_
-.. _Boost.Build: ../tools/build/index.html
-.. _Boost.Jam: ../tools/jam/index.html
-.. _Boost.Build documentation: Boost.Build_
-
-Get ``bjam``
-............
-
-``bjam`` is the `command-line tool`_ that drives the Boost Build
-system. To build Boost binaries, you'll invoke ``bjam`` from the
-Boost root.
-
-Boost provides |precompiled-bjam|_ for a variety of platforms.
-Alternatively, you can build ``bjam`` yourself using `these
-instructions`__.
-
-__ http://www.boost.org/doc/html/jam/building.html
-
-
-.. _toolset:
-.. _toolset-name:
-
-Identify Your Toolset
-.....................
-
-First, find the toolset corresponding to your compiler in the
-following table.
-
-+-----------+--------------------+-----------------------------+
-|Toolset |Vendor |Notes |
-|Name | | |
-+===========+====================+=============================+
-|``acc`` |Hewlett Packard |Only very recent versions are|
-| | |known to work well with Boost|
-+-----------+--------------------+-----------------------------+
-|``borland``|Borland | |
-+-----------+--------------------+-----------------------------+
-|``como`` |Comeau Computing |Using this toolset may |
-| | |require configuring__ another|
-| | |toolset to act as its backend|
-+-----------+--------------------+-----------------------------+
-|``cw`` |Metrowerks/FreeScale|The CodeWarrior compiler. We|
-| | |have not tested versions of |
-| | |this compiler produced since |
-| | |it was sold to FreeScale. |
-+-----------+--------------------+-----------------------------+
-|``dmc`` |Digital Mars |As of this Boost release, no |
-| | |version of dmc is known to |
-| | |handle Boost well. |
-+-----------+--------------------+-----------------------------+
-|``darwin`` |Apple Computer |Apple's version of the GCC |
-| | |toolchain with support for |
-| | |Darwin and MacOS X features |
-| | |such as frameworks. |
-+-----------+--------------------+-----------------------------+
-|``gcc`` |The Gnu Project |Includes support for Cygwin |
-| | |and MinGW compilers. |
-+-----------+--------------------+-----------------------------+
-|``hp_cxx`` |Hewlett Packard |Targeted at the Tru64 |
-| | |operating system. |
-+-----------+--------------------+-----------------------------+
-|``intel`` |Intel | |
-+-----------+--------------------+-----------------------------+
-|``kylix`` |Borland | |
-+-----------+--------------------+-----------------------------+
-|``msvc`` |Microsoft | |
-+-----------+--------------------+-----------------------------+
-|``qcc`` |QNX Software Systems| |
-+-----------+--------------------+-----------------------------+
-|``sun`` |Sun |Only very recent versions are|
-| | |known to work well with |
-| | |Boost. |
-+-----------+--------------------+-----------------------------+
-|``vacpp`` |IBM |The VisualAge C++ compiler. |
-+-----------+--------------------+-----------------------------+
-
-__ Boost.Build_
-
-If you have multiple versions of a particular compiler installed,
-you can apend the version number to the toolset name, preceded by a
-hyphen, e.g. ``msvc-7.1`` or ``gcc-3.4``.
-
-.. Note:: if you built ``bjam`` yourself, you may
- have selected a toolset name for that purpose, but that does not
- affect this step in any way; you still need to select a Boost.Build
- toolset from the table.
-
-.. _build directory:
-.. _build-directory:
-
-Select a Build Directory
-........................
-
-Boost.Build_ will place all intermediate files it generates while
-building into the **build directory**. If your Boost root
-directory is writable, this step isn't strictly necessary: by
-default Boost.Build will create a ``bin.v2/`` subdirectory for that
-purpose in your current working directory.
-
-Invoke ``bjam``
-...............
-
-.. |build-directory| replace:: *build-directory*
-.. |toolset-name| replace:: *toolset-name*
-
-Change your current directory to the Boost root directory and
-invoke ``bjam`` as follows:
-
-.. parsed-literal::
-
- bjam **--build-dir=**\ |build-directory|_ **\\**
- **--toolset=**\ |toolset-name|_ stage
-
-For example, on Windows, your session might look like:
-
-.. parsed-literal::
-
- C:\WINDOWS> cd |winroot-default|
- |winroot-default|> bjam **\\**
- **--build-dir=**\ %TEMP%\\build-boost **\\**
- **--toolset=msvc stage**
-
-And on Unix:
-
-.. parsed-literal::
-
- $ cd ~/|boost_ver|
- $ bjam **--build-dir=**\ ~/build-boost **--prefix=**\ ~/boost
-
-In either case, Boost.Build will place the Boost binaries in the
-``stage/`` subdirectory of your `build directory`_.
-
-.. Note:: ``bjam`` is case-sensitive; it is important that all the
- parts shown in **bold** type above be entirely lower-case.
-
-For a description of other options you can pass when invoking
-``bjam``, type::
-
- bjam --help
-
-Expected Build Output
----------------------
-
-During the process of building Boost libraries, you can expect to
-see some messages printed on the console. These may include
-
-* Notices about Boost library configuration—for example, the Regex
- library outputs a message about ICU when built without Unicode
- support, and the Python library may be skipped without error (but
- with a notice) if you don't have Python installed.
-
-* Messages from the build tool that report the number of targets
- that were built or skipped. Don't be surprised if those numbers
- don't make any sense to you; there are many targets per library.
-
-* Build action messages describing what the tool is doing, which
- look something like:
-
- .. parsed-literal::
-
- *toolset-name*.c++ *long*\ /\ *path*\ /\ *to*\ /\ *file*\ /\ *being*\ /\ *built*
-
-* Compiler warnings.
-
-In Case of Build Errors
------------------------
-
-The only error messages you see when building Boost—if any—should
-be related to the IOStreams library's support of zip and bzip2
-formats as described here__. Install the relevant development
-packages for libz and libbz2 if you need those features. Other
-errors when building Boost libraries are cause for concern.
-
-If it seems like the build system can't find your compiler and/or
-linker, consider setting up a ``user-config.jam`` file as described
-in the `Boost.Build documentation`_. If that isn't your problem or
-the ``user-config.jam`` file doesn't work for you, please address
-questions about configuring Boost for your compiler to the
-`Boost.Build mailing list`_.
-
-__ file:///home/dave/src/boost/libs/iostreams/doc/installation.html
-
-Link Your Program to a Boost Library
-====================================
-
-To demonstrate linking with a Boost binary library, we'll use the
-following simple program that extracts the subject lines from
-emails. It uses the Boost.Regex_ library, which has a
-separately-compiled binary component. ::
-
- #include <boost/regex.hpp>
- #include <iostream>
- #include <string>
-
- int main()
- {
- std::string line;
- boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
-
- while (std::cin)
- {
- std::getline(std::cin, line);
- boost::smatch matches;
- if (boost::regex_match(line, matches, pat))
- std::cout << matches[2] << std::endl;
- }
- }
-
-.. _Boost.Regex: ../libs/regex
-
-There are two main challenges associated with linking:
-
-1. Tool configuration, e.g. choosing command-line options or IDE
- build settings.
-
-2. Identifying the library binary, among all the build variants,
- whose compile configuration is compatible with the rest of your
- project.
-
-.. Note:: Boost.Python_ users should read that library's own `build
- documentation`__ as there are several library-specific issues to
- consider.
-
-.. _Boost.Python: ../libs/python/index.html
-__ ../libs/python/doc/building.html
-
-Link to a Boost Library on Windows
-----------------------------------
-
-.. _auto-linking:
-
-Most Windows compilers and linkers have so-called “auto-linking
-support,” which eliminates the second challenge. Special code in
-Boost header files detects your compiler options and uses that
-information to encode the name of the correct library into your
-object files; the linker selects the library with that name from
-the directories you've told it to search.
-
-Link to a Boost Library from the Visual Studio Command Prompt
-.............................................................
-
-For example, we can compile and link the above program from the
-Visual C++ command-line by simply adding the **bold** text below to
-the command line we used earlier, assuming your Boost binaries are
-in |winroot-default|\ ``\lib``:
-
-.. parsed-literal::
-
- cl /EHsc /I |winroot| example.cpp **\\**
- **/link /LIBPATH:** |bold-winroot-default|\ **\\lib**
-
-|next|__
-
-__ `Test Your Program`_
-
-Link to a Boost Library in the Visual Studio IDE
-................................................
-
-Starting with the `header-only example project`__ we created
-earlier:
-
-__ vs-header-only_
-
-1. Right-click **example** in the *Solution Explorer* pane and
- select *Properties* from the resulting pop-up menu
-2. In *Configuration Properties* > *Linker* > *Additional Library
- Directories*, enter the path to the Boost binaries,
- e.g. |winroot-default|\ ``\lib\``.
-3. From the *Build* menu, select *Build Solution*.
-
-|next|__
-
-__ `Test Your Program`_
-
-Link to a Boost Library On \*nix
---------------------------------
-
-There are two main ways to link to libraries:
-
-A. You can specify the full path to each library:
-
- .. parsed-literal::
-
- $ c++ -I |root| example.cpp -o example **\\**
- **~/boost/lib/libboost_regex-gcc-3.4-mt-d-1_34.a**
-
-B. You can separately specify a directory to search (with ``-L``\
- *directory*) and a library name to search for (with ``-l``\
- *library*, [#lowercase-l]_ dropping the filename's leading ``lib`` and trailing
- suffix (``.a`` in this case):
-
- .. parsed-literal::
-
- $ c++ -I |root| example.cpp -o example **\\**
- **-L~/boost/lib/ -lboost_regex-gcc-3.4-mt-d-1_34**
-
- As you can see, this method is just as terse as method A for one
- library; it *really* pays off when you're using multiple
- libraries from the same directory. Note, however, that if you
- use this method with a library that has both static (``.a``) and
- dynamic (``.so``) builds, the system may choose one
- automatically for you unless you pass a special option such as
- ``-static`` on the command line.
-
-In both cases above, the bold text is what you'd add to `the
-command lines we explored earlier`__.
-
-__ unix-header-only_
-
-Library Naming
---------------
-
-When auto-linking is not available, you need to know how Boost
-binaries are named so you can choose the right one for your build
-configuration. Each library filename is composed of a common
-sequence of elements that describe how it was built. For example,
-``libboost_regex-vc71-mt-d-1_34.lib`` can be broken down into the
-following elements:
-
-``lib``
- *Prefix*: except on Microsoft Windows, every Boost library
- name begins with this string. On Windows, only ordinary static
- libraries use the ``lib`` prefix; import libraries and DLLs do
- not. [#distinct]_
-
-``boost_regex``
- *Library name*: all boost library filenames begin with ``boost_``.
-
-``-vc71``
- *Toolset tag*: identifies the toolset and version used to build
- the binary.
-
-``-mt``
- *Threading tag*: indicates that the library was
- built with multithreading support enabled. Libraries built
- without multithreading support can be identified by the absence
- of ``-mt``.
-
-``-d``
- *ABI tag*: encodes details that affect the library's
- interoperability with other compiled code. For each such
- feature, a single letter is added to the tag:
-
- +-----+------------------------------------------------------------------------------+
- |Key |Use this library when: |
- +=====+==============================================================================+
- |``s``|linking statically to the C++ standard library and compiler runtime support |
- | |libraries. |
- +-----+------------------------------------------------------------------------------+
- |``g``|using debug versions of the standard and runtime support libraries. |
- +-----+------------------------------------------------------------------------------+
- |``y``|using a special `debug build of Python`__. |
- +-----+------------------------------------------------------------------------------+
- |``d``|building a debug version of your code. [#debug-abi]_ |
- +-----+------------------------------------------------------------------------------+
- |``p``|using the STLPort standard library rather than the default one supplied with |
- | |your compiler. |
- +-----+------------------------------------------------------------------------------+
- |``n``|using STLPort's deprecated “native iostreams” feature. [#native]_ |
- +-----+------------------------------------------------------------------------------+
-
- For example, if you build a debug version of your code for use
- with debug versions of the static runtime library and the
- STLPort standard library in “native iostreams” mode,
- the tag would be: ``-sgdpn``. If none of the above apply, the
- ABI tag is ommitted.
-
-``-1_34``
- *Version tag*: the full Boost release number, with periods
- replaced by underscores. For example, version 1.31.1 would be
- tagged as "-1_31_1".
-
-``.lib``
- *Extension*: determined according to the operating system's usual
- convention. On most \*nix platforms the extensions are ``.a``
- and ``.so`` for static libraries (archives) and shared libraries,
- respectively. On Windows, ``.dll`` indicates a shared library
- and—except for static libraries built by ``gcc`` toolset, whose
- names always end in ``.a``— ``.lib`` indicates a static or import
- library. Where supported by \*nix toolsets, a full version
- extension is added (e.g. ".so.1.34") and a symbolic link to the
- library file, named without the trailing version number, will
- also be created.
-
-.. _Boost.Build toolset names: toolset-name_
-
-__ ../libs/python/doc/building.html#variants
-
-Test Your Program
------------------
-
-To test our subject extraction, we'll filter the following text
-file. Copy it out of your browser and save it as ``jayne.txt``::
-
- To: George Shmidlap
- From: Rita Marlowe
- Subject: Will Success Spoil Rock Hunter?
- ---
- See subject.
-
-Test Your Program on Microsoft Windows
-......................................
-
-In a `command prompt`_ window, type:
-
-.. parsed-literal::
-
- *path*\ \\\ *to*\ \\\ *compiled*\ \\example < *path*\ \\\ *to*\ \\\ jayne.txt
-
-The program should respond with the email subject, “Will Success
-Spoil Rock Hunter?”
-
-Test Your Program on \*nix
-..........................
-
-If you linked to a shared library, you may need to prepare some
-platform-specific settings so that the system will be able to find
-and load it when your program is run. Most platforms have an
-environment variable to which you can add the directory containing
-the library. On many platforms (Linux, FreeBSD) that variable is
-``LD_LIBRARY_PATH``, but on MacOS it's ``DYLD_LIBRARY_PATH``, and
-on Cygwin it's simply ``PATH``. In most shells other than ``csh``
-and ``tcsh``, you can adjust the variable as follows (again, don't
-type the ``$``\ —that represents the shell prompt):
-
-.. parsed-literal::
-
- **$** *VARIABLE_NAME*\ =\ *path/to/lib/directory*\ :${\ *VARIABLE_NAME*\ }
- **$** export *VARIABLE_NAME*
-
-On ``csh`` and ``tcsh``, it's
-
-.. parsed-literal::
-
- **$** setenv *VARIABLE_NAME* *path/to/lib/directory*\ :${\ *VARIABLE_NAME*\ }
-
-Once the necessary variable (if any) is set, you can run your
-program as follows:
-
-.. parsed-literal::
-
- **$** *path*\ /\ *to*\ /\ *compiled*\ /\ example < *path*\ /\ *to*\ /\ jayne.txt
-
-The program should respond with the email subject, “Will Success
-Spoil Rock Hunter?”
-
-Conclusion and Further Resources
-================================
-
-This concludes your introduction to Boost and to integrating it
-with your programs. As you start using Boost in earnest, there are
-surely a few additional points you'll wish we had covered. One day
-we may have a “Book 2 in the Getting Started series” that addresses
-them. Until then, we suggest you pursue the following resources.
-If you can't find what you need, or there's anything we can do to
-make this document clearer, please post it to the `Boost Users'
-mailing list`_.
-
-* `Boost.Build reference manual`_
-* `Boost.Jam reference manual`_
-* `Boost Users' mailing list`_
-* `Boost.Build mailing list`_
-* `Boost.Build Wiki`_
-
-.. Admonition:: Onward
-
- .. epigraph::
-
- Good luck, and have fun!
-
- -- the Boost Developers
-
-.. _Boost.Build reference manual: ../tools/build/v2
-.. _Boost.Jam reference manual: `Boost.Jam`_
-.. _Boost Users' mailing list: mailing_lists.htm#users
-.. _Boost.Build Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build_V2
-.. _Boost.Build mailing list: mailing_lists.htm#jamboost
-
-
-.. _`Using command-line tools in Windows`:
-.. _`command prompt`:
-.. _`command-line tool`:
-
-Appendix: Using command-line tools in Windows
-=============================================
-
-In Windows, a command-line tool is invoked by typing its name,
-optionally followed by arguments, into a *Command Prompt* window
-and pressing the Return (or Enter) key.
-
-To open *Command Prompt*, click the *Start* menu button, click
-*Run*, type “cmd”, and then click OK.
-
-All commands are executed within the context of a **current
-directory** in the filesystem. To set the current directory,
-type:
-
-.. parsed-literal::
-
- cd *path*\ \\\ *to*\ \\\ *some*\ \\\ *directory*
-
-followed by Return. For example,
-
-.. parsed-literal::
-
- cd |winroot-default|
-
-One way to name a directory you know about is to write
-
-.. parsed-literal::
-
- %HOMEDRIVE%%HOMEPATH%\\\ *directory-name*
-
-which indicates a sibling folder of your “My Documents” folder.
-
-Long commands can be continued across several lines by typing
-backslashes at the ends of all but the last line. Many of the
-examples on this page use that technique to save horizontal
-space.
-
-------------------------------
-
-.. [#zip] If you prefer not to download executable programs, download
- |boost_ver|\ ``.zip`` and use an external tool to decompress
- it. We don't recommend using Windows' built-in decompression as
- it can be painfully slow for large archives.
-
-.. [#packagers] If developers of Boost packages would like to work
- with us to make sure these instructions can be used with their
- packages, we'd be glad to help. Please make your interest known
- to the `Boost developers' list`_.
-
-.. _Boost developers' list: mailing_lists.htm#main
-
-.. [#installer-src] If you used the `Windows installer`_ from Boost
- Consulting and deselected “Source and Documentation” (it's
- selected by default), you won't see the ``libs/`` subdirectory.
- That won't affect your ability to use precompiled binaries, but
- you won't be able to rebuild libraries from scratch.
-
-.. [#warnings] Remember that warnings are specific to each compiler
- implementation. The developer of a given Boost library might
- not have access to your compiler. Also, some warnings are
- extremely difficult to eliminate in generic code, to the point
- where it's not worth the trouble. Finally, some compilers don't
- have any source code mechanism for suppressing warnings.
-
-.. [#pch] There's no problem using Boost with precompiled headers;
- these instructions merely avoid precompiled headers because it
- would require Visual Studio-specific changes to the source code
- used in the examples.
-
-.. [#lowercase-l] That option is a dash followed by a lowercase “L”
- character, which looks very much like a numeral 1 in some fonts.
-
-.. [#distinct] This convention distinguishes the static version of
- a Boost library from the import library for an
- identically-configured Boost DLL, which would otherwise have the
- same name.
-
-.. [#debug-abi] These libraries were compiled without optimization
- or inlining, with full debug symbols enabled, and without
- ``NDEBUG`` ``#define``\ d. All though it's true that sometimes
- these choices don't affect binary compatibility with other
- compiled code, you can't count on that with Boost libraries.
-
-.. [#native] This feature of STLPort is deprecated because it's
- impossible to make it work transparently to the user; we don't
- recommend it.
-

Modified: branches/proto/v3/more/getting_started/detail/conclusion.rst
==============================================================================
--- branches/proto/v3/more/getting_started/detail/conclusion.rst (original)
+++ branches/proto/v3/more/getting_started/detail/conclusion.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -33,7 +33,7 @@
 
 .. _Boost.Build reference manual: ../../tools/build/v2/index.html
 .. _Boost.Jam reference manual: `Boost.Jam`_
-.. _Boost Users' mailing list: ../../more/mailing_lists.htm#users
+.. _Boost Users' mailing list: http://www.boost.org/more/mailing_lists.htm#users
 .. _Boost.Build Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build_V2
-.. _Boost.Build mailing list: ../../more/mailing_lists.htm#jamboost
+.. _Boost.Build mailing list: http://www.boost.org/more/mailing_lists.htm#jamboost
 

Modified: branches/proto/v3/more/getting_started/unix-variants.html
==============================================================================
--- branches/proto/v3/more/getting_started/unix-variants.html (original)
+++ branches/proto/v3/more/getting_started/unix-variants.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -490,7 +490,7 @@
 in the <a class="reference external" href="../../tools/build/index.html">Boost.Build documentation</a>. If that isn't your problem or
 the <tt class="docutils literal"><span class="pre">user-config.jam</span></tt> file doesn't work for you, please address
 questions about configuring Boost for your compiler to the
-<a class="reference external" href="../../more/mailing_lists.htm#jamboost">Boost.Build mailing list</a>.</p>
+<a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#jamboost">Boost.Build mailing list</a>.</p>
 <!-- Copyright David Abrahams 2006. Distributed under the Boost -->
 <!-- Software License, Version 1.0. (See accompanying -->
 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
@@ -695,13 +695,13 @@
 we may have a “Book 2 in the Getting Started series” that addresses
 them. Until then, we suggest you pursue the following resources.
 If you can't find what you need, or there's anything we can do to
-make this document clearer, please post it to the <a class="reference external" href="../../more/mailing_lists.htm#users">Boost Users'
+make this document clearer, please post it to the <a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#users">Boost Users'
 mailing list</a>.</p>
 <ul class="simple">
 <li><a class="reference external" href="../../tools/build/v2/index.html">Boost.Build reference manual</a></li>
 <li><a class="reference external" href="../../tools/jam/index.html">Boost.Jam reference manual</a></li>
-<li><a class="reference external" href="../../more/mailing_lists.htm#users">Boost Users' mailing list</a></li>
-<li><a class="reference external" href="../../more/mailing_lists.htm#jamboost">Boost.Build mailing list</a></li>
+<li><a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#users">Boost Users' mailing list</a></li>
+<li><a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#jamboost">Boost.Build mailing list</a></li>
 <li><a class="reference external" href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build_V2">Boost.Build Wiki</a></li>
 <li><a class="reference external" href="../../libs/index.html">Index of all Boost library documentation</a></li>
 </ul>
@@ -716,11 +716,10 @@
 <table class="docutils footnote" frame="void" id="packagers" rules="none">
 <colgroup><col class="label" /><col /></colgroup>
 <tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td><p class="first">If developers of Boost packages would like to work
+<tr><td class="label"><a class="fn-backref" href="#id2">[1]</a></td><td>If developers of Boost packages would like to work
 with us to make sure these instructions can be used with their
 packages, we'd be glad to help. Please make your interest known
-to the <a class="reference external" href="../../more/mailing_lists.htm#main">Boost developers' list</a>.</p>
-</td></tr>
+to the <a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#main">Boost developers' list</a>.</td></tr>
 </tbody>
 </table>
 <table class="docutils footnote" frame="void" id="lowercase-l" rules="none">

Modified: branches/proto/v3/more/getting_started/unix-variants.rst
==============================================================================
--- branches/proto/v3/more/getting_started/unix-variants.rst (original)
+++ branches/proto/v3/more/getting_started/unix-variants.rst 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -225,7 +225,7 @@
    packages, we'd be glad to help. Please make your interest known
    to the `Boost developers' list`_.
 
- .. _Boost developers' list: ../../more/mailing_lists.htm#main
+ .. _Boost developers' list: http://www.boost.org/more/mailing_lists.htm#main
 
 .. [#lowercase-l] That option is a dash followed by a lowercase “L”
    character, which looks very much like a numeral 1 in some fonts.

Modified: branches/proto/v3/more/getting_started/windows.html
==============================================================================
--- branches/proto/v3/more/getting_started/windows.html (original)
+++ branches/proto/v3/more/getting_started/windows.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -560,7 +560,7 @@
 in the <a class="reference external" href="../../tools/build/index.html">Boost.Build documentation</a>. If that isn't your problem or
 the <tt class="docutils literal"><span class="pre">user-config.jam</span></tt> file doesn't work for you, please address
 questions about configuring Boost for your compiler to the
-<a class="reference external" href="../../more/mailing_lists.htm#jamboost">Boost.Build mailing list</a>.</p>
+<a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#jamboost">Boost.Build mailing list</a>.</p>
 <span class="target" id="auto-linking"></span><!-- Copyright David Abrahams 2006. Distributed under the Boost -->
 <!-- Software License, Version 1.0. (See accompanying -->
 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
@@ -766,13 +766,13 @@
 we may have a “Book 2 in the Getting Started series” that addresses
 them. Until then, we suggest you pursue the following resources.
 If you can't find what you need, or there's anything we can do to
-make this document clearer, please post it to the <a class="reference external" href="../../more/mailing_lists.htm#users">Boost Users'
+make this document clearer, please post it to the <a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#users">Boost Users'
 mailing list</a>.</p>
 <ul class="simple">
 <li><a class="reference external" href="../../tools/build/v2/index.html">Boost.Build reference manual</a></li>
 <li><a class="reference external" href="../../tools/jam/index.html">Boost.Jam reference manual</a></li>
-<li><a class="reference external" href="../../more/mailing_lists.htm#users">Boost Users' mailing list</a></li>
-<li><a class="reference external" href="../../more/mailing_lists.htm#jamboost">Boost.Build mailing list</a></li>
+<li><a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#users">Boost Users' mailing list</a></li>
+<li><a class="reference external" href="http://www.boost.org/more/mailing_lists.htm#jamboost">Boost.Build mailing list</a></li>
 <li><a class="reference external" href="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost.Build_V2">Boost.Build Wiki</a></li>
 <li><a class="reference external" href="../../libs/index.html">Index of all Boost library documentation</a></li>
 </ul>

Deleted: branches/proto/v3/more/index.htm
==============================================================================
--- branches/proto/v3/more/index.htm 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,108 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <title>Boost More Information</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="ProgId" content="FrontPage.Editor.Document">
- <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
- </head>
- <body bgcolor="#ffffff" text="#000000">
- <table summary ="Navigational header"
- border="1" cellpadding="2" bgcolor="#007f7f">
- <tr>
- <td bgcolor="#ffffff">
- <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home</td>
- <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
- <td>More</td>
- </tr>
- </table>
- <h1>More Information</h1>
- <h2>Boost Policies</h2>
- <blockquote>
- <p>Mailing List Discussion Policy.&nbsp;
- What's acceptable and what isn't.</p>
- <p>Library Requirements and Guidelines.&nbsp;
- Basic standards for those preparing a submission.</p>
- <P><A href="separate_compilation.html"><STRONG>Guidelines for Libraries with Separate
- Source</STRONG></A>.&nbsp; Basic tutorial for libraries that require the
- building of a separate link library.</P>
- <p>Writing Documentation for Boost
- Basic guidelines for writing documentation and templates for quickly generating
- documentation that follows the guidelines.</p>
- <p>Test Policy and Protocols.&nbsp; How
- testing works at Boost.</p>
- <p>Library Submission Process.&nbsp;
- How to submit a library to Boost.</p>
- <p>Library Formal Review Process.
- Including how to submit a review comment.</p>
- <p>Header Policy.&nbsp; Headers are where a
- library contacts its users, so programming practices are particularly
- important.</p>
- <p>Library Reuse.&nbsp; Should Boost
- libraries use other boost libraries?&nbsp; What about the C++ Standard
- Library?&nbsp; It's another trade-off.</p>
- <p><b>Moderators</b>.&nbsp; Who they are and what
- they do.</p>
- </blockquote>
- <h2>Boost Whatever</h2>
- <blockquote>
- <p><b>License Information </b>&nbsp;Information
- about the Boost Software License.</p>
- <p><b>Bibliography </b>&nbsp;Print and online
- publications relating to Boost and Boost libraries.</p>
- <p><b>Who's Using Boost? </b>&nbsp;
- Products and organisations that are using Boost.</p>
- <p>Compiler Status&nbsp;&nbsp;Describes
- what library works with which compiler.</p>
- <p><b>Links</b>&nbsp; Links of special interest to Boost
- users.</p>
- <p><b>Formal Review Schedule</b>&nbsp;
- Future, current, and recently past Formal Reviews.</p>
- <p><b>Release Procedures</b>&nbsp; How
- developers and the release manager prepare for a Boost release.</p>
- <p><b>Updating the Website</b>&nbsp; How
- developers can update the Boost website between releases.</p>
- <p>Internal Regression Test Suite&nbsp;&nbsp;
- Describes the tool for generating the compiler status tables
- </p>
- <p><b>Proposal for a C++ Library Repository Web Site</b>&nbsp;
- The original 1998 proposal that launched Boost.</p>
- <p><b>How to report bugs</b>&nbsp; Ways to report Boost
- bugs.</p>
- <p><b>How to request features</b> Ways
- to request new library features.</p>
- <p><b><a href="boost_soc_06_overview.html">An overview of Boost participation in
- Google Summer of Code&trade; 2006</a></b> A report of our first experience
- in this open source initiative.</p>
- <p><b>Version History</b> Changes
- and additions in past Boost releases.</p>
- </blockquote>
- <h2>Articles and Papers</h2>
- <blockquote>
- <p>Portability Hints: Borland C++ 5.5.1 describes
- Borland C++ portability issues, with suggested workarounds.</p>
- <p>Portability Hints: Microsoft VC++ 6.0 SP4
- describes Microsoft C++ portability issues, with suggested workarounds.</p>
- <p><a href="int_const_guidelines.htm"><strong>Coding Guidelines for Integral Constant
- Expressions</strong></a> describes how to work through the maze of
- compiler related bugs surrounding this tricky topic.</p>
- </blockquote>
- <hr>
- <p>
- Revised
- <!--webbot bot="Timestamp" s-type="EDITED"
-s-format="%d %B, %Y" startspan -->10 May, 2005<!--webbot bot="Timestamp" endspan i-checksum="13987" --></p>
- <p>
- © Copyright Beman Dawes 2003.</p>
- <p>
- Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or copy
- at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)
- </p>
- </body>
-</html>
-

Modified: branches/proto/v3/status/Jamfile.v2
==============================================================================
--- branches/proto/v3/status/Jamfile.v2 (original)
+++ branches/proto/v3/status/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -87,6 +87,8 @@
 build-project ../libs/tuple/test ; # test-suite tuple
 build-project ../libs/type_traits/test ; # test-suite type_traits
 build-project ../libs/typeof/test ; # test-suite typeof
+build-project ../libs/unordered/test/unordered ; # test-suite unordered
+build-project ../libs/unordered/test/exception ; # test-suite unordered-exception
 build-project ../libs/utility/enable_if/test ; # test-suite utility/enable_if
 build-project ../libs/utility/test ; # test-suite utility
 build-project ../libs/variant/test ; # test-suite variant

Modified: branches/proto/v3/status/explicit-failures-markup.xml
==============================================================================
--- branches/proto/v3/status/explicit-failures-markup.xml (original)
+++ branches/proto/v3/status/explicit-failures-markup.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -37,6 +37,35 @@
 
     <!-- /////////////// Libraries /////////////// -->
 
+ <!-- accumulators -->
+ <library name="accumulators">
+ <mark-unusable>
+ <toolset name="sun-5.7"/>
+ <toolset name="sun-5.8"/>
+ <toolset name="sun-5.9"/>
+ <toolset name="borland-*"/>
+ </mark-unusable>
+ <mark-expected-failures>
+ <test name="tail_variate_means"/>
+ <test name="weighted_tail_variate_means"/>
+ <toolset name="gcc-4.2.1*"/>
+ <note author="Boris Gubenko" refid="42"/>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="weighted_kurtosis"/>
+ <toolset name="acc"/>
+ <note author="Boris Gubenko" refid="38"/>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="weighted_tail_variate_means"/>
+ <toolset name="hp_cxx-71*"/>
+ <note author="Markus Schoepflin">
+ This failure is caused by a timeout when compiling the test. It
+ passes when the timeout value is increased.
+ </note>
+ </mark-expected-failures>
+ </library>
+
     <!-- minmax -->
     <library name="algorithm/minmax">
       <mark-unusable>
@@ -137,6 +166,16 @@
             Boost.System library on which Boost.Asio depends.
         </note>
       </mark-unusable>
+ <mark-expected-failures>
+ <test name="read_until"/>
+ <test name="read_until_select"/>
+ <toolset name="gcc-4.2.1_hpux_ia64"/>
+ <note author="Boris Gubenko">
+ On HP-UX 11.23 platform, these tests must be compiled with
+ _XOPEN_SOURCE_EXTENDED macro defined. It is likely related
+ to CR JAGag28813.
+ </note>
+ </mark-expected-failures>
     </library>
 
     <!-- assign -->
@@ -1504,14 +1543,7 @@
         <mark-expected-failures>
             <test name="member_ccs"/>
             <test name="member_ccs_exact"/>
- <toolset name="acc*"/>
- <toolset name="darwin-4.0.1"/>
- <toolset name="gcc-*"/>
- <toolset name="hp_cxx*"/>
- <toolset name="intel*"/>
- <toolset name="msvc-*_64"/>
- <toolset name="msvc-*wm*"/>
- <toolset name="pathscale-*"/>
+ <toolset name="*"/>
             <note author="Tobias Schwinger">
               Not all compilers/platforms implement nonstandard calling conventions.
               <hr/>
@@ -1522,14 +1554,7 @@
         <mark-expected-failures>
             <test name="nonmember_ccs"/>
             <test name="nonmember_ccs_exact"/>
- <toolset name="acc*"/>
- <toolset name="darwin-4.0.1"/>
- <toolset name="gcc-*"/>
- <toolset name="hp_cxx*"/>
- <toolset name="intel*"/>
- <toolset name="msvc-*_64"/>
- <toolset name="msvc-*wm*"/>
- <toolset name="pathscale-*"/>
+ <toolset name="*"/>
             <note author="Tobias Schwinger">
               Not all compilers/platforms implement nonstandard calling conventions.
             </note>
@@ -1787,6 +1812,7 @@
             <toolset name="gcc-3.1*"/>
             <toolset name="gcc-3.2*"/>
             <toolset name="gcc-3.3*"/>
+ <toolset name="gcc-4.2.1_hpux_ia64"/>
             <toolset name="mipspro"/>
             <toolset name="acc*"/>
             <toolset name="msvc-8.0~wm5*"/>
@@ -1865,19 +1891,53 @@
 
     <!-- iostreams -->
     <library name="iostreams">
- <mark-unusable>
- <toolset name="sunpro-5_3-sunos"/>
- <toolset name="dmc-8_43-stlport-4_5_3"/>
- <note author="Jonathan Turkanis" refid="17"/>
- </mark-unusable>
         <mark-expected-failures>
- <!-- STLPort bug -->
+ <test name="auto_close_test"/>
+ <test name="component_access_test"/>
+ <test name="compose_test"/>
+ <test name="counter_test"/>
+ <test name="filtering_stream_test"/>
+ <test name="flush_test"/>
+ <test name="line_filter_test"/>
+ <test name="newline_test"/>
+ <test name="pipeline_test"/>
+ <test name="regex_filter_test"/>
+ <test name="restrict_test"/>
             <test name="seekable_file_test"/>
- <toolset name="borland-5.6*"/>
- <toolset name="iw-7_1-vc6-stlp-4_5_3"/>
+ <test name="seekable_filter_test"/>
+ <test name="sequence_test"/>
+ <test name="slice_test"/>
+ <test name="stdio_filter_test"/>
+ <test name="tee_test"/>
+ <test name="wide_stream_test"/>
+ <toolset name="sun-5.7"/>
+ <toolset name="sun-5.8"/>
+ <note author="Jonathan Turkanis" date="09 Jan 2008" refid="2"/>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="bzip2_test"/>
+ <toolset name="gcc-3.4.3_sunos"/>
+ <note author="Caleb Epstein">
+ No bzip2 support on the testing machine and no way to
+ disable this test with BBv2 at present.
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="bzip2_test"/>
+ <test name="file_descriptor_test"/>
+ <test name="mapped_file_test"/>
             <toolset name="*como-4_3_3*"/>
- <toolset name="*stlport"/>
- <note author="Jonathan Turkanis" refid="4"/>
+ <note author="Jonathan Turkanis">
+ compiler can't compile "windows.h" in strict mode
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="code_converter_test"/>
+ <toolset name="pgi-7.0"/>
+ <note author="Jonathan Turkanis">
+ This platform lacks the placement delete operator
+ required by the C++ standard
+ </note>
         </mark-expected-failures>
         <mark-expected-failures>
             <!-- Insufficient wide character support -->
@@ -1891,6 +1951,7 @@
             <toolset name="gcc-3.4.5_mingw"/>
             <toolset name="*cygwin*"/>
             <toolset name="gcc-3.3.6-osf1"/>
+ <toolset name="gcc-3.4.2_hpux_pa_risc"/>
             <note author="Jonathan Turkanis" refid="19"/>
         </mark-expected-failures>
         <mark-expected-failures>
@@ -1901,34 +1962,35 @@
             <note author="Jim Douglas" date="12 Feb 06" refid="36"/>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="bzip2_test"/>
- <test name="file_descriptor_test"/>
- <test name="mapped_file_test"/>
- <toolset name="*como-4_3_3*"/>
+ <test name="compose_test"/>
+ <toolset name="msvc-6.5_stlport4"/>
             <note author="Jonathan Turkanis">
- compiler can't compile "windows.h" in strict mode
+ These six tests pass individually but cause a compiler stack overflow
+ when compiled as a group
             </note>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="gzip_test"/>
- <test name="zlib_test"/>
- <toolset name="como-4_3_3-vc7_1"/>
- <note author="Jonathan Turkanis">
- The failure reflects a problem with the build system: the zlib
- object files are generated in the wrong directory.
+ <test name="compose_test"/>
+ <toolset name="gcc-3.4.6_linux_ia64"/>
+ <note author="Boris Gubenko">
+ On this platform, linking this test takes longer than 10 minutes
+ which is a time limit specified for bjam. When linked manually,
+ the test succeeds.
             </note>
         </mark-expected-failures>
- <mark-expected-failures>
- <test name="stdio_filter_test"/>
- <toolset name="*como-4_3_3*"/>
- <note author="Jonathan Turkanis" refid="0"/>
- </mark-expected-failures>
         <mark-expected-failures reason="?">
             <test name="direct_adapter_test"/>
             <test name="gzip_test"/>
             <toolset name="gcc-2.95.3-linux"/>
             <note author="Jonathan Turkanis" refid="29"/>
         </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="file_descriptor_test"/>
+ <toolset name="gcc-cygwin-3.4.4"/>
+ <note author="Vladimir Prus">
+ The test fails at runtime for unknown reasons.
+ </note>
+ </mark-expected-failures>
         <mark-expected-failures reason="?">
             <test name="file_descriptor_test"/>
             <toolset name="gcc-3_4_4-cygwin"/>
@@ -1942,17 +2004,28 @@
             <toolset name="msvc-6.5*"/>
             <toolset name="msvc-7.0"/>
             <toolset name="gcc-2.95.3*"/>
+ <toolset name="sun-5.*"/>
+ <toolset name="vacpp"/>
             <note author="Jonathan Turkanis" refid="2"/>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="finite_state_filter_test"/>
- <toolset name="cw-9.4"/>
- <note author="Jonathan Turkanis" date="20 Dec 06">
- I'm not sure whether CodeWarrior is correct to report that the member
- in question is inaccessible; however, when the member is made public
- an internal error occur that I have not been able to fix, so for
- now the question is moot.
- </note>
+ <test name="finite_state_filter_test"/>
+ <toolset name="cw-9.4"/>
+ <note author="Jonathan Turkanis" date="20 Dec 06">
+ I'm not sure whether CodeWarrior is correct to report that the member
+ in question is inaccessible; however, when the member is made public
+ an internal error occur that I have not been able to fix, so for
+ now the question is moot.
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="gzip_test"/>
+ <test name="zlib_test"/>
+ <toolset name="como-4_3_3-vc7_1"/>
+ <note author="Jonathan Turkanis">
+ The failure reflects a problem with the build system: the zlib
+ object files are generated in the wrong directory.
+ </note>
         </mark-expected-failures>
         <mark-expected-failures>
             <test name="mapped_file_test"/>
@@ -1962,37 +2035,80 @@
             </note>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="compose_test"/>
+ <test name="restrict_test"/>
+ <toolset name="vacpp"/>
+ <note author="Jonathan Turkanis" date="06 Jan 2008">
+ "restrict" is treated as a keyword on this platform (as in C99);
+ use the alias "slice" instead, defined in
+ "boost/iostreams/slice.hpp."
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <!-- STLPort bug -->
+ <test name="seekable_file_test"/>
             <toolset name="borland-5.6*"/>
- <note author="Jonathan Turkanis">
- Fails to compile on some installations but not others; may
- depend on which compiler updates have been installed
+ <toolset name="iw-7_1-vc6-stlp-4_5_3"/>
+ <toolset name="*como-4_3_3*"/>
+ <toolset name="sun-5.*"/>
+ <toolset name="*stlport"/>
+ <toolset name="pgi-7.0"/>
+ <note author="Jonathan Turkanis" refid="4"/>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="stdio_filter_test"/>
+ <toolset name="*como-4_3_3*"/>
+ <note author="Jonathan Turkanis" refid="0"/>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="stream_offset_64bit_test"/>
+ <toolset name="borland-*"/>
+ <note author="Jonathan Turkanis" date="04 Jan 2008">
+ In the Dinkumware standard library, streampos relies on fpos_t
+ to store stream offsets, but fpos_t is defined as a 32-bit
+ long by the Borland runtime library. In Borland's modified
+ version of STLPort, streampos relies on streamoff to store
+ stream offsets, but streamoff is defined to be a 32-bit long.
             </note>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="compose_test"/>
- <toolset name="msvc-6.5_stlport4"/>
- <note author="Jonathan Turkanis">
- These six tests pass individually but cause a compiler stack overflow
- when compiled as a group
+ <test name="stream_offset_64bit_test"/>
+ <toolset name="sun-5.*"/>
+ <note author="Jonathan Turkanis" date="06 Jan 2008">
+ In STLPort, streampos consists of a long together with a
+ conversion state; on this platform, long is a 32-bit type
             </note>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="bzip2_test"/>
- <toolset name="gcc-3.4.3_sunos"/>
- <note author="Caleb Epstein">
- No bzip2 support on the testing machine and no way to
- disable this test with BBv2 at present.
+ <test name="stream_offset_64bit_test"/>
+ <toolset name="vacpp*"/>
+ <note author="Jonathan Turkanis" date="09 Jan 2008">
+ On this platform, streampos is an alias for fpos, whose
+ implementation stores stream offsets using streamsize and
+ fpos_t; both of the latter types are 32-bit
             </note>
         </mark-expected-failures>
         <mark-expected-failures>
- <test name="file_descriptor_test"/>
- <toolset name="gcc-cygwin-3.4.4"/>
- <note author="Vladimir Prus">
- The test fails at runtime for unknown reasons.
+ <test name="stream_offset_64bit_test"/>
+ <toolset name="intel-win-10.0_stdcxx_421"/>
+ <toolset name="msvc-7.1_stdcxx_421"/>
+ <toolset name="msvc-9.0_stdcxx_421"/>
+ <toolset name="intel-win-10.1_stdcxx_421"/>
+ <toolset name="intel-linux-10.1_stdcxx_421"/>
+ <toolset name="gcc-4.2.1_stdcxx_421"/>
+ <note author="Jonathan Turkanis" date="09 Jan 2008">
+ On this platform, streampos is an alias for ptrdiff_t, which
+ is an alias for a 32-bit type
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
+ <test name="stream_offset_64bit_test"/>
+ <toolset name="gcc-4.2"/>
+ <note author="Jonathan Turkanis" date="09 Jan 2008">
+ The following applies only to gcc-4.2 using the stdcxx
+ standard library: On this platform, streampos is an alias for
+ ptrdiff_t, which is an alias for a 32-bit type
             </note>
         </mark-expected-failures>
-
     </library>
 
     <!-- lambda -->
@@ -4091,6 +4207,13 @@
                 were split into multiple source files.
                 </note>
             </mark-failure>
+ <mark-failure>
+ <toolset name="gcc-3.4.6_linux_ia64"/>
+ <note author="Boris Gubenko">
+ It looks like a compiler issue: the test fails with gcc 3.4.6
+ and succeeds with gcc 4.2.1.
+ </note>
+ </mark-failure>
         </test>
     </library>
 
@@ -4419,9 +4542,9 @@
             <toolset name="cw-9*"/>
             <toolset name="hp_cxx-71*"/>
             <toolset name="intel-linux-9.1"/>
- <toolset name="intel-linux-10.0"/>
+ <toolset name="intel-linux-10*"/>
             <toolset name="intel-darwin-9.1"/>
- <toolset name="intel-darwin-10.0"/>
+ <toolset name="intel-darwin-10*"/>
             <toolset name="vacpp-8.0"/>
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>
@@ -4453,8 +4576,7 @@
         </mark-expected-failures>
         <mark-expected-failures reason="?">
             <test name="DllTest*"/>
- <toolset name="intel-darwin-9.1"/>
- <toolset name="intel-darwin-10.0"/>
+ <toolset name="cygwin-gcc-stdcxx-4.2.1"/>
             <toolset name="msvc-8.0~wm5~stlport5.1"/>
             <note author="Andreas Huber" refid="29"/>
         </mark-expected-failures>

Modified: branches/proto/v3/tools/bcp/add_path.cpp
==============================================================================
--- branches/proto/v3/tools/bcp/add_path.cpp (original)
+++ branches/proto/v3/tools/bcp/add_path.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -40,11 +40,16 @@
 void bcp_implementation::add_directory(const fs::path& p)
 {
    //
- // don't add files created by build system
+ // Don't add files created by build system:
    //
    if((p.leaf() == "bin") || (p.leaf() == "bin-stage"))
       return;
    //
+ // Don't add version control directories:
+ //
+ if((p.leaf() == "CVS") || (p.leaf() == ".svn"))
+ return;
+ //
    // don't add directories not under version control:
    //
    if(m_cvs_mode && !fs::exists(m_boost_path / p / "CVS/Entries"))

Modified: branches/proto/v3/tools/bcp/index.html
==============================================================================
--- branches/proto/v3/tools/bcp/index.html (original)
+++ branches/proto/v3/tools/bcp/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
    </head>
    <body>
       <p>
- Automatic redirection failed, please go to
bcp.html.
+ Automatic redirection failed, please go to bcp.html.
       </p>
       <p>Copyright&nbsp;John Maddock 2007</p>
       <p>Distributed under the Boost Software License, Version 1.0. (See accompanying file <a href="../../LICENSE_1_0.txt">

Modified: branches/proto/v3/tools/bcp/scan_cvs_path.cpp
==============================================================================
--- branches/proto/v3/tools/bcp/scan_cvs_path.cpp (original)
+++ branches/proto/v3/tools/bcp/scan_cvs_path.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -136,9 +136,9 @@
                {
                   scan_svn_path(fpath); // recursion for directory entries
                }
- // else
- // std::cerr << "WARNING: unknown entry kind for entry " << name
- // << "in " << entries << std::endl;
+ // else
+ // std::cerr << "WARNING: unknown entry kind for entry " << name
+ // << "in " << entries << std::endl;
             }
          }
          ++i;

Modified: branches/proto/v3/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl
==============================================================================
--- branches/proto/v3/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl (original)
+++ branches/proto/v3/tools/boostbook/xsl/doxygen/doxygen2boostbook.xsl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -37,11 +37,14 @@
   <!-- The title that will be used for the BoostBook library reference emitted.
        If left blank, BoostBook will assign a default title. -->
   <xsl:param name="boost.doxygen.reftitle" select="''"/>
-
+
   <!-- The id used for the library-reference. By default, it is the normalized
        form of the reftitle. -->
   <xsl:param name="boost.doxygen.refid" select="''"/>
 
+ <!-- The directory into which png files corresponding to LaTeX formulas will be found. -->
+ <xsl:param name="boost.doxygen.formuladir" select="'images/'"/>
+
   <xsl:output method="xml" indent="no" standalone="yes"/>
 
   <xsl:key name="compounds-by-kind" match="compounddef" use="@kind"/>
@@ -1358,18 +1361,25 @@
   </xsl:template>
 
   <!--
- Eric Niebler: 4-4-2007
- Here is some half-baked support for LaTeX formulas in
+ Eric Niebler: Jan-8-2008
+ Here is some 3/4-baked support for LaTeX formulas in
   Doxygen comments. Doxygen doesn't generate the PNG files
   when outputting XML. In order to use this code, you must
   run Doxygen first to generate HTML (and the PNG files for
- the formulas), then copy the PNG files into the images/
- directory, and then build the docs with bjam. Commented
- out until something better comes along.
+ the formulas). You can do this in a Jamfile with
+ "doxygen foo.html : <sources, etc...> ; ", where the ".html"
+ is significant. Then the png files should be copied into the
+ images/ directory (or another place relative to the html/
+ directory, as specified by $boost.doxygen.formuladir XSL
+ parameter). This can be done with a custom action in a
+ Jamfile. Finally, the docs can be built as normal.
+ See libs/accumulators/doc/Jamfile.v2 for a working example.
+ -->
   <xsl:template match="formula" mode="passthrough">
     <xsl:choose>
       <xsl:when test="substring(*|text(), 1, 2) = '\['">
         <equation>
+ <title/>
           <alt>
             <xsl:value-of select="*|text()"/>
           </alt>
@@ -1377,7 +1387,7 @@
             <imageobject role="html">
               <imagedata format="PNG" align="center">
                 <xsl:attribute name="fileref">
- <xsl:value-of select="concat(concat('images/form_', @id), '.png')"/>
+ <xsl:value-of select="concat(concat(concat($boost.doxygen.formuladir, 'form_'), @id), '.png')"/>
                 </xsl:attribute>
               </imagedata>
             </imageobject>
@@ -1398,7 +1408,7 @@
             <imageobject role="html">
               <imagedata format="PNG">
                 <xsl:attribute name="fileref">
- <xsl:value-of select="concat(concat('images/form_', @id), '.png')"/>
+ <xsl:value-of select="concat(concat(concat($boost.doxygen.formuladir, 'form_'), @id), '.png')"/>
                 </xsl:attribute>
               </imagedata>
             </imageobject>
@@ -1412,6 +1422,4 @@
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>
- -->
  </xsl:stylesheet>
-
\ No newline at end of file

Modified: branches/proto/v3/tools/boostbook/xsl/navbar.xsl
==============================================================================
--- branches/proto/v3/tools/boostbook/xsl/navbar.xsl (original)
+++ branches/proto/v3/tools/boostbook/xsl/navbar.xsl 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -37,6 +37,7 @@
    <!-- location of the various Boost elements -->
 
    <xsl:param name = "boost.root" select = "'../..'"/>
+ <xsl:param name = "boost.website" select = "'http://www.boost.org'"/>
    <xsl:param name = "boost.image.src"
               select = "concat($boost.root, '/boost.png')"/>
    <xsl:param name = "boost.image.alt" select = "'Boost C++ Libraries'"/>
@@ -106,7 +107,7 @@
    <xsl:template name = "header.navdata-horiz">
       <xsl:variable name="home_link">
          <xsl:call-template name="href.target.relative">
- <xsl:with-param name="target" select="concat( $boost.root, '/index.htm' )"/>
+ <xsl:with-param name="target" select="concat( $boost.root, '/index.html' )"/>
          </xsl:call-template>
       </xsl:variable>
       <xsl:variable name="libraries_link">
@@ -116,12 +117,12 @@
       </xsl:variable>
       <xsl:variable name="people_link">
          <xsl:call-template name="href.target.relative">
- <xsl:with-param name="target" select="concat( $boost.root, '/people/people.htm' )"/>
+ <xsl:with-param name="target" select="concat( $boost.website, '/people/people.htm' )"/>
          </xsl:call-template>
       </xsl:variable>
       <xsl:variable name="faq_link">
          <xsl:call-template name="href.target.relative">
- <xsl:with-param name="target" select="concat( $boost.root, '/more/faq.htm' )"/>
+ <xsl:with-param name="target" select="concat( $boost.website, '/more/faq.htm' )"/>
          </xsl:call-template>
       </xsl:variable>
       <xsl:variable name="more_link">

Modified: branches/proto/v3/tools/build/v2/build-system.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build-system.jam (original)
+++ branches/proto/v3/tools/build/v2/build-system.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,717 +1,882 @@
-# Copyright 2003, 2005, 2007 Dave Abrahams
-# Copyright 2006, 2007 Rene Rivera
-# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# This file is part of Boost.Build version 2. You can think of it as
-# forming the main() routine. It is invoked by the bootstrapping code
-# in bootstrap.jam.
-#
-# The version of bootstrap.jam invoking this lives in
-# tools/build/kernel until BBv1 is retired, so that BBv1 can have its
-# bootstrap.jam in this directory.
+# Copyright 2003, 2005, 2007 Dave Abrahams
+# Copyright 2006, 2007 Rene Rivera
+# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-import project ;
-import targets ;
-import sequence ;
-import modules ;
-import feature ;
-import property-set ;
-import build-request ;
-import errors : error ;
-import virtual-target ;
-import "class" : new ;
-import toolset ;
-import regex ;
+# This file is part of Boost Build version 2. You can think of it as forming the
+# the main() routine. It is invoked by the bootstrapping code in bootstrap.jam.
 
+import build-request ;
 import builtin ;
+import "class" : new ;
+import errors ;
+import feature ;
 import make ;
+import modules ;
 import os ;
-
+import path ;
+import project ;
+import property-set ;
+import regex ;
+import sequence ;
+import targets ;
+import toolset ;
 import version ;
+import virtual-target ;
 
-# Returns the location of the build system. The primary use case
-# is building Boost, where it's sometimes needed to get location
-# of other components (like BoostBook files), and it's convenient
-# to use location relatively to Boost.Build path.
-rule location ( )
-{
- local r = [ modules.binding build-system ] ;
- return $(r:P) ;
-}
 
-# Returns the property set with the
-# free features from the currently processed
+################################################################################
+#
+# Module global data.
+#
+################################################################################
+
+# Shortcut used in this module for accessing used command-line parameters.
+.argv = [ modules.peek : ARGV ] ;
+
+# Flag indicating we should display additional debugging information related to
+# locating and loading Boost Build configuration files.
+.debug-config = [ MATCH ^(--debug-configuration)$ : $(.argv) ] ;
+
+# Legacy option doing too many things, some of which are not even documented.
+# Should be phased out.
+# * Disables loading site and user configuration files.
+# * Disables auto-configuration for toolsets specified explicitly on the
+# command-line.
+# * Causes --toolset command-line options to be ignored.
+# * Prevents the default toolset from being used even if no toolset has been
+# configured at all.
+.legacy-ignore-config = [ MATCH ^(--ignore-config)$ : $(.argv) ] ;
+
+# The cleaning is tricky. Say, if user says 'bjam --clean foo' where 'foo' is a
+# directory, then we want to clean targets which are in 'foo' as well as those
+# in any children Jamfiles under foo but not in any unrelated Jamfiles. To
+# achieve this we collect a list of projects under which cleaning is allowed.
+.project-targets = ;
+
+# Virtual targets obtained when building main targets references on the command
+# line. When running 'bjam --clean main_target' we want to clean only files
+# belonging to that main target so we need to record which targets are produced
+# for it.
+.results-of-main-targets = ;
+
+# Was an XML dump requested?
+.out-xml = [ MATCH ^--out-xml=(.*)$ : $(.argv) ] ;
+
+# Default toolset & version to be used in case no other toolset has been used
+# explicitly by either the loaded configuration files, the loaded project build
+# scripts or an explicit toolset request on the command line. If not specified,
+# an arbitrary default will be used based on the current host OS. This value,
+# while not strictly necessary, has been added to allow testing Boost-Build's
+# default toolset usage functionality.
+.default-toolset = ;
+.default-toolset-version = ;
+
+
+################################################################################
+#
+# Public rules.
+#
+################################################################################
+
+# Returns the property set with the free features from the currently processed
 # build request.
+#
 rule command-line-free-features ( )
 {
     return $(.command-line-free-features) ;
 }
 
 
+# Returns the location of the build system. The primary use case is building
+# Boost where it's sometimes needed to get the location of other components
+# (e.g. BoostBook files) and it's convenient to use locations relative to the
+# Boost Build path.
+#
+rule location ( )
+{
+ local r = [ modules.binding build-system ] ;
+ return $(r:P) ;
+}
 
-# Check if we can load 'test-config.jam'. If we can, load it and
-# ignore user configs.
 
-local argv = [ modules.peek : ARGV ] ;
+# Sets the default toolset & version to be used in case no other toolset has
+# been used explicitly by either the loaded configuration files, the loaded
+# project build scripts or an explicit toolset request on the command line. For
+# more detailed information see the comment related to used global variables.
+#
+rule set-default-toolset ( toolset : version ? )
+{
+ .default-toolset = $(toolset) ;
+ .default-toolset-version = $(version) ;
+}
 
-local test-config = [ GLOB [ os.environ BOOST_BUILD_PATH ] : test-config.jam ] ;
 
-local debug-config = [ MATCH ^(--debug-configuration)$ : [ modules.peek : ARGV ] ] ;
+################################################################################
+#
+# Local rules.
+#
+################################################################################
 
-if $(test-config)
+# Returns actual Jam targets to be used for executing a clean request.
+#
+local rule actual-clean-targets ( )
 {
- if $(debug-config)
- {
- ECHO "notice: loading test-config.jam from"
- [ NORMALIZE_PATH $(test-config[1]) ] ;
- ECHO "notice: user-config.jam and site-config.jam will be ignored" ;
- }
-
- module test-config
+ # Construct a list of projects explicitly detected as targets on this build
+ # system run. These are the projects under which cleaning is allowed.
+ for local t in $(targets)
     {
- import toolset : using : using ;
+ if [ class.is-a $(t) : project-target ]
+ {
+ .project-targets += [ $(t).project-module ] ;
+ }
     }
- import test-config ;
-}
 
-local ignore-config ;
-if $(test-config) || --ignore-config in [ modules.peek : ARGV ]
-{
- ignore-config = true ;
-}
+ # Construct a list of targets explicitly detected on this build system run
+ # as a result of building main targets.
+ local targets-to-clean ;
+ for local t in $(.results-of-main-targets)
+ {
+ # Don't include roots or sources.
+ targets-to-clean += [ virtual-target.traverse $(t) ] ;
+ }
+ targets-to-clean = [ sequence.unique $(targets-to-clean) ] ;
 
-local user-path = [ os.home-directories ] [ os.environ BOOST_BUILD_PATH ] ;
-
-# Unless ignore-config is set, load the configuration file in
-# $(path)/$(basename).jam
-local rule load-config ( basename : path + )
-{
- if ! $(ignore-config)
+ local to-clean ;
+ for local t in [ virtual-target.all-targets ]
     {
- if $(debug-config)
+ local p = [ $(t).project ] ;
+
+ # Remove only derived targets.
+ if [ $(t).action ]
         {
- ECHO notice: searching \"$(path)\" for \"$(basename).jam\" ;
- local where = [ GLOB $(path) : $(basename).jam ] ;
- if $(where)
- {
- ECHO notice: loading $(basename).jam from
- [ NORMALIZE_PATH $(where[1]) ] ;
- }
- }
+ if $(t) in $(targets-to-clean) ||
+ [ should-clean-project [ $(p).project-module ] ] = true
+ {
+ to-clean += $(t) ;
+ }
+ }
+ }
 
- modules.load $(basename) : : $(path) ;
- project.load-used-projects $(basename) ;
+ local to-clean-actual ;
+ for local t in $(to-clean)
+ {
+ to-clean-actual += [ $(t).actualize ] ;
     }
+ return $(to-clean-actual) ;
 }
 
+
+# Given a target id, try to find and return the corresponding target. This is
+# only invoked when there's no Jamfile in ".". This code somewhat duplicates
+# code in project-target.find but we can't reuse that code without a
+# project-targets instance.
 #
-# Load site-config.
+local rule find-target ( target-id )
+{
+ local split = [ MATCH (.*)//(.*) : $(target-id) ] ;
+
+ local pm ;
+ if $(split)
+ {
+ pm = [ project.find $(split[1]) : "." ] ;
+ }
+ else
+ {
+ pm = [ project.find $(target-id) : "." ] ;
+ }
+
+ local result ;
+ if $(pm)
+ {
+ result = [ project.target $(pm) ] ;
+ }
+
+ if $(split)
+ {
+ result = [ $(result).find $(split[2]) ] ;
+ }
+
+ return $(result) ;
+}
+
+
+# Initializes a new configuration module.
 #
-module site-config
+local rule initialize-config-module ( module-name )
 {
- import project : initialize ;
- initialize site-config ;
+ project.initialize $(module-name) ;
+ if USER_MODULE in [ RULENAMES ]
+ {
+ USER_MODULE $(module-name) ;
+ }
 }
 
-local site-path = /etc $(user-path) ;
 
-if [ os.name ] in NT CYGWIN
-{
- site-path = [ modules.peek : SystemRoot ] $(user-path) ;
+# Helper rule used to load configuration files. Loads the first configuration
+# file with the given 'filename' at 'path' into module with name 'module-name'.
+# Not finding the requested file may or may not be treated as an error depending
+# on the must-find parameter. Returns a normalized path to the loaded
+# configuration file or nothing if no file was loaded.
+#
+local rule load-config ( module-name : filename : path + : must-find ? )
+{
+ if $(.debug-config)
+ {
+ ECHO "notice: Searching" "$(path)" "for" "$(module-name)"
+ "configuration file" "$(filename)" "." ;
+ }
+ local where = [ GLOB $(path) : $(filename) ] ;
+ if $(where)
+ {
+ where = [ NORMALIZE_PATH $(where[1]) ] ;
+ if $(.debug-config)
+ {
+ ECHO "notice: Loading" "$(module-name)" "configuration file"
+ "$(filename)" "from" $(where) "." ;
+ }
+
+ modules.load $(module-name) : $(filename) : $(path) ;
+ project.load-used-projects $(module-name) ;
+ }
+ else
+ {
+ if ( must-find )
+ {
+ errors.user-error "Configuration file" "$(filename)" "not found in"
+ "$(path)" "." ;
+ }
+ if $(.debug-config)
+ {
+ ECHO "notice:" "Configuration file" "$(filename)" "not found in"
+ "$(path)" "." ;
+ }
+ }
+ return where ;
 }
 
-load-config site-config : $(site-path) ;
 
+# Loads all the configuration files used by Boost Build in the following order:
+#
+# -- test-config --
+# Loaded only if specified on the command-line using the --test-config
+# command-line parameter. It is ok for this file not to exist even if specified.
+# If this configuration file is loaded, regular site and user configuration
+# files will not be. If a relative path is specified, file is searched for in
+# the current folder.
 #
-# Load user-config.
+# -- site-config --
+# Always named site-config.jam. Will only be found if located on the system
+# root path (Windows), /etc (non-Windows), user's home folder or the Boost Build
+# path, in that order. Not loaded in case the test-config configuration file is
+# loaded or either the --ignore-site-config or the --ignore-config command-line
+# option is specified.
 #
-module user-config
+# -- user-config --
+# Named user-config.jam by default or may be named explicitly using the
+# --user-config command-line option or the BOOST_BUILD_USER_CONFIG environment
+# variable. If named explicitly the file is looked for from the current working
+# directory and if the default one is used then it is searched for in the
+# user's home directory and the Boost Build path, in that order. Not loaded in
+# case either the test-config configuration file is loaded, --ignore-config
+# command-line option is specified or an empty file name is explicitly
+# specified. If the file name has been given explicitly then the file must
+# exist.
+#
+# Test configurations have been added primarily for use by Boost Build's
+# internal unit testing system but may be used freely in other places as well.
+#
+local rule load-configuration-files
 {
- import project : initialize ;
- initialize user-config ;
-}
+ # Flag indicating that site configuration should not be loaded.
+ local ignore-site-config =
+ [ MATCH ^(--ignore-site-config)$ : $(.argv) ] ;
+
+ if $(.legacy-ignore-config) && $(.debug-config)
+ {
+ ECHO "notice: Regular site and user configuration files will be ignored" ;
+ ECHO "notice: due to the --ignore-config command-line option." ;
+ }
+
+ initialize-config-module test-config ;
+ local test-config = [ MATCH ^--test-config=(.*)$ : $(.argv) ] ;
+ if $(test-config)
+ {
+ local where =
+ [ load-config test-config : $(test-config:BS) : $(test-config:D) ] ;
+ if $(where)
+ {
+ if $(.debug-config) && ! $(.legacy-ignore-config)
+ {
+ ECHO "notice: Regular site and user configuration files will" ;
+ ECHO "notice: be ignored due to the test configuration being"
+ "loaded." ;
+ }
+ }
+ else
+ {
+ test-config = ;
+ }
+ }
 
-local user-config-path = [ MATCH ^--user-config=(.*) : $(argv) ] ;
+ local user-path = [ os.home-directories ] [ os.environ BOOST_BUILD_PATH ] ;
+ local site-path = /etc $(user-path) ;
+ if [ os.name ] in NT CYGWIN
+ {
+ site-path = [ modules.peek : SystemRoot ] $(user-path) ;
+ }
 
-user-config-path ?= [ os.environ BOOST_BUILD_USER_CONFIG ] ;
+ if $(ignore-site-config) && !$(.legacy-ignore-config)
+ {
+ ECHO "notice: Site configuration files will be ignored due to the" ;
+ ECHO "notice: --ignore-site-config command-line option." ;
+ }
 
-if $(user-config-path)
-{
- if $(debug-config)
+ initialize-config-module site-config ;
+ if ! $(test-config) && ! $(ignore-site-config) && ! $(.legacy-ignore-config)
     {
- ECHO "Loading explicitly specifier user configuration file:" ;
- ECHO " $(user-config-path)" ;
+ load-config site-config : site-config.jam : $(site-path) ;
+ }
+
+ initialize-config-module user-config ;
+ if ! $(test-config) && ! $(.legacy-ignore-config)
+ {
+ local user-config = [ MATCH ^--user-config=(.*)$ : $(.argv) ] ;
+ user-config = $(user-config[-1]) ;
+ user-config ?= [ os.environ BOOST_BUILD_USER_CONFIG ] ;
+ local explicitly-requested = $(user-config) ;
+ user-config ?= user-config.jam ;
+
+ if $(user-config)
+ {
+ if $(explicitly-requested)
+ {
+ # Treat explicitly entered user paths as native OS path
+ # references and, if non-absolute, root them at the current
+ # working directory.
+ user-config = [ path.make $(user-config) ] ;
+ user-config = [ path.root $(user-config) [ path.pwd ] ] ;
+ user-config = [ path.native $(user-config) ] ;
+
+ if $(.debug-config)
+ {
+ ECHO "notice: Loading explicitly specified user configuration file:" ;
+ ECHO " $(user-config)" ;
+ }
+
+ load-config user-config : $(user-config:BS) : $(user-config:D)
+ : must-exist ;
+ }
+ else
+ {
+ load-config user-config : $(user-config) : $(user-path) ;
+ }
+ }
+ else if $(.debug-config)
+ {
+ ECHO "notice: User configuration file loading explicitly disabled." ;
+ }
     }
-
-
- modules.load user-config : $(user-config-path:BS) : $(user-config-path:D) ;
- project.load-used-projects user-config ;
-}
-else
-{
- load-config user-config : $(user-path) ;
 }
 
 
-#
 # Autoconfigure toolsets based on any instances of --toolset=xx,yy,...zz or
-# toolset=xx,yy,...zz in the command line
+# toolset=xx,yy,...zz in the command line. May return additional properties to
+# be processed as if they had been specified by the user.
 #
-local option-toolsets = [ regex.split-list [ MATCH ^--toolset=(.*) : $(argv) ] : "," ] ;
-local feature-toolsets = [ regex.split-list [ MATCH ^toolset=(.*) : $(argv) ] : "," ] ;
+local rule process-explicit-toolset-requests
+{
+ local extra-properties ;
 
-# if the user specified --toolset=..., we need to add toolset=... to
-# the build request
-local extra-build-request ;
+ local option-toolsets = [ regex.split-list [ MATCH ^--toolset=(.*)$ : $(.argv) ] : "," ] ;
+ local feature-toolsets = [ regex.split-list [ MATCH ^toolset=(.*)$ : $(.argv) ] : "," ] ;
 
-if ! $(ignore-config)
-{
     for local t in $(option-toolsets) $(feature-toolsets)
     {
- # Parse toolset-version/properties
+ # Parse toolset-version/properties.
         local (t-v,t,v) = [ MATCH (([^-/]+)-?([^/]+)?)/?.* : $(t) ] ;
         local toolset-version = $((t-v,t,v)[1]) ;
         local toolset = $((t-v,t,v)[2]) ;
         local version = $((t-v,t,v)[3]) ;
 
- if $(debug-config)
+ if $(.debug-config)
         {
- ECHO notice: [cmdline-cfg] Detected command-line request for
- $(toolset-version): toolset= \"$(toolset)\" "version= \""$(version)\" ;
+ ECHO "notice: [cmdline-cfg] Detected command-line request for"
+ $(toolset-version): "toolset=" $(toolset) "version="
+ $(version) ;
         }
 
+ # If the toolset isn't known, configure it now.
         local known ;
-
- # if the toolset isn't known, configure it now.
         if $(toolset) in [ feature.values <toolset> ]
         {
             known = true ;
         }
-
- if $(known) && $(version)
- && ! [ feature.is-subvalue toolset : $(toolset) : version : $(version) ]
+ if $(known) && $(version) && ! [ feature.is-subvalue toolset
+ : $(toolset) : version : $(version) ]
         {
             known = ;
         }
 
         if ! $(known)
         {
- if $(debug-config)
+ if $(.debug-config)
             {
- ECHO notice: [cmdline-cfg] toolset $(toolset-version)
- not previously configured; configuring now ;
+ ECHO notice: [cmdline-cfg] toolset $(toolset-version) not
+ previously configured; attempting to auto-configure now ;
             }
             toolset.using $(toolset) : $(version) ;
         }
         else
         {
- if $(debug-config)
+ if $(.debug-config)
             {
- ECHO notice: [cmdline-cfg] toolset $(toolset-version) already configured ;
+ ECHO notice: [cmdline-cfg] toolset $(toolset-version) already
+ configured ;
             }
         }
 
- # make sure we get an appropriate property into the build request in
- # case the user used the "--toolset=..." form
- if ! $(t) in $(argv)
- && ! $(t) in $(feature-toolsets)
+ # Make sure we get an appropriate property into the build request in
+ # case toolset was specified using the "--toolset=..." command-line
+ # option form.
+ if ! $(t) in $(.argv) && ! $(t) in $(feature-toolsets)
         {
- if $(debug-config)
+ if $(.debug-config)
             {
                 ECHO notice: [cmdline-cfg] adding toolset=$(t) "to build request." ;
             }
- extra-build-request += toolset=$(t) ;
+ extra-properties += toolset=$(t) ;
         }
     }
-}
-
-if USER_MODULE in [ RULENAMES ]
-{
- USER_MODULE site-config user-config ;
-}
 
+ return $(extra-properties) ;
+}
 
 
-if --version in [ modules.peek : ARGV ]
+# Returns 'true' if the given 'project' is equal to or is a (possibly indirect)
+# child to any of the projects requested to be cleaned in this build system run.
+# Returns 'false' otherwise. Expects the .project-targets list to have already
+# been constructed.
+#
+local rule should-clean-project ( project )
 {
- version.print ;
- EXIT ;
-}
+ if ! $(.should-clean-project.$(project))
+ {
+ local r = false ;
+ if $(project) in $(.project-targets)
+ {
+ r = true ;
+ }
+ else
+ {
+ local parent = [ project.attribute $(project) parent-module ] ;
+ if $(parent) && $(parent) != user-config
+ {
+ r = [ should-clean-project $(parent) ] ;
+ }
+ }
+ .should-clean-project.$(project) = $(r) ;
+ }
 
+ return $(.should-clean-project.$(project)) ;
+}
 
 
-# We always load project in "." so that 'use-project' directives has
-# any chance of been seen. Otherwise, we won't be able to refer to
-# subprojects using target ids.
-if [ project.find "." : "." ]
-{
- current-project = [ project.target [ project.load "." ] ] ;
-}
+################################################################################
+#
+# main()
+# ------
+#
+################################################################################
 
-if ! [ feature.values <toolset> ]
 {
- local default-toolset = gcc ;
- if [ os.name ] = NT
+ if --version in $(.argv)
     {
- default-toolset = msvc ;
+ version.print ;
+ EXIT ;
     }
-
- ECHO "warning: No toolsets are configured." ;
- ECHO "warning: Configuring default toolset" \"$(default-toolset)\". ;
- ECHO "warning: If the default is wrong, you may not be able to build C++ programs." ;
- ECHO "warning: Use the \"--toolset=xxxxx\" option to override our guess." ;
- ECHO "warning: For more configuration options, please consult" ;
- ECHO "warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html" ;
 
-
- if ! $(ignore-config)
+
+ load-configuration-files ;
+
+ local extra-properties ;
+ # Note that this causes --toolset options to be ignored if --ignore-config
+ # is specified.
+ if ! $(.legacy-ignore-config)
     {
- toolset.using $(default-toolset) ;
+ extra-properties = [ process-explicit-toolset-requests ] ;
     }
-}
-
-build-request = [
- build-request.from-command-line [
- modules.peek : ARGV
- ] $(extra-build-request)
-] ;
 
-properties = [ $(build-request).get-at 2 ] ;
 
-if $(properties)
-{
- expanded = [ build-request.expand-no-defaults $(properties) ] ;
- local xexpanded ;
- for local e in $(expanded)
+ # We always load project in "." so that 'use-project' directives have any
+ # chance of being seen. Otherwise, we would not be able to refer to
+ # subprojects using target ids.
+ local current-project ;
+ if [ project.find "." : "." ]
     {
- xexpanded += [ property-set.create [ feature.split $(e) ] ] ;
+ current-project = [ project.target [ project.load "." ] ] ;
     }
- expanded = $(xexpanded) ;
-}
-else
-{
- expanded = [ property-set.empty ] ;
-}
 
 
+ # In case there are no toolsets currently defined makes the build run using
+ # the default toolset.
+ if ! $(.legacy-ignore-config) && ! [ feature.values <toolset> ]
+ {
+ local default-toolset = $(.default-toolset) ;
+ local default-toolset-version = ;
+ if $(default-toolset)
+ {
+ default-toolset-version = $(.default-toolset-version) ;
+ }
+ else
+ {
+ default-toolset = gcc ;
+ if [ os.name ] = NT
+ {
+ default-toolset = msvc ;
+ }
+ }
 
-local target-ids = [ $(build-request).get-at 1 ] ;
-local targets
-local clean ;
-
+ ECHO "warning: No toolsets are configured." ;
+ ECHO "warning: Configuring default toolset" \"$(default-toolset)\". ;
+ ECHO "warning: If the default is wrong, your build may not work correctly." ;
+ ECHO "warning: Use the \"--toolset=xxxxx\" option to override our guess." ;
+ ECHO "warning: For more configuration options, please consult" ;
+ ECHO "warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html" ;
 
-if "--clean-all" in [ modules.peek : ARGV ]
-{
- cleanall = true ;
-}
+ toolset.using $(default-toolset) : $(default-toolset-version) ;
+ }
 
-if "--clean" in [ modules.peek : ARGV ]
-{
- clean = true ;
-}
 
+ # Parse command line for targets and properties. Note that this requires
+ # that all project files already be loaded.
+ local build-request = [ build-request.from-command-line $(.argv)
+ $(extra-properties) ] ;
+ local target-ids = [ $(build-request).get-at 1 ] ;
+ local properties = [ $(build-request).get-at 2 ] ;
 
-local bjam-targets ;
 
-# Given a target it, try to find and return corresponding target.
-# This is only invoked when there's no Jamfile in "."
-# This code somewhat duplicates code in project-target.find but we can't reuse
-# that code without project-targets instance.
-rule find-target ( target-id )
-{
- local split = [ MATCH (.*)//(.*) : $(target-id) ] ;
-
- local pm ;
- if $(split)
+ # Expand properties specified on the command line into multiple property
+ # sets consisting of all legal property combinations. Each expanded property
+ # set will be used for a single build run. E.g. if multiple toolsets are
+ # specified then requested targets will be built with each of them.
+ if $(properties)
     {
- pm = [ project.find $(split[1]) : "." ] ;
+ expanded = [ build-request.expand-no-defaults $(properties) ] ;
+ local xexpanded ;
+ for local e in $(expanded)
+ {
+ xexpanded += [ property-set.create [ feature.split $(e) ] ] ;
+ }
+ expanded = $(xexpanded) ;
     }
     else
     {
- pm = [ project.find $(target-id) : "." ] ;
+ expanded = [ property-set.empty ] ;
     }
-
- local result ;
- if $(pm)
- {
- result = [ project.target $(pm) ] ;
- }
-
- if $(split)
- {
- result = [ $(result).find $(split[2]) ] ;
- }
-
- return $(result) ;
-}
-
 
 
-if ! $(current-project)
-{
- if ! $(target-ids)
- {
- ECHO "error: no Jamfile in current directory found, and no target references specified." ;
+ # Check that we actually found something to build.
+ if ! $(current-project) && ! $(target-ids)
+ {
+ errors.user-error "error: no Jamfile in current directory found, and no"
+ "target references specified." ;
         EXIT ;
     }
-}
 
 
-for local id in $(target-ids)
-{
- if $(id) = clean
+ # Flags indicating that this build system run has been started in order to
+ # clean existing instead of create new targets. Note that these are not the
+ # final flag values as they may get changed later on due to some special
+ # targets being specified on the command line.
+ local clean ; if "--clean" in $(.argv) { clean = true ; }
+ local cleanall ; if "--clean-all" in $(.argv) { cleanall = true ; }
+
+
+ # List of Boost Build meta-targets and actual raw Jam targets directly
+ # requested by the user. Raw Jam targets are used when user's request
+ # contains a reference to a specific file not modeled using a main Boost
+ # Build target.
+ local targets ;
+ local bjam-targets ;
+
+
+ # Process each target specified on the command-line and convert it into
+ # internal Boost Build target objects. Detect special clean target. If no
+ # main Boost Build targets were explictly requested use the current project
+ # as the target.
+ for local id in $(target-ids)
     {
- clean = true ;
- }
- else
- {
- local t ;
- if $(current-project)
+ if $(id) = clean
         {
- t = [ $(current-project).find $(id) : no-error ] ;
+ clean = true ;
         }
         else
         {
- t = [ find-target $(id) ] ;
- }
-
- if ! $(t)
- {
- ECHO "notice: could not find main target " $(id) ;
- ECHO "notice: assuming it's a name of file to create " ;
- bjam-targets += $(id) ;
- }
- else
- {
- targets += $(t) ;
- }
- }
-}
-
-if ! $(targets)
-{
- targets += [ project.target [ project.module-name "." ] ] ;
-}
-
-virtual-targets = ;
-
-# Virtual targets obtained when building main targets references on
-# the command line. When running
-#
-# bjam --clean main_target
-#
-# we want to clean the files that belong only to that main target,
-# so we need to record which targets are produced.
-local results-of-main-targets ;
-
-for local p in $(expanded)
-{
- .command-line-free-features = [ property-set.create [ $(p).free ] ] ;
- for local t in $(targets)
- {
- local g = [ $(t).generate $(p) ] ;
- if ! [ class.is-a $(t) : project-target ]
- {
- results-of-main-targets += $(g[2-]) ;
- }
- virtual-targets += $(g[2-]) ;
- }
-}
-
-# The cleaning is tricky. Say, if
-# user says:
-#
-# bjam --clean foo
-#
-# where 'foo' is a directory, then we want to clean targets
-# which are in 'foo' or in any children Jamfiles, but not in any
-# unrelated Jamfiles. So, we collect the list of project under which
-# cleaning is allowed.
-#
+ local t ;
+ if $(current-project)
+ {
+ t = [ $(current-project).find $(id) : no-error ] ;
+ }
+ else
+ {
+ t = [ find-target $(id) ] ;
+ }
 
-local projects-to-clean ;
-local targets-to-clean ;
-if $(clean) || $(clean-all)
-{
- for local t in $(targets)
- {
- if [ class.is-a $(t) : project-target ]
- {
- projects-to-clean += [ $(t).project-module ] ;
- }
+ if ! $(t)
+ {
+ ECHO "notice: could not find main target" $(id) ;
+ ECHO "notice: assuming it's a name of file to create." ;
+ bjam-targets += $(id) ;
+ }
+ else
+ {
+ targets += $(t) ;
+ }
+ }
     }
-
- local subvariants ;
- for local t in $(results-of-main-targets)
+ if ! $(targets)
     {
- # Don't include roots or sources.
- targets-to-clean += [ virtual-target.traverse $(t) ] ;
+ targets += [ project.target [ project.module-name "." ] ] ;
     }
- targets-to-clean = [ sequence.unique $(targets-to-clean) ] ;
-}
 
-# Returns 'true' if 'project' is a child of 'current-project',
-# possibly indirect, or is equal to 'project'.
-# Returns 'false' otherwise.
-rule is-child ( project )
-{
- if ! $(.is-child.$(project))
+
+ # List of all virtual-targets created in this build system run.
+ local virtual-targets ;
+
+
+ # Now that we have a set of targets to build and a set of property sets to
+ # build the targets with, we can start the main build process by using each
+ # property set to generate virtual targets from all of our listed targets
+ # and any of their dependants.
+ for local p in $(expanded)
     {
- local r = false ;
- if $(project) in $(projects-to-clean)
- {
- r = true ;
- }
- else
+ .command-line-free-features = [ property-set.create [ $(p).free ] ] ;
+ for local t in $(targets)
         {
- local parent = [ project.attribute $(project) parent-module ] ;
- if $(parent) && $(parent) != user-config
+ local g = [ $(t).generate $(p) ] ;
+ if ! [ class.is-a $(t) : project-target ]
             {
- r = [ is-child $(parent) ] ;
- }
- }
-
- .is-child.$(project) = $(r) ;
+ .results-of-main-targets += $(g[2-]) ;
+ }
+ virtual-targets += $(g[2-]) ;
+ }
     }
-
- return $(.is-child.$(project)) ;
-}
 
 
+ # List of all Jam targets constructed in this build system run.
+ local actual-targets ;
 
 
-actual-targets = ;
-for t in $(virtual-targets)
-{
- actual-targets += [ $(t).actualize ] ;
-}
-
-# Was an XML dump requested?
-.out-xml = [ MATCH --out-xml=(.*) : [ modules.peek : ARGV ] ] ;
-if $(.out-xml)
-{
- # Get the qualified name of a virtual target.
- rule full-target-name ( t )
+ # Convert all collected virtual targets into actual raw Jam targets.
+ for t in $(virtual-targets)
     {
- local name = [ $(t).name ] ;
- local project = [ $(t).project ] ;
- local project-path = [ $(project).get location ] ;
- return $(project-path)//$(name) ;
+ actual-targets += [ $(t).actualize ] ;
     }
-
- # Generate an XML file containing build statistics for each
- # constituent
- rule out-xml ( xml-file : constituents * )
+
+
+ # If XML data output has been requested prepare additional rules and targets
+ # so we can hook into Jam to collect build data while its building and have
+ # it trigger the final XML report generation after all the planned targets
+ # have been built.
+ if $(.out-xml)
     {
- # Prepare valid XML header and footer with some basic info
- local nl = "
+ # Get a qualified virtual target name.
+ rule full-target-name ( target )
+ {
+ local name = [ $(target).name ] ;
+ local project = [ $(target).project ] ;
+ local project-path = [ $(project).get location ] ;
+ return $(project-path)//$(name) ;
+ }
+
+ # Generate an XML file containing build statistics for each constituent.
+ #
+ rule out-xml ( xml-file : constituents * )
+ {
+ # Prepare valid XML header and footer with some basic info.
+ local nl = "
 " ;
- local jam = [ version.jam ] ;
- local os = [ modules.peek : OS OSPLAT JAMUNAME ] "" ;
- local timestamp = [ modules.peek : JAMDATE ] ;
- local cwd = [ PWD ] ;
- local command = [ modules.peek : ARGV ] ;
- local bb-version = [ version.boost-build ] ;
- .header on $(xml-file) =
- "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
- "$(nl)<build format=\"1.0\" version=\"$(bb-version)\">"
- "$(nl) <jam version=\"$(jam:J=.)\" />"
- "$(nl) <os name=\"$(os[1])\" platform=\"$(os[2])\"><![CDATA[$(os[3-]:J= )]]></os>"
- "$(nl) <timestamp><![CDATA[$(timestamp)]]></timestamp>"
- "$(nl) <directory><![CDATA[$(cwd)]]></directory>"
- "$(nl) <command><![CDATA[\"$(command:J=\" \")\"]]></command>"
- ;
- .footer on $(xml-file) =
- "$(nl)</build>" ;
- # Generate target dependency graph
- .contents on $(xml-file) +=
- "$(nl) <targets>"
- ;
+ local jam = [ version.jam ] ;
+ local os = [ modules.peek : OS OSPLAT JAMUNAME ] "" ;
+ local timestamp = [ modules.peek : JAMDATE ] ;
+ local cwd = [ PWD ] ;
+ local command = $(.argv) ;
+ local bb-version = [ version.boost-build ] ;
+ .header on $(xml-file) =
+ "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "$(nl)<build format=\"1.0\" version=\"$(bb-version)\">"
+ "$(nl) <jam version=\"$(jam:J=.)\" />"
+ "$(nl) <os name=\"$(os[1])\" platform=\"$(os[2])\"><![CDATA[$(os[3-]:J= )]]></os>"
+ "$(nl) <timestamp><![CDATA[$(timestamp)]]></timestamp>"
+ "$(nl) <directory><![CDATA[$(cwd)]]></directory>"
+ "$(nl) <command><![CDATA[\"$(command:J=\" \")\"]]></command>"
+ ;
+ .footer on $(xml-file) =
+ "$(nl)</build>" ;
 
- for local t in [ virtual-target.all-targets ]
+ # Generate the target dependency graph.
+ .contents on $(xml-file) +=
+ "$(nl) <targets>" ;
+ for local t in [ virtual-target.all-targets ]
+ {
+ local action = [ $(t).action ] ;
+ if $(action)
+ # If a target has no action, it has no dependencies.
+ {
+ local name = [ full-target-name $(t) ] ;
+ local sources = [ $(action).sources ] ;
+ local dependencies ;
+ for local s in $(sources)
+ {
+ dependencies += [ full-target-name $(s) ] ;
+ }
+
+ local path = [ $(t).path ] ;
+ local jam-target = [ $(t).actual-name ] ;
+
+ .contents on $(xml-file) +=
+ "$(nl) <target>"
+ "$(nl) <name><![CDATA[$(name)]]></name>"
+ "$(nl) <dependencies>"
+ "$(nl) <dependency><![CDATA[$(dependencies)]]></dependency>"
+ "$(nl) </dependencies>"
+ "$(nl) <path><![CDATA[$(path)]]></path>"
+ "$(nl) <jam-target><![CDATA[$(jam-target)]]></jam-target>"
+ "$(nl) </target>"
+ ;
+ }
+ }
+ .contents on $(xml-file) +=
+ "$(nl) </targets>" ;
+
+ # Build $(xml-file) after $(constituents). Do so even if a
+ # constituent action fails and regenerate the xml on every bjam run.
+ INCLUDES $(xml-file) : $(constituents) ;
+ ALWAYS $(xml-file) ;
+ __ACTION_RULE__ on $(xml-file) = build-system.out-xml.generate-action ;
+ out-xml.generate $(xml-file) ;
+ }
+
+ # The actual build actions are here; if we did this work in the actions
+ # clause we would have to form a valid command line containing the
+ # result of @(...) below (the name of the XML file).
+ #
+ rule out-xml.generate-action ( args * : xml-file
+ : command status start end user system : output ? )
+ {
+ local contents =
+ [ on $(xml-file) return $(.header) $(.contents) $(.footer) ] ;
+ local f = @($(xml-file):E=$(contents)) ;
+ }
+
+ # Nothing to do here; the *real* actions happen in
+ # out-xml.generate-action.
+ actions quietly out-xml.generate { }
+
+ # Define the out-xml file target, which depends on all the targets so
+ # that it runs the collection after the targets have run.
+ out-xml $(.out-xml) : $(actual-targets) ;
+
+ # Set up a global __ACTION_RULE__ that records all the available
+ # statistics about each actual target in a variable "on" the --out-xml
+ # target.
+ #
+ rule out-xml.collect ( xml-file : target : command status start end user
+ system : output ? )
         {
- local action = [ $(t).action ] ;
+ local nl = "
+" ;
+ # Open the action with some basic info.
+ .contents on $(xml-file) +=
+ "$(nl) <action status=\"$(status)\" start=\"$(start)\" end=\"$(end)\" user=\"$(user)\" system=\"$(system)\">" ;
+
+ # If we have an action object we can print out more detailed info.
+ local action = [ on $(target) return $(.action) ] ;
             if $(action)
             {
- # If a target has no action, it has
- # no dependencies.
+ local action-name = [ $(action).action-name ] ;
+ local action-sources = [ $(action).sources ] ;
+ local action-props = [ $(action).properties ] ;
 
- local name = [ full-target-name $(t) ] ;
- local sources = [ $(action).sources ] ;
- local dependencies ;
- for local s in $(sources)
+ # The qualified name of the action which we created the target.
+ .contents on $(xml-file) +=
+ "$(nl) <name><![CDATA[$(action-name)]]></name>" ;
+
+ # The sources that made up the target.
+ .contents on $(xml-file) +=
+ "$(nl) <sources>" ;
+ for local source in $(action-sources)
                 {
- dependencies += [ full-target-name $(s) ] ;
+ local source-actual = [ $(source).actual-name ] ;
+ .contents on $(xml-file) +=
+ "$(nl) <source><![CDATA[$(source-actual)]]></source>" ;
                 }
+ .contents on $(xml-file) +=
+ "$(nl) </sources>" ;
 
- local path = [ $(t).path ] ;
- local jam-target = [ $(t).actual-name ] ;
-
+ # The properties that define the conditions under which the
+ # target was built.
                 .contents on $(xml-file) +=
- "$(nl) <target>"
- "$(nl) <name><![CDATA[$(name)]]></name>"
- "$(nl) <dependencies>"
- "$(nl) <dependency><![CDATA[$(dependencies)]]></dependency>"
- "$(nl) </dependencies>"
- "$(nl) <path><![CDATA[$(path)]]></path>"
- "$(nl) <jam-target><![CDATA[$(jam-target)]]></jam-target>"
- "$(nl) </target>"
- ;
- }
- }
- .contents on $(xml-file) +=
- "$(nl) </targets>"
- ;
-
- # Build $(xml-file) after $(constituents) and do so even if a
- # constituent action fails, and regenerate the xml on every bjam run.
- INCLUDES $(xml-file) : $(constituents) ;
- ALWAYS $(xml-file) ;
- __ACTION_RULE__ on $(xml-file) =
- build-system.out-xml.generate-action ;
- out-xml.generate $(xml-file) ;
- }
-
- # The actual build actions are here; if we did this work in the
- # actions clause we would have to form a valid command line
- # containing the result of @(...) below (the name of the XML file).
- rule out-xml.generate-action (
- args * : xml-file :
- command status start end user system : output ? )
- {
- local contents =
- [ on $(xml-file) return $(.header) $(.contents) $(.footer) ] ;
- local f = @($(xml-file):E=$(contents)) ;
- }
-
- # Nothing to do here; the *real* actions happen in
- # out-xml.generate-action
- actions quietly out-xml.generate { }
-
- # Define the out-xml file target, which depends on all the targets
- # so that it runs the collection after the targets have run.
- out-xml $(.out-xml) : $(actual-targets) ;
-
- # Set up a global __ACTION_RULE__ that records all the available
- # statistics about each actual target in a variable "on" the
- # --out-xml target.
- rule out-xml.collect (
- xml-file : target :
- command status start end user system : output ? )
- {
- local nl = "
-" ;
- # Open the action with some basic info.
- .contents on $(xml-file) +=
- "$(nl) <action status=\"$(status)\" start=\"$(start)\" end=\"$(end)\" user=\"$(user)\" system=\"$(system)\">"
- ;
-
- # If we have an action object we can print out more detailed info.
- local action = [ on $(target) return $(.action) ] ;
- if $(action)
- {
- local action-name = [ $(action).action-name ] ;
- local action-sources = [ $(action).sources ] ;
- local action-props = [ $(action).properties ] ;
-
- # The qualified name of the action which we created the target.
- .contents on $(xml-file) +=
- "$(nl) <name><![CDATA[$(action-name)]]></name>"
- ;
-
- # The sources that made up the target.
- .contents on $(xml-file) +=
- "$(nl) <sources>"
- ;
- for local source in $(action-sources)
- {
- local source-actual = [ $(source).actual-name ] ;
+ "$(nl) <properties>" ;
+ for local prop in [ $(action-props).raw ]
+ {
+ local prop-name = [ MATCH ^<(.*)>$ : $(prop:G) ] ;
+ .contents on $(xml-file) +=
+ "$(nl) <property name=\"$(prop-name)\"><![CDATA[$(prop:G=)]]></property>" ;
+ }
                 .contents on $(xml-file) +=
- "$(nl) <source><![CDATA[$(source-actual)]]></source>"
- ;
+ "$(nl) </properties>" ;
             }
+
+ local locate = [ on $(target) return $(LOCATE) ] ;
+ locate ?= "" ;
             .contents on $(xml-file) +=
- "$(nl) </sources>"
- ;
-
- # The properties that define the conditions under which the
- # target was built.
+ "$(nl) <jam-target><![CDATA[$(target)]]></jam-target>"
+ "$(nl) <path><![CDATA[$(target:G=:R=$(locate))]]></path>"
+ "$(nl) <command><![CDATA[$(command)]]></command>"
+ "$(nl) <output><![CDATA[$(output)]]></output>" ;
             .contents on $(xml-file) +=
- "$(nl) <properties>"
- ;
- for local prop in [ $(action-props).raw ]
- {
- local prop-name = [ MATCH ^<(.*)>$ : $(prop:G) ] ;
- .contents on $(xml-file) +=
- "$(nl) <property name=\"$(prop-name)\"><![CDATA[$(prop:G=)]]></property>"
- ;
- }
- .contents on $(xml-file) +=
- "$(nl) </properties>"
- ;
+ "$(nl) </action>" ;
         }
-
- local locate = [ on $(target) return $(LOCATE) ] ;
- locate ?= "" ;
- .contents on $(xml-file) +=
- "$(nl) <jam-target><![CDATA[$(target)]]></jam-target>"
- "$(nl) <path><![CDATA[$(target:G=:R=$(locate))]]></path>"
- "$(nl) <command><![CDATA[$(command)]]></command>"
- "$(nl) <output><![CDATA[$(output)]]></output>"
- ;
- .contents on $(xml-file) +=
- "$(nl) </action>"
- ;
- }
 
- # When no __ACTION_RULE__ is set "on" a target, the search falls
- # back to the global module
- module
- {
- __ACTION_RULE__ = build-system.out-xml.collect
- [ modules.peek build-system : .out-xml ] ;
+ # When no __ACTION_RULE__ is set "on" a target, the search falls back to
+ # the global module.
+ module
+ {
+ __ACTION_RULE__ = build-system.out-xml.collect
+ [ modules.peek build-system : .out-xml ] ;
+ }
     }
-}
 
-NOTFILE all ;
-DEPENDS all : $(actual-targets) ;
 
-if $(bjam-targets)
-{
- UPDATE $(bjam-targets:G=e) $(.out-xml) ;
-}
-else if $(cleanall)
-{
- UPDATE clean-all ;
-}
-else if $(clean)
-{
- local to-clean ;
- for local t in [ virtual-target.all-targets ]
- {
- local p = [ $(t).project ] ;
+ # TODO: See if this 'NOTFILE all' statement can be moved below to the
+ # default case where the 'all' target is actually requested to be built.
+ # Check for other Jam scripts manually setting a dependency for this target.
+ NOTFILE all ;
 
- # Remove only derived targets.
- if [ $(t).action ]
- {
- if $(t) in $(targets-to-clean)
- || [ is-child [ $(p).project-module ] ] = true
- {
- to-clean += $(t) ;
- }
- }
+
+ # And now that all the actual raw Jam targets and all the dependencies
+ # between them have been prepared (or we have everything set so we can
+ # easily prepare them) all that is left is to tell Jam to update those
+ # targets.
+ if $(bjam-targets)
+ {
+ UPDATE $(bjam-targets:G=e) $(.out-xml) ;
     }
- local to-clean-actual ;
- for local t in $(to-clean)
+ else if $(cleanall)
     {
- to-clean-actual += [ $(t).actualize ] ;
+ UPDATE clean-all ;
+ }
+ else if $(clean)
+ {
+ common.Clean clean : [ actual-clean-targets ] ;
+ UPDATE clean ;
+ }
+ else
+ {
+ DEPENDS all : $(actual-targets) ;
+ UPDATE all $(.out-xml) ;
     }
- common.Clean clean : $(to-clean-actual) ;
- UPDATE clean ;
-}
-else
-{
- UPDATE all $(.out-xml) ;
 }

Modified: branches/proto/v3/tools/build/v2/build/alias.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/alias.jam (original)
+++ branches/proto/v3/tools/build/v2/build/alias.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,69 +1,69 @@
-# Copyright 2003, 2004, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003, 2004, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-# This module defines the 'alias' rule and associated class.
+# This module defines the 'alias' rule and the associated target class.
 #
-# Alias is just a main target which returns its source targets without any
-# processing. For example::
+# Alias is just a main target which returns its source targets without any
+# processing. For example:
 #
 # alias bin : hello test_hello ;
 # alias lib : helpers xml_parser ;
 #
-# Another important use of 'alias' is to conveniently group source files::
+# Another important use of 'alias' is to conveniently group source files:
 #
 # alias platform-src : win.cpp : <os>NT ;
 # alias platform-src : linux.cpp : <os>LINUX ;
 # exe main : main.cpp platform-src ;
-#
+#
 # Lastly, it's possible to create local alias for some target, with different
 # properties::
 #
 # alias big_lib : : @/external_project/big_lib/<link>static ;
 #
 
-import targets ;
+
 import "class" : new ;
-import errors : error ;
 import project ;
 import property-set ;
+import targets ;
+
 
-class alias-target-class : basic-target
+class alias-target-class : basic-target
 {
- rule __init__ ( name : project : sources * : requirements *
+ rule __init__ ( name : project : sources * : requirements *
         : default-build * : usage-requirements * )
     {
- basic-target.__init__ $(name) : $(project) : $(sources) : $(requirements)
- : $(default-build) : $(usage-requirements) ;
+ basic-target.__init__ $(name) : $(project) : $(sources) : $(requirements)
+ : $(default-build) : $(usage-requirements) ;
     }
-
+
     rule construct ( name : source-targets * : property-set )
     {
         return [ property-set.empty ] $(source-targets) ;
- }
-
- rule compute-usage-requirements ( subvariant )
+ }
+
+ rule compute-usage-requirements ( subvariant )
     {
         local base = [ basic-target.compute-usage-requirements $(subvariant) ] ;
         # Add source's usage requirement. If we don't do this, "alias" does not
         # look like 100% alias.
         return [ $(base).add [ $(subvariant).sources-usage-requirements ] ] ;
     }
-
 }
 
 # Declares the 'alias' target. It will build sources, and return them unaltered.
 rule alias ( name : sources * : requirements * : default-build * : usage-requirements * )
 {
     local project = [ project.current ] ;
-
+
     targets.main-target-alternative
- [ new alias-target-class $(name) : $(project)
- : [ targets.main-target-sources $(sources) : $(name) : no-renaming ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
- : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
- ] ;
+ [ new alias-target-class $(name) : $(project)
+ : [ targets.main-target-sources $(sources) : $(name) : no-renaming ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
+ ] ;
 }
 
 IMPORT $(__name__) : alias : : alias ;

Modified: branches/proto/v3/tools/build/v2/build/build-request.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/build-request.jam (original)
+++ branches/proto/v3/tools/build/v2/build/build-request.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,16 +2,16 @@
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
+import "class" : new ;
 import sequence ;
 import set ;
 import regex ;
 import feature ;
 import property ;
-import numbers ;
 import container ;
-import "class" : new ;
 import string ;
 
+
 # Transform property-set by applying f to each component property.
 local rule apply-to-property-set ( f property-set )
 {
@@ -19,22 +19,25 @@
     return [ string.join [ $(f) $(properties) ] : / ] ;
 }
 
-# expand the given build request by combining all property-sets which don't
-# specify conflicting non-free features.
+
+# Expand the given build request by combining all property-sets which don't
+# specify conflicting non-free features. Expects all the project files to
+# already be loaded.
 rule expand-no-defaults ( property-sets * )
 {
- # First make all features and subfeatures explicit
- local expanded-property-sets = [
- sequence.transform apply-to-property-set feature.expand-subfeatures
- : $(property-sets) ] ;
-
+ # First make all features and subfeatures explicit.
+ local expanded-property-sets = [ sequence.transform apply-to-property-set
+ feature.expand-subfeatures : $(property-sets) ] ;
+
     # Now combine all of the expanded property-sets
     local product = [ x-product $(expanded-property-sets) : $(feature-space) ] ;
-
+
     return $(product) ;
 }
 
-# implementaiton of x-product, below
+
+# Implementation of x-product, below. Expects all the project files to already
+# be loaded.
 local rule x-product-aux ( property-sets + )
 {
     local result ;
@@ -46,58 +49,60 @@
     {
         local x-product-seen ;
         {
- # don't mix in any conflicting features
+ # Don't mix in any conflicting features.
             local x-product-used = $(x-product-used) $(f) ;
-
+
             if $(property-sets[2])
             {
                 local rest = [ x-product-aux $(property-sets[2-]) : $(feature-space) ] ;
                 result = $(property-sets[1])/$(rest) ;
             }
-
+
             result ?= $(property-sets[1]) ;
         }
-
- # If we didn't encounter a conflicting feature lower down,
- # don't recurse again.
+
+ # If we didn't encounter a conflicting feature lower down, don't recurse
+ # again.
         if ! [ set.intersection $(f) : $(x-product-seen) ]
         {
             property-sets = ;
         }
-
+
         seen = $(x-product-seen) ;
     }
-
+
     if $(property-sets[2])
     {
         result += [ x-product-aux $(property-sets[2-]) : $(feature-space) ] ;
     }
-
- # Note that we've seen these features so that higher levels will
- # recurse again without them set.
+
+ # Note that we've seen these features so that higher levels will recurse
+ # again without them set.
     x-product-seen += $(f) $(seen) ;
     return $(result) ;
 }
 
-# Return the cross-product of all elements of property-sets, less any
-# that would contain conflicting values for single-valued features.
+
+# Return the cross-product of all elements of property-sets, less any that would
+# contain conflicting values for single-valued features. Expects all the project
+# files to already be loaded.
 local rule x-product ( property-sets * )
 {
     if $(property-sets).non-empty
     {
- # prepare some "scoped globals" that can be used by the
- # implementation function, x-product-aux.
+ # Prepare some "scoped globals" that can be used by the implementation
+ # function, x-product-aux.
         local x-product-seen x-product-used ;
         return [ x-product-aux $(property-sets) : $(feature-space) ] ;
     }
- # otherwise return empty
+ # Otherwise return empty.
 }
 
-# Returns true if 'v' is either implicit value, or
-# the part before the first '-' symbol is implicit value
+
+# Returns true if either 'v' or the part of 'v' before the first '-' symbol is
+# an implicit value. Expects all the project files to already be loaded.
 local rule looks-like-implicit-value ( v )
 {
-
     if [ feature.is-implicit-value $(v) ]
     {
         return true ;
@@ -108,16 +113,16 @@
         if [ feature.is-implicit-value $(split[1]) ]
         {
             return true ;
- }
+ }
     }
 }
 
 
-# Takes the command line tokens (such as taken from ARGV rule) and constructs
-# build request from it.
-# Returns a vector of two vectors (where "vector" means container.jam's "vector").
-# First is the set of targets specified in the command line, and second is
-# the set of requested build properties.
+# Takes the command line tokens (such as taken from the ARGV rule) and
+# constructs a build request from them. Returns a vector of two vectors (where
+# "vector" means container.jam's "vector"). First is the set of targets
+# specified in the command line, and second is the set of requested build
+# properties. Expects all the project files to already be loaded.
 rule from-command-line ( command-line * )
 {
     local targets ;
@@ -131,15 +136,16 @@
         {
             skip-next = ;
         }
- else if ! [ MATCH "^(-).*" : $(e) ]
+ else if ! [ MATCH "^(-).*" : $(e) ]
         {
- # Build request spec either has "=" in it, or completely
- # consists of implicit feature values.
+ # Build request spec either has "=" in it or completely consists of
+ # implicit feature values.
             local fs = feature-space ;
- if [ MATCH "(.*=.*)" : $(e) ]
- || [ looks-like-implicit-value $(e:D=) : $(feature-space) ]
+ if [ MATCH "(.*=.*)" : $(e) ]
+ || [ looks-like-implicit-value $(e:D=) : $(feature-space) ]
             {
- properties += [ convert-command-line-element $(e) : $(feature-space) ] ;
+ properties += [ convert-command-line-element $(e)
+ : $(feature-space) ] ;
             }
             else
             {
@@ -151,24 +157,27 @@
             skip-next = true ;
         }
     }
- return [ new vector [ new vector $(targets) ] [ new vector $(properties) ] ] ;
+ return [ new vector
+ [ new vector $(targets) ]
+ [ new vector $(properties) ] ] ;
 }
 
-# Converts one element of command line build request specification into
-# internal form.
+
+# Converts one element of command line build request specification into internal
+# form. Expects all the project files to already be loaded.
 local rule convert-command-line-element ( e )
 {
     local result ;
     local parts = [ regex.split $(e) "/" ] ;
- for local p in $(parts)
+ for local p in $(parts)
     {
         local m = [ MATCH "([^=]*)=(.*)" : $(p) ] ;
         local lresult ;
- if $(m)
+ if $(m)
         {
             local feature = $(m[1]) ;
- local values = [ regex.split $(m[2]) "," ] ;
- lresult = <$(feature)>$(values) ;
+ local values = [ regex.split $(m[2]) "," ] ;
+ lresult = <$(feature)>$(values) ;
         }
         else
         {
@@ -176,17 +185,16 @@
         }
 
         if ! [ MATCH (.*-.*) : $(p) ]
- {
- # property.validate cannot handle subfeatures,
- # so we avoid the check here.
+ {
+ # property.validate cannot handle subfeatures, so we avoid the check
+ # here.
             for local p in $(lresult)
             {
                 property.validate $(p) : $(feature-space) ;
             }
         }
-
 
- if ! $(result)
+ if ! $(result)
         {
             result = $(lresult) ;
         }
@@ -194,17 +202,19 @@
         {
             result = $(result)/$(lresult) ;
         }
- }
-
+ }
+
     return $(result) ;
 }
 
+
 rule __test__ ( )
 {
- import assert feature ;
-
+ import assert ;
+ import feature ;
+
     feature.prepare-test build-request-test-temp ;
-
+
     import build-request ;
     import build-request : expand-no-defaults : build-request.expand-no-defaults ;
     import errors : try catch ;
@@ -222,56 +232,45 @@
 
     feature runtime-link : dynamic static : symmetric ;
 
- # empty build requests should expand to empty.
+ # Empty build requests should expand to empty.
     assert.result
- : build-request.expand-no-defaults
- ;
+ : build-request.expand-no-defaults ;
 
     assert.result
- <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug
- <toolset>msvc/<stdlib>stlport/<variant>debug
- <toolset>msvc/<variant>debug
-
- : build-request.expand-no-defaults gcc-3.0.1/stlport msvc/stlport msvc debug
- ;
+ <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug
+ <toolset>msvc/<stdlib>stlport/<variant>debug
+ <toolset>msvc/<variant>debug
+ : build-request.expand-no-defaults gcc-3.0.1/stlport msvc/stlport msvc debug ;
 
     assert.result
- <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug
- <toolset>msvc/<variant>debug
- <variant>debug/<toolset>msvc/<stdlib>stlport
-
- : build-request.expand-no-defaults gcc-3.0.1/stlport msvc debug msvc/stlport
- ;
+ <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug
+ <toolset>msvc/<variant>debug
+ <variant>debug/<toolset>msvc/<stdlib>stlport
+ : build-request.expand-no-defaults gcc-3.0.1/stlport msvc debug msvc/stlport ;
 
     assert.result
- <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug/<inlining>off
- <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>release/<inlining>off
-
- : build-request.expand-no-defaults gcc-3.0.1/stlport debug release <inlining>off
- ;
+ <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug/<inlining>off
+ <toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>release/<inlining>off
+ : build-request.expand-no-defaults gcc-3.0.1/stlport debug release <inlining>off ;
 
     assert.result
- <include>a/b/c/<toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug/<include>x/y/z
- <include>a/b/c/<toolset>msvc/<stdlib>stlport/<variant>debug/<include>x/y/z
- <include>a/b/c/<toolset>msvc/<variant>debug/<include>x/y/z
-
- : build-request.expand-no-defaults <include>a/b/c gcc-3.0.1/stlport msvc/stlport msvc debug <include>x/y/z
- ;
+ <include>a/b/c/<toolset>gcc/<toolset-gcc:version>3.0.1/<stdlib>stlport/<variant>debug/<include>x/y/z
+ <include>a/b/c/<toolset>msvc/<stdlib>stlport/<variant>debug/<include>x/y/z
+ <include>a/b/c/<toolset>msvc/<variant>debug/<include>x/y/z
+ : build-request.expand-no-defaults <include>a/b/c gcc-3.0.1/stlport msvc/stlport msvc debug <include>x/y/z ;
 
     local r ;
 
- r = [ build-request.from-command-line bjam debug runtime-link=dynamic ] ;
+ r = [ build-request.from-command-line bjam debug runtime-link=dynamic ] ;
     assert.equal [ $(r).get-at 1 ] : ;
     assert.equal [ $(r).get-at 2 ] : debug <runtime-link>dynamic ;
 
     try ;
     {
-
         build-request.from-command-line bjam gcc/debug runtime-link=dynamic/static ;
     }
     catch \"static\" is not a value of an implicit feature ;
 
-
     r = [ build-request.from-command-line bjam -d2 --debug debug target runtime-link=dynamic ] ;
     assert.equal [ $(r).get-at 1 ] : target ;
     assert.equal [ $(r).get-at 2 ] : debug <runtime-link>dynamic ;
@@ -282,13 +281,13 @@
 
     r = [ build-request.from-command-line bjam debug gcc/runtime-link=dynamic,static ] ;
     assert.equal [ $(r).get-at 1 ] : ;
- assert.equal [ $(r).get-at 2 ] : debug gcc/<runtime-link>dynamic
- gcc/<runtime-link>static ;
+ assert.equal [ $(r).get-at 2 ] : debug gcc/<runtime-link>dynamic
+ gcc/<runtime-link>static ;
 
     r = [ build-request.from-command-line bjam msvc gcc,borland/runtime-link=static ] ;
     assert.equal [ $(r).get-at 1 ] : ;
- assert.equal [ $(r).get-at 2 ] : msvc gcc/<runtime-link>static
- borland/<runtime-link>static ;
+ assert.equal [ $(r).get-at 2 ] : msvc gcc/<runtime-link>static
+ borland/<runtime-link>static ;
 
     r = [ build-request.from-command-line bjam gcc-3.0 ] ;
     assert.equal [ $(r).get-at 1 ] : ;
@@ -296,5 +295,3 @@
 
     feature.finish-test build-request-test-temp ;
 }
-
-

Modified: branches/proto/v3/tools/build/v2/build/feature.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/feature.jam (original)
+++ branches/proto/v3/tools/build/v2/build/feature.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,52 +1,53 @@
-# Copyright 2001, 2002, 2003 Dave Abrahams
-# Copyright 2002, 2006 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2001, 2002, 2003 Dave Abrahams
+# Copyright 2002, 2006 Rene Rivera
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
+import assert : * ;
 import "class" : * ;
-
-import errors : error lol->list ;
-import sequence ;
+import errors : lol->list ;
+import indirect ;
+import modules ;
 import regex ;
+import sequence ;
 import set ;
 import utility ;
-import modules indirect ;
-import assert : * ;
+
 
 local rule setup ( )
 {
     .all-attributes =
-
- implicit
- executed
- composite
- optional
- symmetric
- free
- incidental
- path
- dependency
- propagated
- link-incompatible
- subfeature
- order-sensitive
- ;
+ implicit
+ executed
+ composite
+ optional
+ symmetric
+ free
+ incidental
+ path
+ dependency
+ propagated
+ link-incompatible
+ subfeature
+ order-sensitive
+ ;
 
     .all-features = ;
- .all-subfeatures = ; # non-subfeatures
- .all-top-features = ; # non-subfeatures
+ .all-subfeatures = ;
+ .all-top-features = ; # non-subfeatures
     .all-implicit-values = ;
 }
 setup ;
 
-# prepare a fresh space to test in by moving all global variable
-# settings into the given temporary module and erasing them here.
+
+# Prepare a fresh space to test in by moving all global variable settings into
+# the given temporary module and erasing them here.
 rule prepare-test ( temp-module )
 {
     DELETE_MODULE $(temp-module) ;
-
- # transfer globals to temp-module
+
+ # Transfer globals to temp-module.
     for local v in [ VARNAMES feature ]
     {
         if [ MATCH (\\.) : $(v) ]
@@ -58,11 +59,12 @@
     setup ;
 }
 
-# clear out all global variables and recover all variables from the
-# given temporary module
+
+# Clear out all global variables and recover all variables from the given
+# temporary module.
 rule finish-test ( temp-module )
 {
- # clear globals
+ # Clear globals.
     for local v in [ VARNAMES feature ]
     {
         if [ MATCH (\\.) : $(v) ]
@@ -70,7 +72,7 @@
             $(v) = ;
         }
     }
-
+
     for local v in [ VARNAMES $(temp-module) ]
     {
         $(v) = [ modules.peek $(temp-module) : $(v) ] ;
@@ -79,33 +81,31 @@
 }
 
 
-# Transform features by bracketing any elements which aren't already
-# bracketed by "<>"
+# Transform features by bracketing any elements which aren't already bracketed
+# by "<>".
 local rule grist ( features * )
 {
     local empty = "" ;
- local r = $(empty:G=$(features)) ;
- return $(r) ;
+ return $(empty:G=$(features)) ;
 }
 
-empty = "" ;
 
-# declare a new feature with the given name, values, and attributes.
-rule feature (
- name # feature name
- : values * # the allowable values - may be extended later with feature.extend
- : attributes * # The feature's attributes (e.g. implicit, free, propagated...)
+# Declare a new feature with the given name, values, and attributes.
+rule feature (
+ name # Feature name.
+ : values * # Allowable values - may be extended later using feature.extend.
+ : attributes * # Feature attributes (e.g. implicit, free, propagated...).
 )
 {
     name = [ grist $(name) ] ;
 
     local error ;
 
- # if there are any unknown attributes...
+ # Check for any unknown attributes.
     if ! ( $(attributes) in $(.all-attributes) )
     {
         error = unknown attributes:
- [ set.difference $(attributes) : $(.all-attributes) ] ;
+ [ set.difference $(attributes) : $(.all-attributes) ] ;
     }
     else if $(name) in $(.all-features)
     {
@@ -116,16 +116,15 @@
         error = free features cannot also be implicit ;
     }
     else if free in $(attributes) && propagated in $(attributes)
- {
+ {
         error = free features cannot be propagated ;
- }
-
+ }
 
     if $(error)
     {
- error $(error)
- : "in" feature declaration:
- : feature [ lol->list $(1) : $(2) : $(3) ] ;
+ errors.error $(error)
+ : "in" feature declaration:
+ : feature [ lol->list $(1) : $(2) : $(3) ] ;
     }
 
     $(name).values ?= ;
@@ -142,24 +141,24 @@
     {
         .all-top-features += $(name) ;
     }
- extend $(name) : $(values) ;
+ extend $(name) : $(values) ;
 }
 
-# set default value of the given feature, overriding any previous
-# default.
+
+# Sets the default value of the given feature, overriding any previous default.
 rule set-default ( feature : value )
 {
     local f = [ grist $(feature) ] ;
- if ! $(value) in $($(f).values)
+ if ! $(value) in $($(f).values)
     {
- errors.error "The specified default value, '$(value)' is invalid"
+ errors.error "The specified default value, '$(value)' is invalid"
           : "allowed values are: " $($(f).values) ;
- }
+ }
     $(f).default = $(value) ;
 }
 
 
-# return the default property values for the given features.
+# Returns the default property values for the given features.
 rule defaults ( features * )
 {
     local result ;
@@ -178,7 +177,8 @@
     return $(result) ;
 }
 
-# returns true iff all elements of names are valid features.
+
+# Returns true iff all 'names' elements are valid features.
 rule valid ( names + )
 {
     if $(names) in $(.all-features)
@@ -187,31 +187,33 @@
     }
 }
 
-# return the attibutes of the given feature
+
+# Returns the attibutes of the given feature.
 rule attributes ( feature )
 {
     return $($(:E=:G=$(feature)).attributes) ;
 }
 
-# return the values of the given feature
+
+# Returns the values of the given feature.
 rule values ( feature )
 {
     return $($(:E=:G=$(feature)).values) ;
 }
 
-# returns true iff 'value-string' is a value-string of an implicit feature
+
+# Returns true iff 'value-string' is a value-string of an implicit feature.
 rule is-implicit-value ( value-string )
 {
     local v = [ regex.split $(value-string) - ] ;
     local failed ;
- if ! $(v[1]) in $(.all-implicit-values)
+ if ! $(v[1]) in $(.all-implicit-values)
     {
         failed = true ;
     }
- else
+ else
     {
         local feature = $($(v[1]).implicit-feature) ;
-
         for local subvalue in $(v[2-])
         {
             if ! [ find-implied-subfeature $(feature) $(subvalue) : $(v[1]) ]
@@ -220,82 +222,87 @@
             }
         }
     }
-
- if ! $(failed)
+
+ if ! $(failed)
     {
         return true ;
     }
 }
 
-# return the implicit feature associated with the given implicit value.
+
+# Returns the implicit feature associated with the given implicit value.
 rule implied-feature ( implicit-value )
 {
     local components = [ regex.split $(implicit-value) "-" ] ;
-
+
     local feature = $($(components[1]).implicit-feature) ;
     if ! $(feature)
     {
- error \"$(implicit-value)\" is not a value of an implicit feature ;
- feature = "" ; # keep testing happy; it expects a result.
+ errors.error \"$(implicit-value)\" is not a value of an implicit feature ;
+ feature = "" ; # Keep testing happy; it expects a result.
     }
     return $(feature) ;
 }
 
+
 local rule find-implied-subfeature ( feature subvalue : value-string ? )
 {
- # feature should be of the form <feature-name>
+ # Feature should be of the form <feature-name>.
     if $(feature) != $(feature:G)
     {
- error invalid feature $(feature) ;
+ errors.error invalid feature $(feature) ;
     }
 
     return $($(feature)$(value-string:E="")<>$(subvalue).subfeature) ;
 }
 
-# Given a feature and a value of one of its subfeatures, find the name
-# of the subfeature. If value-string is supplied, looks for implied
-# subfeatures that are specific to that value of feature
-rule implied-subfeature (
- feature # The main feature name
- subvalue # The value of one of its subfeatures
- : value-string ? # The value of the main feature
+
+# Given a feature and a value of one of its subfeatures, find the name of the
+# subfeature. If value-string is supplied, looks for implied subfeatures that
+# are specific to that value of feature
+rule implied-subfeature (
+ feature # The main feature name.
+ subvalue # The value of one of its subfeatures.
+ : value-string ? # The value of the main feature.
 )
 {
     local subfeature = [ find-implied-subfeature $(feature) $(subvalue)
- : $(value-string) ] ;
-
+ : $(value-string) ] ;
     if ! $(subfeature)
     {
         value-string ?= "" ;
- error \"$(subvalue)\" is not a known subfeature value of
- $(feature)$(value-string) ;
+ errors.error \"$(subvalue)\" is not a known subfeature value of
+ $(feature)$(value-string) ;
     }
-
     return $(subfeature) ;
 }
 
-# generate an error if the feature is unknown
+
+# Generate an error if the feature is unknown.
 local rule validate-feature ( feature )
 {
     if ! $(feature) in $(.all-features)
     {
- error unknown feature \"$(feature)\" ;
+ errors.error unknown feature \"$(feature)\" ;
     }
 }
 
-# Given a feature and value, or just a value corresponding to an
-# implicit feature, returns a property set consisting of all component
-# subfeatures and their values. For example:
+
+# Given a feature and its value or just a value corresponding to an implicit
+# feature, returns a property set consisting of all component subfeatures and
+# their values. For example all the following calls:
+#
+# expand-subfeatures-aux <toolset>gcc-2.95.2-linux-x86
+# expand-subfeatures-aux gcc-2.95.2-linux-x86
 #
-# expand-subfeatures <toolset>gcc-2.95.2-linux-x86
-# -> <toolset>gcc <toolset-version>2.95.2 <toolset-os>linux <toolset-cpu>x86
+# return:
 #
-# equivalent to:
-# expand-subfeatures gcc-2.95.2-linux-x86
-local rule expand-subfeatures-aux (
- feature ? # The name of the feature, or empty if value corresponds to an implicit property
- : value # The value of the feature.
- : dont-validate ? # If set, no validation of value string will be done
+# <toolset>gcc <toolset-version>2.95.2 <toolset-os>linux <toolset-cpu>x86
+local rule expand-subfeatures-aux (
+ feature ? # Feature name or empty if value corresponds to an
+ # implicit property.
+ : value # Feature value.
+ : dont-validate ? # If set, no value string validation will be done.
 )
 {
     if $(feature)
@@ -312,31 +319,31 @@
         validate-feature $(feature) ;
     }
     if ! $(dont-validate)
- {
+ {
         validate-value-string $(feature) $(value) ;
     }
-
+
     local components = [ regex.split $(value) "-" ] ;
-
- # get the top-level feature's value
+
+ # Get the top-level feature's value.
     local value = $(components[1]:G=) ;
 
     local result = $(components[1]:G=$(feature)) ;
-
+
     local subvalues = $(components[2-]) ;
     while $(subvalues)
     {
- local subvalue = $(subvalues[1]) ; # pop the head off of subvalues
+ local subvalue = $(subvalues[1]) ; # Pop the head off of subvalues.
         subvalues = $(subvalues[2-]) ;
-
+
         local subfeature = [ find-implied-subfeature $(feature) $(subvalue) : $(value) ] ;
-
- # If no subfeature was found, reconstitute the value string and use that
+
+ # If no subfeature was found reconstitute the value string and use that.
         if ! $(subfeature)
         {
             result = $(components:J=-) ;
             result = $(result:G=$(feature)) ;
- subvalues = ; # stop looping
+ subvalues = ; # Stop looping.
         }
         else
         {
@@ -344,25 +351,27 @@
             result += $(subvalue:G=$(f)-$(subfeature)) ;
         }
     }
-
+
     return $(result) ;
 }
 
-# Make all elements of properties corresponding to implicit features
-# explicit, and express all subfeature values as separate properties
-# in their own right. For example, the property
+
+# Make all elements of properties corresponding to implicit features explicit,
+# and express all subfeature values as separate properties in their own right.
+# For example, all of the following properties
 #
 # gcc-2.95.2-linux-x86
+# <toolset>gcc-2.95.2-linux-x86
 #
 # might expand to
 #
 # <toolset>gcc <toolset-version>2.95.2 <toolset-os>linux <toolset-cpu>x86
 #
-rule expand-subfeatures (
- properties * # property set with elements of the form
- # <feature>value-string or just value-string in the
- # case of implicit features.
- : dont-validate ?
+rule expand-subfeatures (
+ properties * # Property set with elements of the form
+ # <feature>value-string or just value-string in the case
+ # of implicit features.
+ : dont-validate ?
 )
 {
     local result ;
@@ -370,17 +379,18 @@
     {
         # Don't expand subfeatures in subfeatures
         if ! [ MATCH "(:)" : $(p:G) ]
- {
+ {
             result += [ expand-subfeatures-aux $(p:G) : $(p:G=) : $(dont-validate) ] ;
         }
         else
         {
             result += $(p) ;
- }
+ }
     }
     return $(result) ;
 }
 
+
 # Helper for extend, below. Handles the feature case.
 local rule extend-feature ( feature : values * )
 {
@@ -392,7 +402,7 @@
         {
             if $($(v).implicit-feature)
             {
- error $(v) is already associated with the \"$($(v).implicit-feature)\" feature ;
+ errors.error $(v) is already associated with the \"$($(v).implicit-feature)\" feature ;
             }
             $(v).implicit-feature = $(feature) ;
         }
@@ -404,20 +414,21 @@
         # This is the first value specified for this feature,
         # take it as default value
         $(feature).default = $(values[1]) ;
- }
+ }
     $(feature).values += $(values) ;
 }
 
+
 # Checks that value-string is a valid value-string for the given feature.
 rule validate-value-string ( feature value-string )
-{
- if ! (
- free in $($(feature).attributes)
- || ( $(value-string) in $(feature).values )
+{
+ if ! (
+ free in $($(feature).attributes)
+ || ( $(value-string) in $(feature).values )
     )
     {
         local values = $(value-string) ;
-
+
         if $($(feature).subfeatures)
         {
             values = [ regex.split $(value-string) - ] ;
@@ -425,38 +436,33 @@
 
         if ! ( $(values[1]) in $($(feature).values) ) &&
 
- # An empty value is allowed for optional features
- ( $(values[1]) || ! ( optional in $($(feature).attributes) ) )
+ # An empty value is allowed for optional features.
+ ( $(values[1]) || ! ( optional in $($(feature).attributes) ) )
         {
- error \"$(values[1])\" is not a known value of feature $(feature)
- : legal values: \"$($(feature).values)\" ;
+ errors.error \"$(values[1])\" is not a known value of feature $(feature)
+ : legal values: \"$($(feature).values)\" ;
         }
 
         for local v in $(values[2-])
         {
- # this will validate any subfeature values in value-string
+ # This will validate any subfeature values in value-string.
             implied-subfeature $(feature) $(v) : $(values[1]) ;
         }
     }
 }
 
+
 # A helper that computes:
-# * the name(s) of the module-local variable(s) used to record the
-# correspondence between subvalue(s) and a subfeature
-#
-# * the value of that variable when such a subfeature/subvalue has
-# been defined
-#
-# Returns a list consisting of the latter followed by the former
-local rule subvalue-var (
- feature # Main feature name
-
- value-string ? # If supplied, specifies a specific value of the
- # main feature for which the subfeature values
- # are valid
-
- : subfeature # The name of the subfeature
- : subvalues * # The subfeature values
+# * name(s) of module-local variable(s) used to record the correspondence
+# between subvalue(s) and a subfeature
+# * value of that variable when such a subfeature/subvalue has been defined and
+# returns a list consisting of the latter followed by the former.
+local rule subvalue-var (
+ feature # Main feature name.
+ value-string ? # If supplied, specifies a specific value of the main
+ # feature for which the subfeature values are valid.
+ : subfeature # Subfeature name.
+ : subvalues * # Subfeature values.
 )
 {
     feature = [ grist $(feature) ] ;
@@ -472,68 +478,68 @@
     $(feature)$(value-string:E="")<>$(subvalues).subfeature ;
 }
 
-# Extends the given subfeature with the subvalues. If the optional
-# value-string is provided, the subvalues are only valid for the given
-# value of the feature. Thus, you could say that
-# <target-platform>mingw is specifc to <toolset>gcc-2.95.2 as follows:
+
+# Extends the given subfeature with the subvalues. If the optional value-string
+# is provided, the subvalues are only valid for the given value of the feature.
+# Thus, you could say that <target-platform>mingw is specific to
+# <toolset>gcc-2.95.2 as follows:
 #
 # extend-subfeature toolset gcc-2.95.2 : target-platform : mingw ;
 #
-rule extend-subfeature (
- feature # The feature whose subfeature is being extended
-
- value-string ? # If supplied, specifies a specific value of the
- # main feature for which the new subfeature values
- # are valid
-
- : subfeature # The name of the subfeature
- : subvalues * # The additional values of the subfeature being defined.
+rule extend-subfeature (
+ feature # The feature whose subfeature is being extended.
+
+ value-string ? # If supplied, specifies a specific value of the main
+ # feature for which the new subfeature values are valid.
+
+ : subfeature # Subfeature name.
+ : subvalues * # Additional subfeature values.
 )
 {
- local subfeature-vars = [
- subvalue-var $(feature) $(value-string) : $(subfeature) : $(subvalues) ] ;
-
+ local subfeature-vars = [ subvalue-var $(feature) $(value-string)
+ : $(subfeature) : $(subvalues) ] ;
+
     local f = [ utility.ungrist [ grist $(feature) ] ] ;
     extend $(f)-$(subfeature-vars[1]) : $(subvalues) ;
-
- # provide a way to get from the given feature or property and
- # subfeature value to the subfeature name.
+
+ # Provide a way to get from the given feature or property and subfeature
+ # value to the subfeature name.
     $(subfeature-vars[2-]) = $(subfeature-vars[1]) ;
 }
 
-# Returns true iff the subvalues are valid for the feature. When the
-# optional value-string is provided, returns true iff the subvalues
-# are valid for the given value of the feature.
+
+# Returns true iff the subvalues are valid for the feature. When the optional
+# value-string is provided, returns true iff the subvalues are valid for the
+# given value of the feature.
 rule is-subvalue ( feature : value-string ? : subfeature : subvalue )
 {
- local subfeature-vars = [
- subvalue-var $(feature) $(value-string) : $(subfeature) : $(subvalue) ] ;
-
- if $($(subfeature-vars[2])) = $(subfeature-vars[1])
+ local subfeature-vars = [ subvalue-var $(feature) $(value-string)
+ : $(subfeature) : $(subvalue) ] ;
+
+ if $($(subfeature-vars[2])) = $(subfeature-vars[1])
     {
         return true ;
     }
 }
 
+
 # Can be called three ways:
 #
 # 1. extend feature : values *
 # 2. extend <feature> subfeature : values *
 # 3. extend <feature>value-string subfeature : values *
 #
-# * Form 1 adds the given values to the given feature
-# * Forms 2 and 3 add subfeature values to the given feature
-# * Form 3 adds the subfeature values as specific to the given
-# property value-string.
+# * Form 1 adds the given values to the given feature.
+# * Forms 2 and 3 add subfeature values to the given feature.
+# * Form 3 adds the subfeature values as specific to the given property
+# value-string.
 #
 rule extend ( feature-or-property subfeature ? : values * )
 {
- local
- feature # If a property was specified this is its feature
- value-string # E.G., the gcc-2.95-2 part of <toolset>gcc-2.95.2
- ;
+ local feature ; # If a property was specified this is its feature.
+ local value-string ; # E.g., the gcc-2.95-2 part of <toolset>gcc-2.95.2.
 
- # if a property was specified
+ # If a property was specified.
     if $(feature-or-property:G) && $(feature-or-property:G=)
     {
         # Extract the feature and value-string, if any.
@@ -545,140 +551,145 @@
         feature = [ grist $(feature-or-property) ] ;
     }
 
- # Dispatch to the appropriate handler
+ # Dispatch to the appropriate handler.
     if $(subfeature)
     {
- extend-subfeature $(feature) $(value-string)
- : $(subfeature) : $(values) ;
+ extend-subfeature $(feature) $(value-string) : $(subfeature)
+ : $(values) ;
     }
     else
     {
         # If no subfeature was specified, we didn't expect to see a
- # value-string
+ # value-string.
         if $(value-string)
         {
- error can only be specify a property as the first argument
- when extending a subfeature
- : usage:
- : " extend" feature ":" values...
- : " | extend" <feature>value-string subfeature ":" values...
- ;
+ errors.error can only specify a property as the first argument when
+ extending a subfeature
+ : usage:
+ : " extend" feature ":" values...
+ : " | extend" <feature>value-string subfeature ":" values...
+ ;
         }
 
         extend-feature $(feature) : $(values) ;
     }
 }
 
+
 local rule get-subfeature-name ( subfeature value-string ? )
 {
     local prefix = $(value-string): ;
     return $(prefix:E="")$(subfeature) ;
 }
 
-# Declares a subfeature
-rule subfeature (
- feature # Root feature that is not a subfeature
- value-string ? # A value-string specifying which feature or
- # subfeature values this subfeature is specific to,
- # if any
-
- : subfeature # The name of the subfeature being declared
- : subvalues * # The allowed values of this subfeature
- : attributes * # The attributes of the subfeature
+
+# Declares a subfeature.
+rule subfeature (
+ feature # Root feature that is not a subfeature.
+ value-string ? # A value-string specifying which feature or subfeature
+ # values this subfeature is specific to, if any.
+ : subfeature # The name of the subfeature being declared.
+ : subvalues * # The allowed values of this subfeature.
+ : attributes * # The attributes of the subfeature.
 )
 {
     feature = [ grist $(feature) ] ;
     validate-feature $(feature) ;
-
- # Add grist to the subfeature name if a value-string was supplied
+
+ # Add grist to the subfeature name if a value-string was supplied.
     local subfeature-name = [ get-subfeature-name $(subfeature) $(value-string) ] ;
-
+
     if $(subfeature-name) in $($(feature).subfeatures)
     {
- error \"$(subfeature)\" already declared as a subfeature of \"$(feature)\"
- "specific to "$(value-string) ;
+ errors.error \"$(subfeature)\" already declared as a subfeature of \"$(feature)\"
+ "specific to "$(value-string) ;
     }
     $(feature).subfeatures += $(subfeature-name) ;
-
- # First declare the subfeature as a feature in its own right
+
+ # First declare the subfeature as a feature in its own right.
     local f = [ utility.ungrist $(feature) ] ;
     feature $(f)-$(subfeature-name) : $(subvalues) : $(attributes) subfeature ;
-
+
     # Now make sure the subfeature values are known.
     extend-subfeature $(feature) $(value-string) : $(subfeature) : $(subvalues) ;
 }
 
-# Set the components of the given composite property
+
+# Set components of the given composite property.
 rule compose ( composite-property : component-properties * )
 {
     local feature = $(composite-property:G) ;
     if ! ( composite in [ attributes $(feature) ] )
     {
- error "$(feature)" is not a composite feature ;
+ errors.error "$(feature)" is not a composite feature ;
     }
 
     $(composite-property).components ?= ;
     if $($(composite-property).components)
     {
- error components of "$(composite-property)" already set:
- $($(composite-property).components) ;
+ errors.error components of "$(composite-property)" already set:
+ $($(composite-property).components) ;
     }
 
     if $(composite-property) in $(component-properties)
     {
- error composite property "$(composite-property)" cannot have itself as a component ;
+ errors.error composite property "$(composite-property)" cannot have itself as a component ;
     }
     $(composite-property).components = $(component-properties) ;
 }
 
+
 local rule expand-composite ( property )
 {
     return $(property)
- [ sequence.transform expand-composite : $($(property).components) ] ;
+ [ sequence.transform expand-composite : $($(property).components) ] ;
 }
 
-# return all values of the given feature specified by the given property set.
+
+# Return all values of the given feature specified by the given property set.
 rule get-values ( feature : properties * )
 {
     local result ;
-
- feature = $(:E=:G=$(feature)) ; # add <> if necessary.
+
+ feature = $(:E=:G=$(feature)) ; # Add <> if necessary.
     for local p in $(properties)
     {
         if $(p:G) = $(feature)
         {
- #~ Use MATCH instead if :G= to get the value, in order to preserve
- #~ the value intact instead of having bjam treat it as a decompossible
- #~ path.
+ # Use MATCH instead of :G= to get the value, in order to preserve
+ # the value intact instead of having bjam treat it as a decomposable
+ # path.
             result += [ MATCH ">(.*)" : $(p) ] ;
         }
     }
     return $(result) ;
 }
 
+
 rule free-features ( )
 {
     return $(free.features) ;
 }
 
-# Expand all composite properties in the set so that all components
-# are explicitly expressed.
+
+# Expand all composite properties in the set so that all components are
+# explicitly expressed.
 rule expand-composites ( properties * )
 {
     local explicit-features = $(properties:G) ;
-
     local result ;
- # now expand composite features
+
+ # Now expand composite features.
     for local p in $(properties)
     {
         local expanded = [ expand-composite $(p) ] ;
-
+
         for local x in $(expanded)
         {
             if ! $(x) in $(result)
             {
                 local f = $(x:G) ;
-
+
                 if $(f) in $(free.features)
                 {
                     result += $(x) ;
@@ -689,21 +700,21 @@
                     {
                         if $(f) in $(result:G)
                         {
- error expansions of composite features result in conflicting
- values for $(f)
- : values: [ get-values $(f) : $(result) ] $(x:G=)
- : one contributing composite property was $(p) ;
+ errors.error expansions of composite features result
+ in conflicting values for $(f)
+ : values: [ get-values $(f) : $(result) ] $(x:G=)
+ : one contributing composite property was $(p) ;
                         }
                         else
                         {
                             result += $(x) ;
                         }
                     }
- }
+ }
                 else if $(f) in $(result:G)
                 {
- error explicitly-specified values of non-free feature
- $(f) conflict :
+ errors.error explicitly-specified values of non-free feature
+ $(f) conflict :
                         "existing values:" [ get-values $(f) : $(properties) ] :
                         "value from expanding " $(p) ":" $(x:G=) ;
                 }
@@ -711,15 +722,16 @@
                 {
                     result += $(x) ;
                 }
- }
+ }
         }
     }
     return $(result) ;
 }
 
-# Return true iff f is an ordinary subfeature of the parent-property's
-# feature, or if f is a subfeature fo the parent-property's feature
-# specific to the parent-property's value
+
+# Return true iff f is an ordinary subfeature of the parent-property's feature,
+# or if f is a subfeature of the parent-property's feature specific to the
+# parent-property's value.
 local rule is-subfeature-of ( parent-property f )
 {
     if subfeature in $($(f).attributes)
@@ -727,9 +739,8 @@
         local specific-subfeature = [ MATCH <(.*):(.*)> : $(f) ] ;
         if $(specific-subfeature)
         {
- # The feature has the form
- # <topfeature-topvalue:subfeature>,
- # e.g. <toolset-msvc:version>
+ # The feature has the form <topfeature-topvalue:subfeature>, e.g.
+ # <toolset-msvc:version>.
             local feature-value = [ split-top-feature $(specific-subfeature[1]) ] ;
             if <$(feature-value[1])>$(feature-value[2]) = $(parent-property)
             {
@@ -738,10 +749,9 @@
         }
         else
         {
- # The feature has the form <topfeature-subfeature>,
- # e.g. <toolset-version>
+ # The feature has the form <topfeature-subfeature>, e.g.
+ # <toolset-version>
             local top-sub = [ split-top-feature [ utility.ungrist $(f) ] ] ;
-
             if $(top-sub[2]) && <$(top-sub[1])> = $(parent-property:G)
             {
                 return true ;
@@ -750,46 +760,47 @@
     }
 }
 
-# as above, for subproperties
+
+# As for is-subfeature-of but for subproperties.
 local rule is-subproperty-of ( parent-property p )
 {
     return [ is-subfeature-of $(parent-property) $(p:G) ] ;
 }
 
-# Given a property, return the subset of features consisting of all
-# ordinary subfeatures of the property's feature, and all specific
-# subfeatures of the property's feature which are conditional on the
-# property's value.
+
+# Given a property, return the subset of features consisting of all ordinary
+# subfeatures of the property's feature, and all specific subfeatures of the
+# property's feature which are conditional on the property's value.
 local rule select-subfeatures ( parent-property : features * )
 {
     return [ sequence.filter is-subfeature-of $(parent-property) : $(features) ] ;
 }
-
-# as above, for subproperties
+
+
+# As for select-subfeatures but for subproperties.
 local rule select-subproperties ( parent-property : properties * )
 {
     return [ sequence.filter is-subproperty-of $(parent-property) : $(properties) ] ;
 }
 
-# Given a property set which may consist of composite and implicit
-# properties and combined subfeature values, returns an expanded,
-# normalized property set with all implicit features expressed
-# explicitly, all subfeature values individually expressed, and all
-# components of composite properties expanded. Non-free features
-# directly expressed in the input properties cause any values of
-# those features due to composite feature expansion to be dropped. If
-# two values of a given non-free feature are directly expressed in the
-# input, an error is issued.
+
+# Given a property set which may consist of composite and implicit properties
+# and combined subfeature values, returns an expanded, normalized property set
+# with all implicit features expressed explicitly, all subfeature values
+# individually expressed, and all components of composite properties expanded.
+# Non-free features directly expressed in the input properties cause any values
+# of those features due to composite feature expansion to be dropped. If two
+# values of a given non-free feature are directly expressed in the input, an
+# error is issued.
 rule expand ( properties * )
 {
     local expanded = [ expand-subfeatures $(properties) ] ;
-
     return [ expand-composites $(expanded) ] ;
 }
 
 
-# Helper rule for minimize, below - return true iff property's feature
-# is present in the contents of the variable named by feature-set-var.
+# Helper rule for minimize. Returns true iff property's feature is present in
+# the contents of the variable named by feature-set-var.
 local rule in-features ( feature-set-var property )
 {
     if $(property:G) in $($(feature-set-var))
@@ -798,9 +809,9 @@
     }
 }
 
-# Helper for minimize, below - returns the list with
-# the same properties, but where all subfeatures
-# are in the end of the list
+
+# Helper rule for minimize. Returns the list with the same properties, but with
+# all subfeatures moved to the end of the list.
 local rule move-subfeatures-to-the-end ( properties * )
 {
     local x1 ;
@@ -814,53 +825,53 @@
         else
         {
             x1 += $(p) ;
- }
+ }
     }
- return $(x1) $(x2) ;
+ return $(x1) $(x2) ;
 }
 
 
-# Given an expanded property set, eliminate all redundancy: properties
-# which are elements of other (composite) properties in the set will
-# be eliminated. Non-symmetric properties equal to default values will be
-# eliminated, unless the override a value from some composite property.
-# Implicit properties will be expressed without feature
-# grist, and sub-property values will be expressed as elements joined
-# to the corresponding main property.
+# Given an expanded property set, eliminate all redundancy: properties that are
+# elements of other (composite) properties in the set will be eliminated.
+# Non-symmetric properties equal to default values will be eliminated unless
+# they override a value from some composite property. Implicit properties will
+# be expressed without feature grist, and sub-property values will be expressed
+# as elements joined to the corresponding main property.
 rule minimize ( properties * )
 {
     # Precondition checking
     local implicits = [ set.intersection $(p:G=) : $(p:G) ] ;
     if $(implicits)
     {
- error minimize requires an expanded property set, but \"$(implicits[1])\"
- appears to be the value of an un-expanded implicit feature ;
+ errors.error minimize requires an expanded property set, but
+ \"$(implicits[1])\" appears to be the value of an un-expanded
+ implicit feature ;
     }
-
- # remove properties implied by composite features
+
+ # Remove properties implied by composite features.
     local components = $($(properties).components) ;
     local x = [ set.difference $(properties) : $(components) ] ;
-
- # handle subfeatures and implicit features
- x = [ move-subfeatures-to-the-end $(x) ] ;
+
+ # Handle subfeatures and implicit features.
+ x = [ move-subfeatures-to-the-end $(x) ] ;
     local result ;
     while $(x)
     {
         local p fullp = $(x[1]) ;
         local f = $(p:G) ;
         local v = $(p:G=) ;
-
- # eliminate features in implicit properties.
+
+ # Eliminate features in implicit properties.
         if implicit in [ attributes $(f) ]
         {
             p = $(v) ;
         }
 
- # locate all subproperties of $(x[1]) in the property set
+ # Locate all subproperties of $(x[1]) in the property set.
         local subproperties = [ select-subproperties $(fullp) : $(x) ] ;
         if $(subproperties)
         {
- # reconstitute the joined property name
+ # Reconstitute the joined property name.
             local sorted = [ sequence.insertion-sort $(subproperties) ] ;
             result += $(p)-$(sorted:G="":J=-) ;
 
@@ -868,16 +879,16 @@
         }
         else
         {
- # eliminate properties whose value is equal to feature's
- # default and which are not symmetric and which do not
- # contradict values implied by composite properties.
-
- # since all component properties of composites in the set
- # have been eliminated, any remaining property whose
- # feature is the same as a component of a composite in the
- # set must have a non-redundant value.
+ # Eliminate properties whose value is equal to feature's default,
+ # which are not symmetric and which do not contradict values implied
+ # by composite properties.
+
+ # Since all component properties of composites in the set have been
+ # eliminated, any remaining property whose feature is the same as a
+ # component of a composite in the set must have a non-redundant
+ # value.
             if $(fullp) != [ defaults $(f) ]
- || symmetric in [ attributes $(f) ]
+ || symmetric in [ attributes $(f) ]
                 || $(fullp:G) in $(components:G)
             {
                 result += $(p) ;
@@ -889,33 +900,33 @@
     return $(result) ;
 }
 
+
 # Combine all subproperties into their parent properties
 #
-# Requires: for every subproperty, there is a parent property. All
-# features are explicitly expressed.
+# Requires: for every subproperty, there is a parent property. All features are
+# explicitly expressed.
 #
-# This rule probably shouldn't be needed, but
-# build-request.expand-no-defaults is being abused for unintended
-# purposes and it needs help
+# This rule probably shouldn't be needed, but build-request.expand-no-defaults
+# is being abused for unintended purposes and it needs help.
 rule compress-subproperties ( properties * )
 {
- local all-subs matched-subs result ;
-
+ local all-subs ;
+ local matched-subs ;
+ local result ;
+
     for local p in $(properties)
     {
         if ! $(p:G)
         {
- assert.nonempty-variable p:G ; # expecting fully-gristed properties
+ # Expecting fully-gristed properties.
+ assert.nonempty-variable p:G ;
         }
-
-
+
         if ! subfeature in $($(p:G).attributes)
         {
- local subs = [
- sequence.insertion-sort
- [ sequence.filter is-subproperty-of $(p) : $(properties) ]
- ] ;
-
+ local subs = [ sequence.insertion-sort
+ [ sequence.filter is-subproperty-of $(p) : $(properties) ] ] ;
+
             matched-subs += $(subs) ;
 
             local subvalues = -$(subs:G=:J=-) ;
@@ -930,17 +941,16 @@
     assert.result true : set.equal $(all-subs) : $(matched-subs) ;
     return $(result) ;
 }
-
-# given an ungristed string, finds the longest prefix which is a
-# top-level feature name followed by a dash, and return a pair
-# consisting of the parts before and after that dash. More
-# interesting than a simple split because feature names can contain
-# dashes.
+
+
+# Given an ungristed string, finds the longest prefix which is a top-level
+# feature name followed by a dash, and return a pair consisting of the parts
+# before and after that dash. More interesting than a simple split because
+# feature names may contain dashes.
 local rule split-top-feature ( feature-plus )
 {
     local e = [ regex.split $(feature-plus) - ] ;
     local f = $(e[1]) ;
-
     local v ;
     while $(e)
     {
@@ -953,22 +963,24 @@
     }
     return $(v) ;
 }
-
-# Given a set of properties, add default values for features not
-# represented in the set.
-# Note: if there's there's ordinary feature F1 and composite feature
-# F2, which includes some value for F1, and both feature have default values,
-# then the default value of F1 will be added, not the value in F2. This might
-# not be right idea: consider
+
+
+# Given a set of properties, add default values for features not represented in
+# the set.
+#
+# Note: if there's an ordinary feature F1 and a composite feature F2 which
+# includes some value for F1 and both feature have default values then the
+# default value of F1 will be added (as opposed to the value in F2). This might
+# not be the right idea, e.g. consider:
 #
 # feature variant : debug ... ;
 # <variant>debug : .... <runtime-debugging>on
 # feature <runtime-debugging> : off on ;
-#
+#
 # Here, when adding default for an empty property set, we'll get
 #
 # <variant>debug <runtime_debugging>off
-#
+#
 # and that's kind of strange.
 rule add-defaults ( properties * )
 {
@@ -976,22 +988,23 @@
     {
         if $(v) in $(properties)
         {
- error add-defaults requires explicitly specified features,
- but \"$(v)\" appears to be the value of an un-expanded implicit feature ;
+ errors.error add-defaults requires explicitly specified features,
+ but \"$(v)\" appears to be the value of an un-expanded implicit
+ feature ;
         }
     }
     # We don't add default for elements with ":" inside. This catches:
     # 1. Conditional properties --- we don't want <variant>debug:<define>DEBUG
     # to be takes as specified value for <variant>
- # 2. Free properties with ":" in values. We don't care, since free properties
- # don't have defaults.
+ # 2. Free properties with ":" in values. We don't care, since free
+ # properties don't have defaults.
     local xproperties = [ MATCH "^([^:]+)$" : $(properties) ] ;
     local missing-top = [ set.difference $(.all-top-features) : $(xproperties:G) ] ;
     local more = [ defaults $(missing-top) ] ;
     properties += $(more) ;
     xproperties += $(more) ;
-
- # Add defaults for subfeatures of features which are present
+
+ # Add defaults for subfeatures of features which are present.
     for local p in $(xproperties)
     {
         local s = $($(p:G).subfeatures) ;
@@ -999,19 +1012,20 @@
         local missing-subs = [ set.difference <$(f)-$(s)> : $(properties:G) ] ;
         properties += [ defaults [ select-subfeatures $(p) : $(missing-subs) ] ] ;
     }
-
+
     return $(properties) ;
 }
 
+
 # Given a property-set of the form
 # v1/v2/...vN-1/<fN>vN/<fN+1>vN+1/...<fM>vM
 #
 # Returns
 # v1 v2 ... vN-1 <fN>vN <fN+1>vN+1 ... <fM>vM
 #
-# Note that vN...vM may contain slashes. This is resilient to the
-# substitution of backslashes for slashes, since Jam, unbidden,
-# sometimes swaps slash direction on NT.
+# Note that vN...vM may contain slashes. This needs to be resilient to the
+# substitution of backslashes for slashes, since Jam, unbidden, sometimes swaps
+# slash direction on NT.
 rule split ( property-set )
 {
     local pieces = [ regex.split $(property-set) [\\/] ] ;
@@ -1032,18 +1046,19 @@
     return $(result) ;
 }
 
-# tests of module feature
+
+# Tests of module feature.
 local rule __test__ ( )
 {
- # use a fresh copy of the feature module
+ # Use a fresh copy of the feature module.
     prepare-test feature-test-temp ;
 
- # These are local rules and so must be explicitly reimported into
- # the testing module
- import feature : extend-feature validate-feature select-subfeatures ;
-
- import errors : try catch ;
     import assert ;
+ import errors : try catch ;
+
+ # These are local rules and so must be explicitly reimported into the
+ # testing module.
+ import feature : extend-feature validate-feature select-subfeatures ;
 
     feature toolset : gcc : implicit ;
     feature define : : free ;
@@ -1063,84 +1078,74 @@
     {
         compose <variant>profile : <variant>profile ;
     }
- catch composite property <variant>profile cannot have itself as a component ;
+ catch composite property <variant>profile cannot have itself as a component ;
 
     extend-feature toolset : msvc metrowerks ;
- subfeature toolset gcc : version : 2.95.2 2.95.3 2.95.4
- 3.0 3.0.1 3.0.2 ;
-
+ subfeature toolset gcc : version : 2.95.2 2.95.3 2.95.4 3.0 3.0.1 3.0.2 ;
+
     assert.true is-subvalue toolset : gcc : version : 2.95.3 ;
     assert.false is-subvalue toolset : gcc : version : 1.1 ;
 
     assert.false is-subvalue toolset : msvc : version : 2.95.3 ;
     assert.false is-subvalue toolset : : version : yabba ;
-
+
     feature yabba ;
     subfeature yabba : version : dabba ;
     assert.true is-subvalue yabba : : version : dabba ;
-
-
+
     subfeature toolset gcc : platform : linux cygwin : optional ;
-
+
     assert.result <toolset-gcc:version>
- : select-subfeatures <toolset>gcc
- : <toolset-gcc:version>
- <toolset-msvc:version>
- <toolset-version>
- <stdlib>
- ;
-
+ : select-subfeatures <toolset>gcc
+ : <toolset-gcc:version>
+ <toolset-msvc:version>
+ <toolset-version>
+ <stdlib> ;
+
     subfeature stdlib : version : 3 4 : optional ;
 
     assert.result <stdlib-version>
- : select-subfeatures <stdlib>native
- : <toolset-gcc:version>
- <toolset-msvc:version>
- <toolset-version>
- <stdlib-version>
- ;
-
+ : select-subfeatures <stdlib>native
+ : <toolset-gcc:version>
+ <toolset-msvc:version>
+ <toolset-version>
+ <stdlib-version> ;
+
     assert.result <toolset>gcc <toolset-gcc:version>3.0.1
- : expand-subfeatures <toolset>gcc-3.0.1 ;
-
+ : expand-subfeatures <toolset>gcc-3.0.1 ;
+
     assert.result <toolset>gcc <toolset-gcc:version>3.0.1 <toolset-gcc:platform>linux
- : expand-subfeatures <toolset>gcc-3.0.1-linux ;
+ : expand-subfeatures <toolset>gcc-3.0.1-linux ;
 
-
     assert.result <toolset>gcc <toolset-gcc:version>3.0.1
- : expand <toolset>gcc <toolset-gcc:version>3.0.1 ;
-
+ : expand <toolset>gcc <toolset-gcc:version>3.0.1 ;
+
     assert.result <define>foo=x-y
- : expand-subfeatures <define>foo=x-y ;
+ : expand-subfeatures <define>foo=x-y ;
 
     assert.result <toolset>gcc <toolset-gcc:version>3.0.1
- : expand-subfeatures gcc-3.0.1 ;
-
+ : expand-subfeatures gcc-3.0.1 ;
+
     assert.result a c e
- : get-values <x> : <x>a <y>b <x>c <y>d <x>e ;
+ : get-values <x> : <x>a <y>b <x>c <y>d <x>e ;
 
     assert.result <toolset>gcc <toolset-gcc:version>3.0.1
- <variant>debug <define>_DEBUG <optimization>on
- : expand gcc-3.0.1 debug <optimization>on
- ;
-
+ <variant>debug <define>_DEBUG <optimization>on
+ : expand gcc-3.0.1 debug <optimization>on ;
+
     assert.result <variant>debug <define>_DEBUG <optimization>on
- : expand debug <optimization>on
- ;
+ : expand debug <optimization>on ;
 
- assert.result <optimization>on <variant>debug <define>_DEBUG
- : expand <optimization>on debug
- ;
+ assert.result <optimization>on <variant>debug <define>_DEBUG
+ : expand <optimization>on debug ;
 
     assert.result <runtime-link>dynamic <optimization>on
- : defaults <runtime-link> <define> <optimization>
- ;
-
- # make sure defaults is resilient to missing grist.
+ : defaults <runtime-link> <define> <optimization> ;
+
+ # Make sure defaults is resilient to missing grist.
     assert.result <runtime-link>dynamic <optimization>on
- : defaults runtime-link define optimization
- ;
-
+ : defaults runtime-link define optimization ;
+
     feature dummy : dummy1 dummy2 ;
     subfeature dummy : subdummy : x y z : optional ;
 
@@ -1150,68 +1155,54 @@
 
     assert.result optional : attributes <fu> ;
     assert.result optional : attributes fu ;
-
- assert.result <runtime-link>static <define>foobar <optimization>on <toolset>gcc:<define>FOO
- <toolset>gcc <variant>debug <stdlib>native <dummy>dummy1 <toolset-gcc:version>2.95.2
-
- : add-defaults <runtime-link>static <define>foobar
- <optimization>on <toolset>gcc:<define>FOO
- ;
-
- assert.result <runtime-link>static <define>foobar <optimization>on <toolset>gcc:<define>FOO
- <fu>fu1 <toolset>gcc <variant>debug <stdlib>native <dummy>dummy1 <fu-subfu2>q
- <toolset-gcc:version>2.95.2
-
- : add-defaults <runtime-link>static <define>foobar
- <optimization>on <toolset>gcc:<define>FOO <fu>fu1
- ;
-
+
+ assert.result <runtime-link>static <define>foobar <optimization>on
+ <toolset>gcc:<define>FOO <toolset>gcc <variant>debug <stdlib>native
+ <dummy>dummy1 <toolset-gcc:version>2.95.2
+ : add-defaults <runtime-link>static <define>foobar <optimization>on
+ <toolset>gcc:<define>FOO ;
+
+ assert.result <runtime-link>static <define>foobar <optimization>on
+ <toolset>gcc:<define>FOO <fu>fu1 <toolset>gcc <variant>debug
+ <stdlib>native <dummy>dummy1 <fu-subfu2>q <toolset-gcc:version>2.95.2
+ : add-defaults <runtime-link>static <define>foobar <optimization>on
+ <toolset>gcc:<define>FOO <fu>fu1 ;
+
     set-default <runtime-link> : static ;
- assert.result <runtime-link>static
- : defaults <runtime-link>
- ;
-
+ assert.result <runtime-link>static : defaults <runtime-link> ;
+
     assert.result gcc-3.0.1 debug <optimization>on
- : minimize [ expand gcc-3.0.1 debug <optimization>on <stdlib>native ]
- ;
+ : minimize [ expand gcc-3.0.1 debug <optimization>on <stdlib>native ] ;
 
     assert.result gcc-3.0.1 debug <runtime-link>dynamic
- : minimize [ expand gcc-3.0.1 debug <optimization>off <runtime-link>dynamic ]
- ;
+ : minimize
+ [ expand gcc-3.0.1 debug <optimization>off <runtime-link>dynamic ] ;
 
     assert.result gcc-3.0.1 debug
- : minimize [ expand gcc-3.0.1 debug <optimization>off ]
- ;
+ : minimize [ expand gcc-3.0.1 debug <optimization>off ] ;
 
     assert.result debug <optimization>on
- : minimize [ expand debug <optimization>on ]
- ;
+ : minimize [ expand debug <optimization>on ] ;
 
     assert.result gcc-3.0
- : minimize <toolset>gcc <toolset-gcc:version>3.0
- ;
+ : minimize <toolset>gcc <toolset-gcc:version>3.0 ;
 
     assert.result gcc-3.0
- : minimize <toolset-gcc:version>3.0 <toolset>gcc
- ;
+ : minimize <toolset-gcc:version>3.0 <toolset>gcc ;
 
     assert.result <x>y/z <a>b/c <d>e/f
- : split <x>y/z/<a>b/c/<d>e/f
- ;
+ : split <x>y/z/<a>b/c/<d>e/f ;
 
     assert.result <x>y/z <a>b/c <d>e/f
- : split <x>y\\z\\<a>b\\c\\<d>e\\f
- ;
+ : split <x>y\\z\\<a>b\\c\\<d>e\\f ;
 
     assert.result a b c <d>e/f/g <h>i/j/k
- : split a/b/c/<d>e/f/g/<h>i/j/k
- ;
+ : split a/b/c/<d>e/f/g/<h>i/j/k ;
 
     assert.result a b c <d>e/f/g <h>i/j/k
- : split a\\b\\c\\<d>e\\f\\g\\<h>i\\j\\k
- ;
+ : split a\\b\\c\\<d>e\\f\\g\\<h>i\\j\\k ;
 
- # test error checking
+ # Test error checking.
 
     try ;
     {
@@ -1269,16 +1260,14 @@
     {
         implied-subfeature <toolset> 3.0.1 ;
     }
- catch \"3.0.1\" is not a known subfeature value of
- <toolset> ;
+ catch \"3.0.1\" is not a known subfeature value of <toolset> ;
 
     try ;
     {
         implied-subfeature <toolset> not-a-version : gcc ;
     }
- catch \"not-a-version\" is not a known subfeature value of
- <toolset>gcc ;
+ catch \"not-a-version\" is not a known subfeature value of <toolset>gcc ;
 
- # leave a clean copy of the features module behind
+ # Leave a clean copy of the features module behind.
     finish-test feature-test-temp ;
 }

Modified: branches/proto/v3/tools/build/v2/build/generators.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/generators.jam (original)
+++ branches/proto/v3/tools/build/v2/build/generators.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,65 +5,72 @@
 # (See accompanying file LICENSE_1_0.txt or copy at
 # http://www.boost.org/LICENSE_1_0.txt)
 
-# Manages 'generators' --- objects which can do transformation between different
-# target types and contain algorithm for finding transformation from sources
-# to targets.
+# Manages 'generators' --- objects which can do transformation between
+# different target types and contain algorithm for finding transformation from
+# sources to targets.
 #
 # The main entry point to this module is generators.construct rule. It is given
-# a list of source targets, desired target type and a set of properties.
-# It starts by selecting 'viable generators', which have any chances of producing
-# the desired target type with the required properties. Generators are ranked and
-# a set of most specific ones is selected.
-#
-# The most specific generators have their 'run' methods called, with the properties
-# and list of sources. Each one selects target which can be directly consumed, and
-# tries to convert the remaining ones to the types it can consume. This is done
-# by recursively calling 'construct' with all consumable types.
+# a list of source targets, desired target type and a set of properties. It
+# starts by selecting 'viable generators', which have any chances of producing
+# the desired target type with the required properties. Generators are ranked
+# and a set of the most specific ones is selected.
 #
-# If the generator has collected all the targets it needs, it creates targets
+# The most specific generators have their 'run' methods called, with the
+# properties and list of sources. Each one selects a target which can be
+# directly consumed, and tries to convert the remaining ones to the types it
+# can consume. This is done by recursively calling 'construct' with all
+# consumable types.
+#
+# If the generator has collected all the targets it needs, it creates targets
 # corresponding to result, and returns it. When all generators have been run,
-# results of one of them are selected and returned as result.
+# results of one of them are selected and returned as a result.
 #
-# It's quite possible that 'construct' returns more targets that it was asked for.
-# For example, it was asked to target type EXE, but the only found generators produces
-# both EXE and TDS (file with debug) information. The extra target will be returned.
-#
-# Likewise, when generator tries to convert sources to consumable types, it can get
-# more targets that it was asked for. The question is what to do with extra targets.
-# Boost.Build attempts to convert them to requested types, and attempts as early as
-# possible. Specifically, this is done after invoking each generator. (Later I'll
-# document the rationale for trying extra target conversion at that point).
-#
-# That early conversion is not always desirable. Suppose a generator got a source of
-# type Y and must consume one target of type X_1 and one target of type X_2.
-# When converting Y to X_1 extra target of type Y_2 is created. We should not try to
-# convert it to type X_1, because if we do so, the generator will get two targets
-# of type X_1, and will be at loss as to which one to use. Because of that, the
-# 'construct' rule has a parameter, telling if multiple targets can be returned. If
-# the parameter is false, conversion of extra targets is not performed.
-
-import "class" : is-a new ;
-import container ;
-import utility : str equal ;
-import set sequence ;
-import assert ;
-import virtual-target ;
+# It's quite possible that 'construct' returns more targets that it was asked
+# for. For example, it was asked to target type EXE, but the only found
+# generators produces both EXE and TDS (file with debug) information. The extra
+# target will be returned.
+#
+# Likewise, when generator tries to convert sources to consumable types, it can
+# get more targets that it was asked for. The question is what to do with extra
+# targets. Boost.Build attempts to convert them to requested types, and
+# attempts that as early as possible. Specifically, this is done after invoking
+# each generator. (Later I'll document the rationale for trying extra target
+# conversion at that point).
+#
+# That early conversion is not always desirable. Suppose a generator got a
+# source of type Y and must consume one target of type X_1 and one target of
+# type X_2. When converting Y to X_1 extra target of type Y_2 is created. We
+# should not try to convert it to type X_1, because if we do so, the generator
+# will get two targets of type X_1, and will be at loss as to which one to use.
+# Because of that, the 'construct' rule has a parameter, telling if multiple
+# targets can be returned. If the parameter is false, conversion of extra
+# targets is not performed.
+
+import "class" : new ;
+import errors ;
 import property-set ;
+import sequence ;
+import set ;
+import utility ;
+import virtual-target ;
+
 
-if "--debug-generators" in [ modules.peek : ARGV ]
-{
+if "--debug-generators" in [ modules.peek : ARGV ]
+{
     .debug = true ;
 }
 
-# Outputs a debug message if generators debugging is on.
-# Each element of 'message' is checked to see if it's class instance.
-# If so, instead of the value, the result of 'str' call is output.
+
+# Outputs a debug message if generators debugging is on. Each element of
+# 'message' is checked to see if it's class instance. If so, instead of the
+# value, the result of 'str' call is output.
+#
 local rule generators.dout ( message * )
 {
     if $(.debug)
- {
+ {
         ECHO [ sequence.transform utility.str : $(message) ] ;
- }
+ }
 }
 
 
@@ -72,76 +79,82 @@
     return $(.indent:J="") ;
 }
 
+
 local rule increase-indent ( )
 {
     .indent += " " ;
 }
 
+
 local rule decrease-indent ( )
 {
     .indent = $(.indent[2-]) ;
 }
 
+
 # Takes a vector of 'virtual-target' instances and makes a normalized
 # representation, which is the same for given set of targets,
 # regardless of their order.
+#
 rule normalize-target-list ( targets )
 {
     local v = [ $(targets).get ] ;
     $(targets).set $(v[1]) [ sequence.insertion-sort $(v[2-]) : utility.less ] ;
 }
 
+
 # Creates a generator
-class generator
+class generator
 {
- import generators ;
- import assert ;
     import generators : indent increase-indent decrease-indent generators.dout ;
- import generators ;
     import set ;
- import utility : equal ;
+ import utility ;
     import feature ;
- import errors : error ;
+ import errors ;
     import sequence ;
     import type ;
     import virtual-target ;
     import "class" : new ;
     import property ;
-
+
     EXPORT class_at_generator : indent increase-indent decrease-indent generators.dout ;
-
- rule __init__ (
- id # identifies the generator - should be name of the rule which
- # sets up build actions
- composing ? # whether generator processes each source target in
- # turn, converting it to required types.
- # Ordinary generators pass all sources together to
- # recusrive generators.construct-types call.
-
- : source-types * # types that this generator can handle. If
- # empty, the generator can consume anything.
-
- : target-types-and-names +
- # types the generator will create and, optionally, names for
- # created targets. Each element should have the form
- # type["(" name-pattern ")"]
- # for example, obj(%_x). Name of generated target will be found
- # by replacing % with the name of source, provided explicit name
- # was not specified.
-
- : requirements *
- )
- {
+
+ rule __init__ (
+ id # Identifies the generator - should be name
+ # of the rule which sets up the build
+ # actions.
+
+ composing ? # Whether generator processes each source
+ # target in turn, converting it to required
+ # types. Ordinary generators pass all
+ # sources together to the recursive
+ # generators.construct-types call.
+
+ : source-types * # Types that this generator can handle. If
+ # empty, the generator can consume anything.
+
+ : target-types-and-names + # Types the generator will create and,
+ # optionally, names for created targets.
+ # Each element should have the form
+ # type["(" name-pattern ")"], for example,
+ # obj(%_x). Generated target name will be
+ # found by replacing % with the name of
+ # source, provided an explicit name was not
+ # specified.
+
+ : requirements *
+ )
+ {
         self.id = $(id) ;
         self.composing = $(composing) ;
         self.source-types = $(source-types) ;
         self.target-types-and-names = $(target-types-and-names) ;
         self.requirements = $(requirements) ;
-
+
         for local e in $(target-types-and-names)
- {
+ {
             # Create three parallel lists: one with the list of target types,
- # and two other with prefixes and postfixes to be added to target
+ # and two other with prefixes and postfixes to be added to target
             # name. We use parallel lists for prefix and postfix (as opposed
             # to mapping), because given target type might occur several times,
             # for example "H H(%_symbols)".
@@ -150,20 +163,21 @@
             self.name-prefix += $(m[3]:E="") ;
             self.name-postfix += $(m[4]:E="") ;
         }
-
+
         # Note that 'transform' here, is the same as 'for_each'.
         sequence.transform type.validate : $(self.source-types) ;
         sequence.transform type.validate : $(self.target-types) ;
     }
-
+
     ############## End of constructor #################
-
+
     rule id ( )
     {
         return $(self.id) ;
     }
 
     # Returns the list of target type the generator accepts.
+ #
     rule source-types ( )
     {
         return $(self.source-types) ;
@@ -171,24 +185,27 @@
 
     # Returns the list of target types that this generator produces.
     # It is assumed to be always the same -- i.e. it cannot change depending
- # list of sources.
+ # list of sources.
+ #
     rule target-types ( )
     {
         return $(self.target-types) ;
     }
-
+
     # Returns the required properties for this generator. Properties
- # in returned set must be present in build properties if this
+ # in returned set must be present in build properties if this
     # generator is to be used. If result has grist-only element,
     # that build properties must include some value of that feature.
     # XXX: remove this method?
+ #
     rule requirements ( )
     {
         return $(self.requirements) ;
     }
-
- # Returns a true value if the generator can be run with the specified
+
+ # Returns a true value if the generator can be run with the specified
     # properties.
+ #
     rule match-rank ( property-set-to-match )
     {
         # See if generator's requirements are satisfied by
@@ -196,7 +213,7 @@
         # (i.e. grist-only element), as matching any value of the
         # feature.
         local all-requirements = [ requirements ] ;
-
+
         local property-requirements feature-requirements ;
         for local r in $(all-requirements)
         {
@@ -207,11 +224,11 @@
             else
             {
                 feature-requirements += $(r) ;
- }
+ }
         }
 
         local properties-to-match = [ $(property-set-to-match).raw ] ;
- if $(property-requirements) in $(properties-to-match)
+ if $(property-requirements) in $(properties-to-match)
            && $(feature-requirements) in $(properties-to-match:G)
         {
             return true ;
@@ -221,25 +238,27 @@
             return ;
         }
     }
-
+
     # Returns another generator which differers from $(self) in
     # - id
     # - value to <toolset> feature in properties
+ #
     rule clone ( new-id : new-toolset-properties + )
     {
         return [ new $(__class__) $(new-id) $(self.composing)
                  : $(self.source-types)
- : $(self.target-types-and-names)
+ : $(self.target-types-and-names)
                  # Note: this does not remove any subfeatures of <toolset>
                  # which might cause problems
                  : [ property.change $(self.requirements) : <toolset> ]
                    $(new-toolset-properties)
                ] ;
     }
-
- # Creates another generator that is the same as $(self), except that
- # if 'base' is in target types of $(self), 'type' will in target types
- # of the new generator.
+
+ # Creates another generator that is the same as $(self), except that if
+ # 'base' is in target types of $(self), 'type' will in target types of the
+ # new generator.
+ #
     rule clone-and-change-target-type ( base : type )
     {
         local target-types ;
@@ -253,104 +272,99 @@
             else
             {
                 target-types += $(t) ;
- }
+ }
         }
-
+
         return [ new $(__class__) $(self.id) $(self.composing)
                  : $(self.source-types)
- : $(target-types)
+ : $(target-types)
                  : $(self.requirements)
                ] ;
     }
 
-
- # Tries to invoke this generator on the given sources. Returns a
- # list of generated targets (instances of 'virtual-target').
- # Returning nothing from run indicates that the generator was
- # unable to create the target.
+ # Tries to invoke this generator on the given sources. Returns a list of
+ # generated targets (instances of 'virtual-target'). Returning nothing from
+ # run indicates that the generator was unable to create the target.
+ #
     rule run ( project # Project for which the targets are generated
- name ? # Determines the name of 'name' attribute for
+ name ? # Determines the name of 'name' attribute for
                         # all generated targets. See 'generated-targets' method.
                : property-set # Desired properties for generated targets.
                : sources + # Source targets.
             )
- {
+ {
         generators.dout [ indent ] " ** generator" $(self.id) ;
         generators.dout [ indent ] " multiple:" $(mutliple) ;
- generators.dout [ indent ] " composing:" $(self.composing) ;
-
+ generators.dout [ indent ] " composing:" $(self.composing) ;
+
         if ! $(self.composing) && $(sources[2]) && $(self.source-types[2])
         {
             errors.error "Unsupported source/source-type combination" ;
         }
-
+
         # We don't run composing generators if no name is specified. The reason
         # is that composing generator combines several targets, which can have
         # different names, and it cannot decide which name to give for produced
         # target. Therefore, the name must be passed.
         #
- # This in effect, means that composing generators are runnable only
- # at top-level of transofrmation graph, or if name is passed explicitly.
- # Thus, we dissallow composing generators in the middle. For example, the
- # transofrmation CPP -> OBJ -> STATIC_LIB -> RSP -> EXE won't be allowed
- # (the OBJ -> STATIC_LIB generator is composing)
+ # This in effect, means that composing generators are runnable only at
+ # the top-level of a transformation graph, or if their name is passed
+ # explicitly. Thus, we dissallow composing generators in the middle. For
+ # example, the transformation CPP -> OBJ -> STATIC_LIB -> RSP -> EXE
+ # won't be allowed (the OBJ -> STATIC_LIB generator is composing)
         if ! $(self.composing) || $(name)
- {
+ {
             run-really $(project) $(name) : $(property-set) : $(sources) ;
- }
+ }
     }
-
-
+
     rule run-really ( project name ? : property-set : sources + )
     {
         # Targets that this generator will consume directly.
         local consumed = ;
         # Targets that can't be consumed and will be returned as-is.
         local bypassed = ;
-
+
         if $(self.composing)
         {
             convert-multiple-sources-to-consumable-types $(project)
- : $(property-set) : $(sources) : consumed bypassed ;
+ : $(property-set) : $(sources) : consumed bypassed ;
         }
         else
- {
- convert-to-consumable-types $(project) $(name) :
- $(property-set) : $(sources)
- :
- : consumed bypassed ;
+ {
+ convert-to-consumable-types $(project) $(name) : $(property-set)
+ : $(sources) : : consumed bypassed ;
         }
-
+
         local result ;
- if $(consumed)
- {
- result = [ construct-result $(consumed) : $(project) $(name)
+ if $(consumed)
+ {
+ result = [ construct-result $(consumed) : $(project) $(name)
                      : $(property-set) ] ;
         }
-
-
+
         if $(result)
         {
- generators.dout [ indent ] " SUCCESS: " $(result) ;
+ generators.dout [ indent ] " SUCCESS: " $(result) ;
         }
         else
         {
             generators.dout [ indent ] " FAILURE" ;
         }
         generators.dout ;
- return $(result) ;
+ return $(result) ;
     }
 
- # Constructs the dependency graph that will be returned by this
- # generator
- rule construct-result (
+ # Constructs the dependency graph to be returned by this generator.
+ #
+ rule construct-result (
         consumed + # Already prepared list of consumable targets
- # If generator requires several source files will contain
+ # If generator requires several source files will contain
                    # exactly len $(self.source-types) targets with matching types
- # Otherwise, might contain several targets with the type of
- # $(self.source-types[1])
- : project name ?
- : property-set # Properties to be used for all actions create here
+ # Otherwise, might contain several targets with the type of
+ # $(self.source-types[1])
+ : project name ?
+ : property-set # Properties to be used for all actions create here.
     )
     {
         local result ;
@@ -358,23 +372,23 @@
         if ! $(self.source-types[2]) && ! $(self.composing)
         {
             for local r in $(consumed)
- {
+ {
                 result += [ generated-targets $(r) : $(property-set) : $(project) $(name) ] ; #(targets) ;
             }
         }
         else
         {
- if $(consumed)
+ if $(consumed)
             {
- result += [ generated-targets $(consumed) : $(property-set)
+ result += [ generated-targets $(consumed) : $(property-set)
                             : $(project) $(name) ] ;
- }
+ }
         }
         return $(result) ;
     }
-
- # Determine the name of the produced target from the
- # names of the sources.
+
+ # Determine the name of the produced target from the names of the sources.
+ #
     rule determine-output-name ( sources + )
     {
         # The simple case if when a name
@@ -387,126 +401,127 @@
         # dot. In the second case -- no sure, but for now take
         # the part till the last dot too.
         name = [ utility.basename [ $(sources[1]).name ] ] ;
-
+
         for local s in $(sources[2])
         {
             local n2 = [ utility.basename [ $(s).name ] ] ;
             if $(n2) != $(name)
             {
- error "$(self.id): source targets have different names: cannot determine target name" ;
+ errors.error "$(self.id): source targets have different names: cannot determine target name" ;
             }
         }
-
+
         # Names of sources might include directory. We should strip it.
         name = $(name:D=) ;
-
+
         return $(name) ;
     }
-
- # Constructs targets that are created after consuming 'sources'.
- # The result will be the list of virtual-target, which the same length
- # as 'target-types' attribute and with corresponding types.
- #
- # When 'name' is empty, all source targets must have the same value of
- # the 'name' attribute, which will be used instead of the 'name' argument.
+
+ # Constructs targets that are created after consuming 'sources'. The result
+ # will be the list of virtual-target, which has the same length as the
+ # 'target-types' attribute and with corresponding types.
+ #
+ # When 'name' is empty, all source targets must have the same value of the
+ # 'name' attribute, which will be used instead of the 'name' argument.
     #
     # The value of 'name' attribute for each generated target will be equal to
     # the 'name' parameter if there's no name pattern for this type. Otherwise,
- # the '%' symbol in the name pattern will be replaced with the 'name' parameter
- # to obtain the 'name' attribute.
+ # the '%' symbol in the name pattern will be replaced with the 'name'
+ # parameter to obtain the 'name' attribute.
     #
- # For example, if targets types are T1 and T2(with name pattern "%_x"), suffixes
- # for T1 and T2 are .t1 and t2, and source if foo.z, then created files would
- # be "foo.t1" and "foo_x.t2". The 'name' attribute actually determined the
- # basename of a file.
+ # For example, if targets types are T1 and T2(with name pattern "%_x"),
+ # suffixes for T1 and T2 are .t1 and t2, and source if foo.z, then created
+ # files would be "foo.t1" and "foo_x.t2". The 'name' attribute actually
+ # determines the basename of a file.
     #
     # Note that this pattern mechanism has nothing to do with implicit patterns
- # in make. It's a way to produce target which name is different for name of
+ # in make. It's a way to produce target which name is different for name of
     # source.
+ #
     rule generated-targets ( sources + : property-set : project name ? )
     {
         if ! $(name)
         {
             name = [ determine-output-name $(sources) ] ;
         }
-
+
         # Assign an action for each target
         local action = [ action-class ] ;
- local a = [ class.new $(action) $(sources) : $(self.id) :
+ local a = [ class.new $(action) $(sources) : $(self.id) :
                     $(property-set) ] ;
-
+
         # Create generated target for each target type.
         local targets ;
         local pre = $(self.name-prefix) ;
         local post = $(self.name-postfix) ;
- for local t in $(self.target-types)
- {
+ for local t in $(self.target-types)
+ {
             local generated-name = $(pre[1])$(name)$(post[1]) ;
             pre = $(pre[2-]) ;
             post = $(post[2-]) ;
-
- targets += [ class.new file-target $(generated-name)
+
+ targets += [ class.new file-target $(generated-name)
               : $(t) : $(project) : $(a) ] ;
- }
-
+ }
+
         return [ sequence.transform virtual-target.register : $(targets) ] ;
- }
-
+ }
+
     # Attempts to convert 'source' to the types that this generator can
     # handle. The intention is to produce the set of targets can should be
     # used when generator is run.
- rule convert-to-consumable-types ( project name ? :
- property-set : sources +
- : only-one ? # convert 'source' to only one of source types
- # if there's more that one possibility, report an
- # error
- : consumed-var # name of variable which recieves all targets which
- # can be consumed.
- bypassed-var # name variable which recieves all targets which
- # cannot be consumed
+ #
+ rule convert-to-consumable-types ( project name ? :
+ property-set : sources +
+ : only-one ? # Convert 'source' to only one of the source types. If
+ # there's more that one possibility, report an error.
+ : consumed-var # Name of the variable which recieves all targets which
+ # can be consumed.
+ bypassed-var # Name of the variable which recieves all targets which
+ # cannot be consumed
     )
- {
+ {
         # We're likely to be passed 'consumed' and 'bypassed'
         # var names. Use "_" to avoid name conflicts.
         local _consumed ;
         local _bypassed ;
- local missing-types ;
+ local missing-types ;
 
         if $(sources[2])
         {
- # Don't know how to handle several sources yet. Just try
+ # Don't know how to handle several sources yet. Just try
             # to pass the request to other generator
             missing-types = $(self.source-types) ;
         }
         else
- {
+ {
             consume-directly $(sources) : _consumed : missing-types ;
         }
-
+
         # No need to search for transformation if
         # some source type has consumed source and
         # no more source types are needed.
- if $(only-one) && $(_consumed)
+ if $(only-one) && $(_consumed)
         {
             missing-types = ;
         }
-
+
         #TODO: we should check that only one source type
         #if create of 'only-one' is true.
         # TODO: consider if consuned/bypassed separation should
         # be done by 'construct-types'.
-
+
         if $(missing-types)
- {
+ {
             local transformed = [ generators.construct-types $(project) $(name)
               : $(missing-types) : $(property-set) : $(sources) ] ;
-
- # Add targets of right type to 'consumed'. Add others to
- # 'bypassed'. The 'generators.construct' rule has done
- # its best to convert everything to the required type.
- # There's no need to rerun it on targets of different types.
-
- # NOTE: ignoring usage requirements
+
+ # Add targets of right type to 'consumed'. Add others to 'bypassed'.
+ # The 'generators.construct' rule has done its best to convert
+ # everything to the required type. There's no need to rerun it on
+ # targets of different types.
+
+ # NOTE: ignoring usage requirements.
             for local t in $(transformed[2-])
             {
                 if [ $(t).type ] in $(missing-types)
@@ -517,35 +532,36 @@
                 {
                     _bypassed += $(t) ;
                 }
- }
- }
-
- _consumed = [ sequence.unique $(_consumed) ] ;
+ }
+ }
+
+ _consumed = [ sequence.unique $(_consumed) ] ;
         _bypassed = [ sequence.unique $(_bypassed) ] ;
-
+
         # remove elements of '_bypassed' that are in '_consumed'
-
- # Suppose the target type of current generator, X is produced from
+
+ # Suppose the target type of current generator, X is produced from
         # X_1 and X_2, which are produced from Y by one generator.
         # When creating X_1 from Y, X_2 will be added to 'bypassed'
         # Likewise, when creating X_2 from Y, X_1 will be added to 'bypassed'
         # But they are also in 'consumed'. We have to remove them from
         # bypassed, so that generators up the call stack don't try to convert
- # them.
-
+ # them.
+
         # In this particular case, X_1 instance in 'consumed' and X_1 instance
         # in 'bypassed' will be the same: because they have the same source and
         # action name, and 'virtual-target.register' won't allow two different
         # instances. Therefore, it's OK to use 'set.difference'.
-
+
         _bypassed = [ set.difference $(_bypassed) : $(_consumed) ] ;
-
-
+
+
         $(consumed-var) += $(_consumed) ;
         $(bypassed-var) += $(_bypassed) ;
     }
-
+
     # Converts several files to consumable types.
+ #
     rule convert-multiple-sources-to-consumable-types
       ( project : property-set : sources * : consumed-var bypassed-var )
     {
@@ -562,23 +578,23 @@
             {
                 generators.dout [ indent ] " failed to convert " $(source) ;
             }
- $(consumed-var) += $(_c) ;
+ $(consumed-var) += $(_c) ;
             $(bypassed-var) += $(_b) ;
- }
+ }
     }
-
+
     rule consume-directly ( source : consumed-var : missing-types-var )
     {
         local real-source-type = [ $(source).type ] ;
-
+
         # If there are no source types, we can consume anything
         local source-types = $(self.source-types) ;
         source-types ?= $(real-source-type) ;
-
+
         for local st in $(source-types)
         {
             # The 'source' if of right type already)
- if $(real-source-type) = $(st) ||
+ if $(real-source-type) = $(st) ||
               [ type.is-derived $(real-source-type) $(st) ]
             {
                 $(consumed-var) += $(source) ;
@@ -587,44 +603,45 @@
             {
                $(missing-types-var) += $(st) ;
             }
- }
+ }
     }
-
-
- # Returns the class to be used to actions. Default implementation
+
+ # Returns the class to be used to actions. Default implementation
     # returns "action".
+ #
     rule action-class ( )
     {
         return "action" ;
- }
+ }
 }
 
-import errors : error ;
 
 .generators = ;
 
-# Registers new generator instance 'g'.
+
+# Registers a new generator instance 'g'.
+#
 rule register ( g )
 {
     .generators += $(g) ;
-
+
     # A generator can produce several targets of the
     # same type. We want unique occurence of that generator
     # in .generators.$(t) in that case, otherwise, it will
     # be tried twice and we'll get false ambiguity.
     for local t in [ sequence.unique [ $(g).target-types ] ]
- {
+ {
         .generators.$(t) += $(g) ;
- }
-
+ }
+
     # Update the set of generators for toolset
-
+
     # TODO: should we check that generator with this id
     # is not already registered. For example, the fop.jam
     # module intentionally declared two generators with the
     # same id, so such check will break it.
     local id = [ $(g).id ] ;
-
+
     # Some generators have multiple periods in their name, so the
     # normal $(id:S=) won't generate the right toolset name.
     # e.g. if id = gcc.compile.c++, then
@@ -640,87 +657,88 @@
     }
     .generators-for-toolset.$(base) += $(g) ;
 }
-
-# Creates new instance of the 'generator' class and registers it.
-# Retursn the creates instance.
-# Rationale: the instance is returned so that it's possible to first register
-# a generator and then call 'run' method on that generator, bypassing all
-# generator selection.
+
+
+# Creates new instance of the 'generator' class and registers it. Returns the
+# created instance. Rationale: the instance is returned so that it's possible to
+# first register a generator and then call the 'run' method on that generator,
+# bypassing all generator selection.
+#
 rule register-standard ( id : source-types * : target-types + : requirements * )
 {
     local g = [ new generator $(id) : $(source-types) : $(target-types)
- : $(requirements) ] ;
- register $(g) ;
+ : $(requirements) ] ;
+ register $(g) ;
     return $(g) ;
 }
 
-# Creates new instance of the 'composing-generator' class and
-# registers it.
+
+# Creates new instance of the 'composing-generator' class and registers it.
+#
 rule register-composing ( id : source-types * : target-types + : requirements * )
 {
- local g = [ new generator $(id) true : $(source-types)
- : $(target-types) : $(requirements) ] ;
+ local g = [ new generator $(id) true : $(source-types) : $(target-types)
+ : $(requirements) ] ;
     register $(g) ;
     return $(g) ;
 }
 
-# Returns all generators which belong to 'toolset', i.e. which
-# ids are $(toolset).<something>
+
+# Returns all generators which belong to 'toolset', i.e. whose ids are
+# '$(toolset).<something>'.
+#
 rule generators-for-toolset ( toolset )
 {
     return $(.generators-for-toolset.$(toolset)) ;
 }
 
-# Make generator 'overrider-id' be preferred to
-# 'overridee-id'. If, when searching for generators
-# that could produce a target of certain type,
-# both those generators are amoung viable generators,
-# the overridden generator is immediately discarded.
-#
-# The overridden generators are discarded immediately
-# after computing the list of viable generators, before
-# running any of them.
+
+# Make generator 'overrider-id' be preferred to 'overridee-id'. If, when
+# searching for generators that could produce a target of a certain type, both
+# those generators are amoung viable generators, the overridden generator is
+# immediately discarded.
+#
+# The overridden generators are discarded immediately after computing the list
+# of viable generators, before running any of them.
+#
 rule override ( overrider-id : overridee-id )
 {
- .override.$(overrider-id) += $(overridee-id) ;
+ .override.$(overrider-id) += $(overridee-id) ;
 }
 
 
-
-
-# Set if results of the current generators search are going to be cached
-# This means no futher attempts to cache generators search should be
-# made.
+# Set if results of the current generators search are going to be cached. This
+# means no futher attempts to cache generators search should be made.
 .caching = ;
 
-# Returns a list of source type which can possibly be converted
-# to 'target-type' by some chain of generator invocation.
+
+# Returns a list of source type which can possibly be converted to 'target-type'
+# by some chain of generator invocation.
+#
+# More formally, takes all generators for 'target-type' and returns union of
+# source types for those generators and result of calling itself recirsively on
+# source types.
 #
-# More formally, takes all generators for 'target-type' and
-# returns union of source types for those generators and result
-# of calling itself recusrively on source types.
 local rule viable-source-types-real ( target-type )
 {
     local generators ;
 
     local t = [ type.all-bases $(target-type) ] ;
-
+
     local result ;
- # 't' is the list of types which are not yet processed
+ # 't' is the list of types which have not yet been processed.
     while $(t)
     {
- # Find all generators for current type.
+ # Find all generators for current type.
         # Unlike 'find-viable-generators' we don't care about property-set.
         local generators = $(.generators.$(t[1])) ;
         t = $(t[2-]) ;
-
 
-
         while $(generators)
         {
             local g = $(generators[1]) ;
             generators = $(generators[2-]) ;
-
+
             if ! [ $(g).source-types ]
             {
                 # Empty source types -- everything can be accepted
@@ -730,10 +748,10 @@
                 # This will terminate outer loop.
                 t = ;
             }
-
- for local source-type in [ $(g).source-types ]
+
+ for local source-type in [ $(g).source-types ]
             {
- if ! $(source-type) in $(result)
+ if ! $(source-type) in $(result)
                 {
                     # If generator accepts 'source-type' it
                     # will happily accept any type derived from it
@@ -741,22 +759,22 @@
                     for local n in $(all)
                     {
                         if ! $(n) in $(result)
- {
+ {
                             t += $(n) ;
                             result += $(n) ;
- }
- }
- }
- }
- }
- }
-
- result = [ sequence.unique $(result) ] ;
-
- return $(result) ;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return [ sequence.unique $(result) ] ;
 }
 
+
 # Helper rule, caches the result of 'viable-source-types-real'.
+#
 rule viable-source-types ( target-type )
 {
     local key = .vst.$(target-type) ;
@@ -769,46 +787,49 @@
         }
         $(key) = $(v) ;
     }
-
+
     if $($(key)) != none
     {
         return $($(key)) ;
- }
+ }
 }
 
-# Returns the list of source types, which, when passed to 'run'
-# method of 'generator', has some change of being eventually used
-# (probably after conversion by other generators)
-rule viable-source-types-for-generator-real ( generator )
-{
+
+# Returns the list of source types, which, when passed to 'run' method of
+# 'generator', has some change of being eventually used (probably after
+# conversion by other generators).
+#
+rule viable-source-types-for-generator-real ( generator )
+{
     local source-types = [ $(generator).source-types ] ;
     if ! $(source-types)
     {
- # If generator does not specify any source types,
- # it might be special generator like builtin.lib-generator
- # which just relays to other generators. Return '*' to
- # indicate that any source type is possibly OK, since we don't
- # know for sure.
+ # If generator does not specify any source types, it might be special
+ # generator like builtin.lib-generator which just relays to other
+ # generators. Return '*' to indicate that any source type is possibly
+ # OK, since we don't know for sure.
         return * ;
     }
     else
- {
+ {
         local result ;
         for local s in $(source-types)
         {
- result += [ type.all-derived $(s) ]
+ result += [ type.all-derived $(s) ]
               [ generators.viable-source-types $(s) ] ;
         }
- result = [ sequence.unique $(result) ] ;
+ result = [ sequence.unique $(result) ] ;
         if * in $(result)
         {
             result = * ;
- }
+ }
         return $(result) ;
- }
-}
+ }
+}
+
 
-# Helper rule, caches the result of 'viable-source-types-for-genrator'.
+# Helper rule, caches the result of 'viable-source-types-for-generator'.
+#
 local rule viable-source-types-for-generator ( generator )
 {
     local key = .vstg.$(generator) ;
@@ -819,36 +840,33 @@
         {
             v = none ;
         }
- $(key) = $(v) ;
+ $(key) = $(v) ;
     }
-
+
     if $($(key)) != none
     {
         return $($(key)) ;
- }
+ }
 }
 
 
-
-# Returns usage requirements + list of created targets
-local rule try-one-generator-really ( project name ? : generator :
- target-type : property-set : sources * )
+# Returns usage requirements + list of created targets.
+#
+local rule try-one-generator-really ( project name ? : generator : target-type
+ : property-set : sources * )
 {
     local targets =
- [ $(generator).run $(project) $(name)
- : $(property-set)
- : $(sources)
- ] ;
-
+ [ $(generator).run $(project) $(name) : $(property-set) : $(sources) ] ;
+
     local usage-requirements ;
     local success ;
-
+
     generators.dout [ indent ] returned $(targets) ;
-
+
     if $(targets)
     {
         success = true ;
-
+
         if [ class.is-a $(targets[1]) : property-set ]
         {
             usage-requirements = $(targets[1]) ;
@@ -859,55 +877,56 @@
             usage-requirements = [ property-set.empty ] ;
         }
     }
-
+
     generators.dout [ indent ] " generator" [ $(generator).id ] " spawned " ;
- generators.dout [ indent ] " " $(targets) ;
+ generators.dout [ indent ] " " $(targets) ;
     if $(usage-requirements)
     {
         generators.dout [ indent ] " with usage requirements:" $(x) ;
     }
-
-
+
     if $(success)
     {
         return $(usage-requirements) $(targets) ;
     }
 }
 
-# Checks if generator invocation can be pruned, because it's guaranteed
-# to fail. If so, quickly returns empty list. Otherwise, calls
-# try-one-generator-really.
-local rule try-one-generator ( project name ? : generator :
- target-type : property-set : sources * )
-{
+
+# Checks if generator invocation can be pruned, because it's guaranteed to fail.
+# If so, quickly returns empty list. Otherwise, calls try-one-generator-really.
+#
+local rule try-one-generator ( project name ? : generator : target-type
+ : property-set : sources * )
+{
     local source-types ;
     for local s in $(sources)
     {
         source-types += [ $(s).type ] ;
     }
- local viable-source-types =
+ local viable-source-types =
       [ viable-source-types-for-generator $(generator) ] ;
-
- if $(source-types) && $(viable-source-types) != * &&
- ! [ set.intersection $(source-types) : $(viable-source-types) ]
+
+ if $(source-types) && $(viable-source-types) != * &&
+ ! [ set.intersection $(source-types) : $(viable-source-types) ]
     {
         local id = [ $(generator).id ] ;
         generators.dout [ indent ] " ** generator '$(id)' pruned" ;
         #generators.dout [ indent ] "source-types" '$(source-types)' ;
         #generators.dout [ indent ] "viable-source-types" '$(viable-source-types)' ;
- }
+ }
     else {
         return [ try-one-generator-really $(project) $(name)
           : $(generator)
             : $(target-type) : $(property-set) : $(sources) ] ;
- }
+ }
 }
 
-rule construct-types ( project name ? : target-types + :
- property-set : sources + )
+
+rule construct-types ( project name ? : target-types + : property-set
+ : sources + )
 {
     local result ;
- local matched-types ;
+ local matched-types ;
     local usage-requirements = [ property-set.empty ] ;
     for local t in $(target-types)
     {
@@ -920,14 +939,12 @@
             matched-types += $(t) ;
         }
     }
- # TODO: have to introduce parameter controlling if
- # several types can be matches and add appropriate
- # checks
-
- # TODO: need to review the documentation for
- # 'construct' to see if it should return $(source) even
- # if nothing can be done with it. Currents docs seem to
- # imply that, contrary to the behaviour.
+ # TODO: have to introduce parameter controlling if several types can be
+ # matched and add appropriate checks.
+
+ # TODO: need to review the documentation for 'construct' to see if it should
+ # return $(source) even if nothing can be done with it. Currents docs seem
+ # to imply that, contrary to the behaviour.
     if $(result)
     {
         return $(usage-requirements) $(result) ;
@@ -938,8 +955,9 @@
     }
 }
 
-# Ensures all 'targets' have types. If this is not so, exists with
-# error.
+
+# Ensures all 'targets' have their type. If this is not so, exists with error.
+#
 local rule ensure-type ( targets * )
 {
     for local t in $(targets)
@@ -947,20 +965,22 @@
         if ! [ $(t).type ]
         {
             errors.error "target" [ $(t).str ] "has no type" ;
- }
- }
+ }
+ }
 }
-
+
+
 # Returns generators which can be used to construct target of specified type
 # with specified properties. Uses the following algorithm:
-# - iterates over requested target-type and all it's bases (in the order returned bt
-# type.all-bases.
-# - for each type find all generators that generate that type and which requirements
-# are satisfied by properties.
+# - iterates over requested target-type and all its bases (in the order returned
+# by type.all-bases.
+# - for each type find all generators that generate that type and whose
+# requirements are satisfied by properties.
 # - if the set of generators is not empty, returns that set.
 #
 # Note: this algorithm explicitly ignores generators for base classes if there's
-# at least one generator for requested target-type.
+# at least one generator for the requested target-type.
+#
 local rule find-viable-generators-aux ( target-type : property-set )
 {
     # Select generators that can create the required target type.
@@ -969,52 +989,51 @@
 
     import type ;
     local t = [ type.all-bases $(target-type) ] ;
-
- generators.dout [ indent ] find-viable-generators target-type= $(target-type)
- property-set= [ $(property-set).as-path ]
- ;
-
- # Get the lit of generators for the requested type.
- # If no generator is registered, try base type, and so on.
+
+ generators.dout [ indent ] find-viable-generators target-type= $(target-type)
+ property-set= [ $(property-set).as-path ] ;
+
+ # Get the list of generators for the requested type. If no generator is
+ # registered, try base type, and so on.
     local generators ;
     while $(t[1])
     {
- generators.dout [ indent ] "trying type" $(t[1]) ;
+ generators.dout [ indent ] "trying type" $(t[1]) ;
         if $(.generators.$(t[1]))
         {
             generators.dout [ indent ] "there are generators for this type" ;
             generators = $(.generators.$(t[1])) ;
-
+
             if $(t[1]) != $(target-type)
             {
- # We're here, when no generators for target-type are found,
- # but there are some generators for a base type.
- # We'll try to use them, but they will produce targets of
- # base type, not of 'target-type'. So, we clone the generators
- # and modify the list of target types.
+ # We're here, when no generators for target-type are found, but
+ # there are some generators for a base type. We'll try to use
+ # them, but they will produce targets of base type, not of
+ # 'target-type'. So, we clone the generators and modify the list
+ # of target types.
                 local generators2 ;
                 for local g in $(generators)
                 {
- # generators.register adds generator to the list of generators
- # for toolsets, which is a bit strange, but should work.
- # That list is only used when inheriting toolset, which
- # should have being done before generators are run.
- generators2 += [
+ # generators.register adds a generator to the list of
+ # generators for toolsets, which is a bit strange, but
+ # should work. That list is only used when inheriting a
+ # toolset, which should have been done before running
+ # generators.
+ generators2 += [
                       $(g).clone-and-change-target-type $(t[1]) : $(target-type) ] ;
                     generators.register $(generators2[-1]) ;
- }
+ }
                 generators = $(generators2) ;
- }
+ }
             t = ;
- }
- t = $(t[2-]) ;
+ }
+ t = $(t[2-]) ;
     }
-
-
+
     for local g in $(generators)
     {
         generators.dout [ indent ] "trying generator" [ $(g).id ] "(" [ $(g).source-types ] -> [ $(g).target-types ] ")" ;
-
+
         local m = [ $(g).match-rank $(property-set) ] ;
         if $(m)
         {
@@ -1022,10 +1041,11 @@
             viable-generators += $(g) ;
         }
     }
-
+
     return $(viable-generators) ;
 }
 
+
 rule find-viable-generators ( target-type : property-set )
 {
     local key = $(target-type).$(property-set) ;
@@ -1036,29 +1056,29 @@
         if ! $(l)
         {
             l = none ;
- }
+ }
         .fv.$(key) = $(l) ;
     }
-
+
     if $(l) = none
     {
         l = ;
     }
-
+
     local viable-generators ;
     for local g in $(l)
     {
- # Avoid trying the same generator twice on different levels.
- if ! $(g) in $(.active-generators)
+ # Avoid trying the same generator twice on different levels.
+ if ! $(g) in $(.active-generators)
         {
             viable-generators += $(g) ;
- }
+ }
     }
-
+
     # Generators which override 'all'.
     local all-overrides ;
     # Generators which are overriden
- local overriden-ids ;
+ local overriden-ids ;
     for local g in $(viable-generators)
     {
         local id = [ $(g).id ] ;
@@ -1067,8 +1087,8 @@
         if all in $(this-overrides)
         {
             all-overrides += $(g) ;
- }
- }
+ }
+ }
     if $(all-overrides)
     {
         viable-generators = $(all-overrides) ;
@@ -1079,34 +1099,37 @@
         if ! [ $(g).id ] in $(overriden-ids)
         {
             result += $(g) ;
- }
+ }
     }
-
+
     return $(result) ;
-}
-
+}
+
+
 .construct-stack = ;
 
-# Attempts to construct target by finding viable generators, running them
-# and selecting the dependency graph
+
+# Attempts to construct a target by finding viable generators, running them and
+# selecting the dependency graph.
+#
 local rule construct-really (
    project name ? : target-type : property-set : sources * )
 {
     viable-generators = [ find-viable-generators $(target-type) : $(property-set) ] ;
-
- generators.dout [ indent ] "*** " [ sequence.length $(viable-generators) ]
- " viable generators" ;
-
+
+ generators.dout [ indent ] "*** " [ sequence.length $(viable-generators) ]
+ " viable generators" ;
+
     local result ;
     local generators-that-succeeded ;
     for local g in $(viable-generators)
     {
         # This variable will be restored on exit from this scope.
         local .active-generators = $(g) $(.active-generators) ;
-
+
         local r = [ try-one-generator $(project) $(name) : $(g) : $(target-type) :
           $(property-set) : $(sources) ] ;
-
+
         if $(r)
         {
             generators-that-succeeded += $(g) ;
@@ -1138,74 +1161,73 @@
             else
             {
                 result = $(r) ;
- }
+ }
         }
     }
-
+
     return $(result) ;
-}
-
-
-# Attempts to create target of 'target-type' with 'properties'
-# from 'sources'. The 'sources' are treated as a collection of
-# *possible* ingridients -- i.e. it is not required to consume
-# them all. If 'multiple' is true, the rule is allowed to return
-# several targets of 'target-type'.
-#
+}
+
+
+# Attempts to create a target of 'target-type' with 'properties' from 'sources'.
+# The 'sources' are treated as a collection of *possible* ingridients -- i.e. it
+# is not required to consume them all. If 'multiple' is true, the rule is
+# allowed to return several targets of 'target-type'.
 #
-# Returns a list of target. When this invocation is first instance of
+# Returns a list of targets. When this invocation is first instance of
 # 'construct' in stack, returns only targets of requested 'target-type',
-# otherwise, returns also unused sources and additionally generated
-# targets.
+# otherwise, returns also unused sources and additionally generated targets.
+#
 rule construct ( project name ? : target-type : property-set * : sources * )
 {
     if (.construct-stack)
     {
         ensure-type $(sources) ;
     }
-
+
     .construct-stack += 1 ;
 
     increase-indent ;
 
     if $(.debug)
- {
+ {
         generators.dout [ indent ] "*** construct" $(target-type) ;
-
+
         for local s in $(sources)
         {
             generators.dout [ indent ] " from" $(s) ;
         }
- generators.dout [ indent ] " properties:" [ $(property-set).raw ] ;
+ generators.dout [ indent ] " properties:" [ $(property-set).raw ] ;
     }
-
-
- local result = [ construct-really $(project) $(name)
+
+ local result = [ construct-really $(project) $(name)
       : $(target-type) : $(property-set) : $(sources) ] ;
-
+
     decrease-indent ;
-
+
     .construct-stack = $(.construct-stack[2-]) ;
-
- return $(result) ;
+
+ return $(result) ;
 }
 
-# Given 'result', obtained from some generator or
-# generators.construct, adds 'raw-properties' as usage requirements
-# to it. If result already contains usage requirements -- that is
-# the first element of result of an instance of the property-set class,
-# the existing usage requirements and 'raw-properties' are combined.
+
+# Given 'result', obtained from some generator or generators.construct, adds
+# 'raw-properties' as usage requirements to it. If result already contains usage
+# requirements -- that is the first element of result of an instance of the
+# property-set class, the existing usage requirements and 'raw-properties' are
+# combined.
+#
 rule add-usage-requirements ( result * : raw-properties * )
 {
     if $(result)
     {
- if [ class.is-a $(result[1]) : property-set ]
+ if [ class.is-a $(result[1]) : property-set ]
         {
             return [ $(result[1]).add-raw $(raw-properties) ] $(result[2-]) ;
         }
         else
         {
             return [ property-set.create $(raw-properties) ] $(result) ;
- }
- }
+ }
+ }
 }

Modified: branches/proto/v3/tools/build/v2/build/modifiers.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/modifiers.jam (original)
+++ branches/proto/v3/tools/build/v2/build/modifiers.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -125,9 +125,10 @@
         return $(target) ;
     }
     
- # Utility, clones a file-target with optional changes to the name, type, and project
- # of the target.
- # NOTE: This functionality should be moved, and generalized, to virtual-targets.
+ # Utility, clones a file-target with optional changes to the name, type and
+ # project of the target.
+ # NOTE: This functionality should be moved, and generalized, to
+ # virtual-targets.
     #
     rule clone-file-target ( target : new-name ? : new-type ? : new-project ? )
     {
@@ -153,10 +154,11 @@
     }
 }
 
-# A modifier that changes the name of a target, after it's generated, given
-# a regular expression to slpit the name, and a set of token to insert
-# between the split tokens of the name. This also exposes the target for other
-# uses with a symlink to the original name (optionally).
+
+# A modifier that changes the name of a target, after it's generated, given a
+# regular expression to split the name, and a set of token to insert between the
+# split tokens of the name. This also exposes the target for other uses with a
+# symlink to the original name (optionally).
 #
 class name-modifier : modifier
 {

Modified: branches/proto/v3/tools/build/v2/build/project.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/project.jam (original)
+++ branches/proto/v3/tools/build/v2/build/project.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,86 +1,82 @@
-# Copyright 2002, 2003 Dave Abrahams
-# Copyright 2002, 2005, 2006 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# Implements project representation and loading.
-# Each project is represented by
-# - a module where all the Jamfile content live.
+# Copyright 2002, 2003 Dave Abrahams
+# Copyright 2002, 2005, 2006 Rene Rivera
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Implements project representation and loading. Each project is represented
+# by:
+# - a module where all the Jamfile content live.
 # - an instance of 'project-attributes' class.
-# (given module name, can be obtained by 'attributes' rule)
+# (given a module name, can be obtained using the 'attributes' rule)
 # - an instance of 'project-target' class (from targets.jam)
-# (given a module name, can be obtained by 'target' rule)
+# (given a module name, can be obtained using the 'target' rule)
 #
-# Typically, projects are created as result of loading Jamfile, which is
-# do by rules 'load' and 'initialize', below. First, module for Jamfile
-# is loaded and new project-attributes instance is created. Some rules
-# necessary for project are added to the module (see 'project-rules' module)
-# at the bottom of this file.
-# Default project attributes are set (inheriting attributes of parent project, if
-# it exists). After that, Jamfile is read. It can declare its own attributes,
-# via 'project' rule, which will be combined with already set attributes.
-#
-#
-# The 'project' rule can also declare project id, which will be associated with
-# the project module.
-#
-# There can also be 'standalone' projects. They are created by calling 'initialize'
-# on arbitrary module, and not specifying location. After the call, the module can
-# call 'project' rule, declare main target and behave as regular projects. However,
-# since it's not associated with any location, it's better declare only prebuilt
-# targets.
-#
-# The list of all loaded Jamfile is stored in variable .project-locations. It's possible
-# to obtain module name for a location using 'module-name' rule. The standalone projects
-# are not recorded, the only way to use them is by project id.
-
+# Typically, projects are created as result of loading a Jamfile, which is done
+# by rules 'load' and 'initialize', below. First, module for Jamfile is loaded
+# and new project-attributes instance is created. Some rules necessary for
+# project are added to the module (see 'project-rules' module) at the bottom of
+# this file. Default project attributes are set (inheriting attributes of
+# parent project, if it exists). After that the Jamfile is read. It can declare
+# its own attributes using the 'project' rule which will be combined with any
+# alread set attributes.
+#
+# The 'project' rule can also declare a project id which will be associated
+# with the project module.
+#
+# There can also be 'standalone' projects. They are created by calling
+# 'initialize' on an arbitrary module and not specifying their location. After
+# the call, the module can call the 'project' rule, declare main targets and
+# behave as a regular project except that, since it's not associated with any
+# location, it should not declare targets that are not prebuilt.
+#
+# The list of all loaded Jamfile is stored in the .project-locations variable.
+# It's possible to obtain a module name for a location using the 'module-name'
+# rule. Standalone projects are not recorded and can only be referenced using
+# their project id.
 
-import modules : peek poke ;
-import numbers ;
-import path ;
-import sequence ;
-import errors : error ;
-
-import print ;
 import "class" : new ;
 import errors ;
-import assert ;
+import modules ;
+import path ;
+import print ;
 import property-set ;
+import sequence ;
 
-#
-# Loads jamfile at the given location. After loading, project global
-# file and jamfile needed by the loaded one will be loaded recursively.
-# If the jamfile at that location is loaded already, does nothing.
-# Returns the project module for the Jamfile.
+
+# Loads the Jamfile at the given location. After loading, project global file
+# and Jamfiles needed by the requested one will be loaded recursively. If the
+# Jamfile at that location is loaded already, does nothing. Returns the project
+# module for the Jamfile.
 #
 rule load ( jamfile-location )
-{
+{
     if --debug-loading in [ modules.peek : ARGV ]
     {
         ECHO "Loading Jamfile at" '$(jamfile-location)' ;
- }
-
- local module-name = [ module-name $(jamfile-location) ] ;
+ }
+
+ local module-name = [ module-name $(jamfile-location) ] ;
     # If Jamfile is already loaded, don't try again.
     if ! $(module-name) in $(.jamfile-modules)
- {
+ {
         load-jamfile $(jamfile-location) ;
-
- # We want to make sure that child project are loaded only
- # after parent projects. In particular, because parent projects
- # define attributes whch are inherited by children, and we don't
- # want children to be loaded before parents has defined everything.
+
+ # We want to make sure that child project are loaded only after parent
+ # projects. In particular, because parent projects define attributes
+ # which are inherited by children, and we don't want children to be
+ # loaded before parent has defined everything.
         #
- # While "build-project" and "use-project" can potentially refer
- # to child projects from parent projects, we don't immediately
- # loading child projects when seing those attributes. Instead,
- # we record the minimal information that will be used only later.
+ # While "build-project" and "use-project" can potentially refer to child
+ # projects from parent projects, we don't immediately load child
+ # projects when seeing those attributes. Instead, we record the minimal
+ # information to be used only later.
         load-used-projects $(module-name) ;
- }
- return $(module-name) ;
+ }
+ return $(module-name) ;
 }
 
+
 rule load-used-projects ( module-name )
 {
     local used = [ modules.peek $(module-name) : .used-projects ] ;
@@ -90,39 +86,40 @@
     {
         local id = $(used[1]) ;
         local where = $(used[2]) ;
-
- project.use $(id) : [ path.root
- [ path.make $(where) ] $(location) ] ;
+
+ project.use $(id) : [ path.root [ path.make $(where) ] $(location) ] ;
         used = $(used[3-]) ;
- }
+ }
 }
 
 
-# Note the use of character groups, as opposed to listing
-# 'Jamroot' and 'jamroot'. With the latter, we'd get duplicate
-# matches on windows and would have to eliminate duplicates.
-JAMROOT ?= [ peek : JAMROOT ] ;
+# Note the use of character groups, as opposed to listing 'Jamroot' and
+# 'jamroot'. With the latter, we'd get duplicate matches on Windows and would
+# have to eliminate duplicates.
+JAMROOT ?= [ modules.peek : JAMROOT ] ;
 JAMROOT ?= project-root.jam [Jj]amroot [Jj]amroot.jam ;
 
+
 # Loads parent of Jamfile at 'location'. Issues an error if nothing is found.
 rule load-parent ( location )
 {
- local found = [ path.glob-in-parents $(location) :
+ local found = [ path.glob-in-parents $(location) :
       $(JAMROOT) $(JAMFILE) ] ;
-
+
     if ! $(found)
     {
         ECHO "error: Could not find parent for project at '$(location)'" ;
- ECHO "error: Did not find Jamfile or project-root.jam in any parent directory." ;
+ ECHO "error: Did not find Jamfile.jam or Jamroot.jam in any parent directory." ;
         EXIT ;
     }
-
- return [ load $(found[1]:D) ] ;
+
+ return [ load $(found[1]:D) ] ;
 }
 
-# Makes the specified 'module' act as if it were a regularly loaded Jamfile
-# at 'location'. If Jamfile is already located for that location, it's an
-# error.
+
+# Makes the specified 'module' act as if it were a regularly loaded Jamfile at
+# 'location'. Reports an error if a Jamfile has already been loaded for that
+# location.
 rule act-as-jamfile ( module : location )
 {
     if [ module-name $(location) ] in $(.jamfile-modules)
@@ -130,83 +127,83 @@
         errors.error "Jamfile was already loaded for '$(location)'" ;
     }
     # Set up non-default mapping from location to module.
- .module.$(location) = $(module) ;
-
- # Add the location to the list of project locations
- # so that we don't try to load Jamfile in future
+ .module.$(location) = $(module) ;
+
+ # Add the location to the list of project locations so that we don't try to
+ # reload the same Jamfile in the future.
     .jamfile-modules += [ module-name $(location) ] ;
-
+
     initialize $(module) : $(location) ;
 }
 
 
-# Given 'name' which can be project-id or plain directory name,
-# return project module corresponding to that id or directory.
-# Returns nothing of project is not found.
+# Returns the project module corresponding to the given project-id or plain
+# directory name. Returns nothing if such a project can not be found.
 rule find ( name : current-location )
 {
     local project-module ;
-
+
     # Try interpreting name as project id.
     if [ path.is-rooted $(name) ]
- {
- project-module = $($(name).jamfile-module) ;
- }
-
+ {
+ project-module = $($(name).jamfile-module) ;
+ }
+
     if ! $(project-module)
- {
- local location = [ path.root
+ {
+ local location = [ path.root
             [ path.make $(name) ] $(current-location) ] ;
- # If no project is registered for the given location, try to
- # load it. First see if we have Jamfile. If not we might have project
- # root, willing to act as Jamfile. In that case, project-root
+
+ # If no project is registered for the given location, try to load it.
+ # First see if we have a Jamfile. If not, then see if we might have a
+ # project root willing to act as a Jamfile. In that case, project root
         # must be placed in the directory referred by id.
-
+
         project-module = [ module-name $(location) ] ;
- if ! $(project-module) in $(.jamfile-modules)
+ if ! $(project-module) in $(.jamfile-modules)
         {
             if [ path.glob $(location) : $(JAMROOT) $(JAMFILE) ]
             {
- project-module = [ load $(location) ] ;
- }
+ project-module = [ load $(location) ] ;
+ }
             else
             {
                 project-module = ;
             }
- }
+ }
     }
-
+
     return $(project-module) ;
 }
 
-#
-# Returns the name of module corresponding to 'jamfile-location'.
-# If no module corresponds to location yet, associates default
-# module name with that location.
+
+# Returns the name of the module corresponding to 'jamfile-location'. If no
+# module corresponds to that location yet, associates the default module name
+# with that location.
 #
 rule module-name ( jamfile-location )
 {
     if ! $(.module.$(jamfile-location))
     {
- # Root the path, so that locations are always umbiguious.
- # Without this, we can't decide if '../../exe/program1' and '.'
- # are the same paths, or not.
+ # Root the path, so that locations are always unambiguous. Without this,
+ # we can't decide if '../../exe/program1' and '.' are the same paths.
         jamfile-location = [ path.root $(jamfile-location) [ path.pwd ] ] ;
- .module.$(jamfile-location) = Jamfile<$(jamfile-location)> ;
+ .module.$(jamfile-location) = Jamfile<$(jamfile-location)> ;
     }
     return $(.module.$(jamfile-location)) ;
 }
 
-# Default patterns to search for the Jamfiles to use for build
-# declarations.
+
+# Default patterns to search for the Jamfiles to use for build declarations.
 #
 JAMFILE = [ modules.peek : JAMFILE ] ;
 JAMFILE ?= [Bb]uild.jam [Jj]amfile.v2 [Jj]amfile [Jj]amfile.jam ;
 
-# Find the Jamfile at the given location. This returns the exact names of
-# all the Jamfiles in the given directory. The optional parent-root argument
-# causes this to search not the given directory but the ones above it up
-# to the directory given in it.
+
+# Find the Jamfile at the given location. This returns the exact names of all
+# the Jamfiles in the given directory. The optional parent-root argument causes
+# this to search not the given directory but the ones above it up to the
+# directory given in it.
 #
 rule find-jamfile (
     dir # The directory(s) to look for a Jamfile.
@@ -220,27 +217,26 @@
     if $(parent-root)
     {
         if ! $(.parent-jamfile.$(dir))
- {
- .parent-jamfile.$(dir) =
- [ path.glob-in-parents $(dir) : $(JAMFILE) ] ;
- }
- jamfile-glob = $(.parent-jamfile.$(dir)) ;
+ {
+ .parent-jamfile.$(dir) =
+ [ path.glob-in-parents $(dir) : $(JAMFILE) ] ;
+ }
+ jamfile-glob = $(.parent-jamfile.$(dir)) ;
     }
     else
     {
         if ! $(.jamfile.$(dir))
- {
- .jamfile.$(dir) = [ path.glob $(dir) : $(JAMFILE) ] ;
- }
+ {
+ .jamfile.$(dir) = [ path.glob $(dir) : $(JAMFILE) ] ;
+ }
         jamfile-glob = $(.jamfile.$(dir)) ;
-
+
     }
-
+
     local jamfile-to-load = $(jamfile-glob) ;
- # Multiple Jamfiles found in the same place. Warn about this.
- # And ensure we use only one of them.
- # As a temporary convenience measure, if there's Jamfile.v2 amount
- # found files, suppress the warning and use it.
+ # Multiple Jamfiles found in the same place. Warn about this and ensure we
+ # use only one of them. As a temporary convenience measure, if there's
+ # Jamfile.v2 among found files, suppress the warning and use it.
     #
     if $(jamfile-to-load[2-])
     {
@@ -249,24 +245,24 @@
         if $(v2-jamfiles) && ! $(v2-jamfiles[2])
         {
             jamfile-to-load = $(v2-jamfiles) ;
- }
+ }
         else
- {
- ECHO
- "warning: Found multiple Jamfiles at '"$(dir)"'!"
- "Loading the first one: '" [ path.basename $(jamfile-to-load[1]) ] "'." ;
+ {
+ local jamfile = [ path.basename $(jamfile-to-load[1]) ] ;
+ ECHO "warning: Found multiple Jamfiles at '"$(dir)"'!"
+ "Loading the first one: '$(jamfile)'." ;
         }
-
+
         jamfile-to-load = $(jamfile-to-load[1]) ;
- }
-
+ }
+
     # Could not find it, error.
     #
     if ! $(no-errors) && ! $(jamfile-to-load)
     {
         errors.error
             "Unable to load Jamfile." :
- "Could not find a Jamfile in directory '$(dir)'". :
+ "Could not find a Jamfile in directory '$(dir)'". :
             "Attempted to find it with pattern '"$(JAMFILE:J=" ")"'." :
             "Please consult the documentation at 'http://www.boost.org'." ;
     }
@@ -274,12 +270,13 @@
     return $(jamfile-to-load) ;
 }
 
-# Load a Jamfile at the given directory. Returns nothing.
-# Will attempt to load the file as indicated by the JAMFILE patterns.
-# Effect of calling this rule twice with the same 'dir' is underfined.
 
+# Load a Jamfile at the given directory. Returns nothing. Will attempt to load
+# the file as indicated by the JAMFILE patterns. Effect of calling this rule
+# twice with the same 'dir' is undefined.
+#
 local rule load-jamfile (
- dir # The directory of the project Jamfile.
+ dir # The directory of the project Jamfile.
     )
 {
     # See if the Jamfile is where it should be.
@@ -289,76 +286,71 @@
     {
         jamfile-to-load = [ find-jamfile $(dir) ] ;
     }
-
-
- # The module of the jamfile.
+
+ # The module of the Jamfile.
     #
- local jamfile-module = [ module-name [ path.parent $(jamfile-to-load) ] ] ;
+ local jamfile-module = [ module-name [ path.parent $(jamfile-to-load) ] ] ;
 
- # Initialize the jamfile module before loading.
- #
- initialize $(jamfile-module) : [ path.parent $(jamfile-to-load) ]
- : $(jamfile-to-load:BS) ;
+ # Initialize the Jamfile module before loading.
+ #
+ initialize $(jamfile-module) : [ path.parent $(jamfile-to-load) ]
+ : $(jamfile-to-load:BS) ;
 
     local saved-project = $(.current-project) ;
- # Now load the Jamfile in it's own context.
- # Initialization might have load parent Jamfiles, which might have
- # loaded the current Jamfile with use-project. Do a final check to make
- # sure it's not loaded already.
+ # Now load the Jamfile in it's own context. Initialization might have loaded
+ # parent Jamfiles, which might have loaded the current Jamfile with
+ # use-project. Do a final check to make sure it's not loaded already.
     if ! $(jamfile-module) in $(.jamfile-modules)
- {
- .jamfile-modules += $(jamfile-module) ;
+ {
+ .jamfile-modules += $(jamfile-module) ;
         mark-as-user $(jamfile-module) ;
- modules.load $(jamfile-module) : [ path.native $(jamfile-to-load) ] : . ;
+ modules.load $(jamfile-module) : [ path.native $(jamfile-to-load) ] : . ;
         if [ MATCH ($(JAMROOT)) : $(jamfile-to-load:BS) ]
         {
             jamfile = [ find-jamfile $(dir) : no-errors ] ;
             if $(jamfile)
- {
+ {
                 load-aux $(jamfile-module) : [ path.native $(jamfile) ] ;
- }
- }
+ }
+ }
     }
- # Now do some checks
+ # Now do some checks.
     if $(.current-project) != $(saved-project)
     {
         errors.error "The value of the .current-project variable"
           : "has magically changed after loading a Jamfile."
- : "This means some of the targets might be defined a the wrong project."
- : "after loading " $(jamfile-module)
- : "expected value " $(saved-project)
- : "actual value " $(.current-project)
+ : "This means some of the targets might be defined in the wrong project."
+ : "after loading" $(jamfile-module)
+ : "expected value" $(saved-project)
+ : "actual value" $(.current-project)
           ;
     }
 
     if $(.global-build-dir)
- {
- local id = [ attribute $(jamfile-module) id ] ;
- local project-root = [ attribute $(jamfile-module) project-root ] ;
- local location = [ attribute $(jamfile-module) location ] ;
-
+ {
+ local id = [ attribute $(jamfile-module) id ] ;
+ local project-root = [ attribute $(jamfile-module) project-root ] ;
+ local location = [ attribute $(jamfile-module) location ] ;
+
         if $(location) && $(project-root) = $(dir)
         {
- # This is Jamroot
+ # This is Jamroot.
             if ! $(id)
             {
                 ECHO "warning: the --build-dir option was specified" ;
                 ECHO "warning: but Jamroot at '$(dir)'" ;
                 ECHO "warning: specified no project id" ;
                 ECHO "warning: the --build-dir option will be ignored" ;
- }
- }
- }
-
-
-
-
+ }
+ }
+ }
 }
 
+
 rule mark-as-user ( module-name )
 {
     if USER_MODULE in [ RULENAMES ]
- {
+ {
         USER_MODULE $(module-name) ;
     }
 }
@@ -367,30 +359,31 @@
 rule load-aux ( module-name : file )
 {
     mark-as-user $(module-name) ;
-
+
     module $(module-name)
     {
         include $(2) ;
         local rules = [ RULENAMES $(1) ] ;
         IMPORT $(1) : $(rules) : $(1) : $(1).$(rules) ;
- }
+ }
 }
 
+
 .global-build-dir = [ MATCH --build-dir=(.*) : [ modules.peek : ARGV ] ] ;
 if $(.global-build-dir)
-{
- # If the option is specified several times, take the last value.
+{
+ # If the option is specified several times, take the last value.
     .global-build-dir = [ path.make $(.global-build-dir[-1]) ] ;
 }
 
 
-# Initialize the module for a project.
+# Initialize the module for a project.
 #
 rule initialize (
- module-name # The name of the project module.
- : location ? # The location (directory) of the project to initialize.
- # If not specified, stanalone project will be initialized.
- : basename ?
+ module-name # The name of the project module.
+ : location ? # The location (directory) of the project to initialize. If
+ # not specified, a standalone project will be initialized.
+ : basename ?
     )
 {
     if --debug-loading in [ modules.peek : ARGV ]
@@ -398,77 +391,80 @@
         ECHO "Initializing project '$(module-name)'" ;
     }
 
- # TODO: need to consider if standalone projects can do anything but defining
- # prebuilt targets. If so, we need to give more sensible "location", so that
- # source paths are correct.
+ # TODO: need to consider if standalone projects can do anything but define
+ # prebuilt targets. If so, we need to give it a more sensible "location", so
+ # that source paths are correct.
     location ?= "" ;
- # Create the module for the Jamfile first.
+ # Create the module for the Jamfile first.
     module $(module-name)
- {
- }
- $(module-name).attributes = [ new project-attributes $(location)
- $(module-name) ] ;
+ {
+ }
+ $(module-name).attributes = [ new project-attributes $(location)
+ $(module-name) ] ;
     local attributes = $($(module-name).attributes) ;
-
+
     if $(location)
- {
- $(attributes).set source-location : [ path.make $(location) ] : exact ;
+ {
+ $(attributes).set source-location : [ path.make $(location) ] : exact ;
     }
     else
     {
- $(attributes).set source-location : "" : exact ;
+ $(attributes).set source-location : "" : exact ;
     }
-
- $(attributes).set requirements : [ property-set.empty ] : exact ;
- $(attributes).set usage-requirements : [ property-set.empty ] : exact ;
+
+ $(attributes).set requirements : [ property-set.empty ] : exact ;
+ $(attributes).set usage-requirements : [ property-set.empty ] : exact ;
 
     # Import rules common to all project modules from project-rules module,
     # defined at the end of this file.
     modules.clone-rules project-rules $(module-name) ;
-
+
     local jamroot ;
 
     local parent-module ;
- if $(module-name) = site-config
+ if $(module-name) = test-config
     {
         # No parent.
- }
+ }
+ else if $(module-name) = site-config
+ {
+ parent-module = test-config ;
+ }
     else if $(module-name) = user-config
     {
         parent-module = site-config ;
     }
- else
+ else
     {
- # We search for parent/project-root only if jamfile was specified
- # --- i.e
+ # We search for parent/project-root only if Jamfile was specified, i.e.
         # if the project is not standalone.
- if $(location) && ! [ MATCH ($(JAMROOT)) : $(basename) ]
+ if $(location) && ! [ MATCH ($(JAMROOT)) : $(basename) ]
         {
             parent-module = [ load-parent $(location) ] ;
- }
+ }
         else
         {
- # It's either jamroot, or standalone project.
- # If it's jamroot, inherit from user-config.
+ # It's either jamroot or standalone project. If it's jamroot,
+ # inherit from user-config.
             if $(location)
             {
- parent-module = user-config ;
+ parent-module = user-config ;
                 jamroot = true ;
- }
- }
+ }
+ }
     }
-
+
     if $(parent-module)
- {
+ {
         inherit-attributes $(module-name) : $(parent-module) ;
         $(attributes).set parent-module : $(parent-module) : exact ;
     }
-
+
     if $(jamroot)
- {
+ {
         $(attributes).set project-root : $(location) : exact ;
     }
-
+
     local parent ;
     if $(parent-module)
     {
@@ -477,70 +473,72 @@
 
     if ! $(.target.$(module-name))
     {
- .target.$(module-name) = [ new project-target $(module-name)
- : $(module-name) $(parent)
+ .target.$(module-name) = [ new project-target $(module-name)
+ : $(module-name) $(parent)
             : [ attribute $(module-name) requirements ] ] ;
-
+
         if --debug-loading in [ modules.peek : ARGV ]
         {
- ECHO "Assigned project target" $(.target.$(module-name))
- "to '$(module-name)'" ;
+ ECHO "Assigned project target" $(.target.$(module-name))
+ "to '$(module-name)'" ;
         }
- }
-
+ }
+
     .current-project = [ target $(module-name) ] ;
 }
 
+
 # Make 'project-module' inherit attributes of project root and parent module.
 rule inherit-attributes ( project-module : parent-module )
 {
- local attributes = $($(project-module).attributes) ;
+ local attributes = $($(project-module).attributes) ;
     local pattributes = [ attributes $(parent-module) ] ;
- # Parent module might be locationless user-config.
+ # Parent module might be locationless configuration module.
     if [ modules.binding $(parent-module) ]
- {
- $(attributes).set parent : [ path.parent
+ {
+ $(attributes).set parent : [ path.parent
             [ path.make [ modules.binding $(parent-module) ] ] ] ;
- }
+ }
     local v = [ $(pattributes).get project-root ] ;
     $(attributes).set project-root : $(v) : exact ;
- $(attributes).set default-build
- : [ $(pattributes).get default-build ] ;
+ $(attributes).set default-build
+ : [ $(pattributes).get default-build ] ;
     $(attributes).set requirements
- : [ $(pattributes).get requirements ] : exact ;
+ : [ $(pattributes).get requirements ] : exact ;
     $(attributes).set usage-requirements
- : [ $(pattributes).get usage-requirements ] : exact ;
-
+ : [ $(pattributes).get usage-requirements ] : exact ;
+
     local parent-build-dir = [ $(pattributes).get build-dir ] ;
     if $(parent-build-dir)
- {
- # Have to compute relative path from parent dir to our dir
- # Convert both paths to absolute, since we cannot
- # find relative path from ".." to "."
-
+ {
+ # Have to compute relative path from parent dir to our dir. Convert both
+ # paths to absolute, since we cannot find relative path from ".." to
+ # ".".
+
         local location = [ attribute $(project-module) location ] ;
         local parent-location = [ attribute $(parent-module) location ] ;
-
+
         local pwd = [ path.pwd ] ;
         local parent-dir = [ path.root $(parent-location) $(pwd) ] ;
         local our-dir = [ path.root $(location) $(pwd) ] ;
- $(attributes).set build-dir : [ path.join $(parent-build-dir)
- [ path.relative $(our-dir) $(parent-dir) ] ] : exact ;
- }
+ $(attributes).set build-dir : [ path.join $(parent-build-dir)
+ [ path.relative $(our-dir) $(parent-dir) ] ] : exact ;
+ }
 }
 
 
-# Associate the given id with the given project module
+# Associate the given id with the given project module.
 rule register-id ( id : module )
 {
     $(id).jamfile-module = $(module) ;
 }
 
+
 # Class keeping all the attributes of a project.
 #
 # The standard attributes are "id", "location", "project-root", "parent"
 # "requirements", "default-build", "source-location" and "projects-to-build".
-class project-attributes
+class project-attributes
 {
     import property ;
     import property-set ;
@@ -549,28 +547,28 @@
     import print ;
     import sequence ;
     import project ;
-
+
     rule __init__ ( location project-module )
- {
+ {
         self.location = $(location) ;
         self.project-module = $(project-module) ;
     }
-
- # Set the named attribute from the specification given by the user.
- # The value actually set may be different.
- rule set ( attribute : specification *
- : exact ? # Sets value from 'specification' without any processing
- )
+
+ # Set the named attribute from the specification given by the user. The
+ # value actually set may be different.
+ rule set ( attribute : specification *
+ : exact ? # Sets value from 'specification' without any processing.
+ )
     {
         if $(exact)
         {
             self.$(attribute) = $(specification) ;
         }
- else if $(attribute) = "requirements"
+ else if $(attribute) = "requirements"
         {
             local result = [ property-set.refine-from-user-input
                 $(self.requirements) : $(specification)
- : $(self.project-module) : $(self.location) ] ;
+ : $(self.project-module) : $(self.location) ] ;
 
             if $(result[1]) = "@error"
             {
@@ -593,28 +591,28 @@
                 split ?= nothing $(p) ;
                 unconditional += $(split[2]) ;
             }
-
+
             local non-free = [ property.remove free : $(unconditional) ] ;
             if $(non-free)
             {
                 errors.error "usage-requirements" $(specification) "have non-free properties" $(non-free) ;
- }
+ }
             local t = [ property.translate-paths $(specification)
                                       : $(self.location) ] ;
             if $(self.usage-requirements)
             {
- self.usage-requirements = [ property-set.create
+ self.usage-requirements = [ property-set.create
                     [ $(self.usage-requirements).raw ] $(t) ] ;
             }
- else
+ else
             {
                 self.usage-requirements = [ property-set.create $(t) ] ;
- }
- }
+ }
+ }
         else if $(attribute) = "default-build"
         {
             self.default-build = [ property.make $(specification) ] ;
- }
+ }
         else if $(attribute) = "source-location"
         {
             self.source-location = ;
@@ -623,17 +621,17 @@
                 self.source-location += [ path.root
                     [ path.make $(src-path) ] $(self.location) ] ;
             }
- }
+ }
         else if $(attribute) = "build-dir"
         {
- self.build-dir = [ path.root
+ self.build-dir = [ path.root
                 [ path.make $(specification) ] $(self.location) ] ;
- }
- else if ! $(attribute) in "id" "default-build" "location" "source-location"
- "parent" "projects-to-build" "project-root"
+ }
+ else if ! $(attribute) in "id" "default-build" "location"
+ "source-location" "parent" "projects-to-build" "project-root"
         {
- errors.error "Invalid project attribute '$(attribute)' specified "
- "for project at '$(self.location)'" ;
+ errors.error "Invalid project attribute '$(attribute)' specified"
+ "for project at '$(self.location)'" ;
         }
         else
         {
@@ -658,27 +656,29 @@
         print.list-item "Requirements:" [ $(self.requirements).raw ] ;
         print.list-item "Default build:" $(self.default-build) ;
         print.list-item "Source location:" $(self.source-location) ;
- print.list-item "Projects to build:"
- [ sequence.insertion-sort $(self.projects-to-build) ] ;
+ print.list-item "Projects to build:"
+ [ sequence.insertion-sort $(self.projects-to-build) ] ;
         print.list-end ;
     }
-
 }
 
-# Returns the project which is currently being loaded
+
+# Returns the project which is currently being loaded.
 rule current ( )
 {
     return $(.current-project) ;
 }
 
-# Temporary changes the current project to 'project'. Should
-# be followed by 'pop-current'.
+
+# Temporarily changes the current project to 'project'. Should be followed by
+# 'pop-current'.
 rule push-current ( project )
 {
     .saved-current-project += $(.current-project) ;
     .current-project = $(project) ;
 }
 
+
 rule pop-current ( )
 {
     .current-project = $(.saved-current-project[-1]) ;
@@ -686,68 +686,71 @@
 }
 
 
-
-# Returns the project-attribute instance for the specified jamfile module.
+# Returns the project-attribute instance for the specified Jamfile module.
 rule attributes ( project )
 {
     return $($(project).attributes) ;
 }
 
-# Returns the value of the specified attribute in the specified jamfile module.
+
+# Returns the value of the specified attribute in the specified Jamfile module.
 rule attribute ( project attribute )
 {
- return [ $($(project).attributes).get $(attribute) ] ;
+ return [ $($(project).attributes).get $(attribute) ] ;
 }
 
+
 # Returns the project target corresponding to the 'project-module'.
 rule target ( project-module )
 {
     if ! $(.target.$(project-module))
     {
- .target.$(project-module) = [ new project-target $(project-module)
- : $(project-module)
- : [ attribute $(project-module) requirements ] ] ;
+ .target.$(project-module) = [ new project-target $(project-module)
+ : $(project-module)
+ : [ attribute $(project-module) requirements ] ] ;
     }
- return $(.target.$(project-module)) ;
+ return $(.target.$(project-module)) ;
 }
 
+
 # Use/load a project.
 rule use ( id : location )
 {
     local saved-project = $(.current-project) ;
     local project-module = [ project.load $(location) ] ;
     local declared-id = [ project.attribute $(project-module) id ] ;
-
+
     if ! $(declared-id) || $(declared-id) != $(id)
     {
- # The project at 'location' either have no id or
- # that id is not equal to the 'id' parameter.
- if $($(id).jamfile-module)
- && $($(id).jamfile-module) != $(project-module)
- {
- errors.user-error
- "Attempt to redeclare already existing project id '$(id)'" ;
- }
+ # The project at 'location' either has no id or that id is not equal to
+ # the 'id' parameter.
+ if $($(id).jamfile-module)
+ && $($(id).jamfile-module) != $(project-module)
+ {
+ errors.user-error
+ "Attempt to redeclare already existing project id '$(id)'" ;
+ }
         $(id).jamfile-module = $(project-module) ;
     }
     .current-project = $(saved-project) ;
 }
 
-# Defines a Boost.Build extension project. Such extensions usually
-# contain library targets and features that can be used by many people.
-# Even though extensions are really projects, they can be initialize as
-# a module would be with the "using" (project.project-rules.using)
-# mechanism.
+
+# Defines a Boost.Build extension project. Such extensions usually contain
+# library targets and features that can be used by many people. Even though
+# extensions are really projects, they can be initialized as a module would be
+# with the "using" (project.project-rules.using) mechanism.
+#
 rule extension ( id : options * : * )
 {
     # The caller is a standalone module for the extension.
     local mod = [ CALLER_MODULE ] ;
-
+
     # We need to do the rest within the extension module.
     module $(mod)
     {
         import path ;
-
+
         # Find the root project.
         local root-project = [ project.current ] ;
         root-project = [ $(root-project).project-module ] ;
@@ -757,170 +760,167 @@
         {
             root-project = [ project.attribute $(root-project) parent-module ] ;
         }
-
- # Create the project data, and bring in the project rules
- # into the module.
+
+ # Create the project data, and bring in the project rules into the
+ # module.
         project.initialize $(__name__) :
             [ path.join [ project.attribute $(root-project) location ] ext $(1:L) ] ;
-
- # Create the project itself, i.e. the attributes.
- # All extensions are created in the "/ext" project space.
+
+ # Create the project itself, i.e. the attributes. All extensions are
+ # created in the "/ext" project space.
         project /ext/$(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
         local attributes = [ project.attributes $(__name__) ] ;
-
+
         # Inherit from the root project of whomever is defining us.
         project.inherit-attributes $(__name__) : $(root-project) ;
         $(attributes).set parent-module : $(root-project) : exact ;
     }
 }
 
+
 rule glob-internal ( project : wildcards + : excludes * : rule-name )
 {
     local location = [ $(project).get source-location ] ;
-
+
     local result ;
- local paths = [ path.$(rule-name) $(location)
- : [ sequence.transform path.make : $(wildcards) ]
+ local paths = [ path.$(rule-name) $(location)
+ : [ sequence.transform path.make : $(wildcards) ]
         : [ sequence.transform path.make : $(excludes) ] ] ;
     if $(wildcards:D) || $(rule-name) != glob
     {
- # The paths we've found are relative to current directory,
- # but the names specified in sources list are assumed to
- # be relative to source directory of the corresponding
- # prject. So, just make the name absolute.
+ # The paths we've found are relative to the current directory, but the
+ # names specified in the sources list are assumed to be relative to the
+ # source directory of the corresponding project. So, just make the names
+ # absolute.
         for local p in $(paths)
         {
             result += [ path.root $(p) [ path.pwd ] ] ;
- }
+ }
     }
- else
+ else
     {
- # There were not directory in wildcard, so the files are all
- # in the source directory of the project. Just drop the
- # directory, instead of making paths absolute.
+ # There were no wildcards in the directory path, so the files are all in
+ # the source directory of the project. Just drop the directory, instead
+ # of making paths absolute.
         result = $(paths:D="") ;
     }
-
- return $(result) ;
+
+ return $(result) ;
 }
 
 
-# This module defines rules common to all projects
+# This module defines rules common to all projects.
 module project-rules
-{
+{
     rule using ( toolset-module : * )
     {
         import toolset ;
         import modules ;
         import project ;
-
- # The module referred by 'using' can be placed in
- # the same directory as Jamfile, and the user
- # will expect the module to be found even though
- # the directory is not in BOOST_BUILD_PATH.
- # So temporary change the search path.
+
+ # Temporarily change the search path so the module referred to by
+ # 'using' can be placed in the same directory as Jamfile. User will
+ # expect the module to be found even though the directory is not in
+ # BOOST_BUILD_PATH.
         local x = [ modules.peek : BOOST_BUILD_PATH ] ;
         local caller = [ modules.binding $(__name__) ] ;
         modules.poke : BOOST_BUILD_PATH : $(caller:D) $(x) ;
         toolset.using $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
         modules.poke : BOOST_BUILD_PATH : $(x) ;
-
- # The above might have clobbered .current-project
- # Restore the the right value.
- modules.poke project : .current-project
- : [ project.target $(__name__) ] ;
+
+ # The above might have clobbered .current-project. Restore the correct
+ # value.
+ modules.poke project : .current-project
+ : [ project.target $(__name__) ] ;
     }
-
+
     import modules ;
-
+
     rule import ( * : * : * )
     {
         modules.import project ;
-
+
         local caller = [ CALLER_MODULE ] ;
         local saved = [ modules.peek project : .current-project ] ;
         module $(caller)
         {
             modules.import $(1) : $(2) : $(3) ;
         }
- modules.poke project : .current-project : $(saved) ;
+ modules.poke project : .current-project : $(saved) ;
     }
 
-
     rule project ( id ? : options * : * )
     {
- import project ;
- import path ;
         import errors ;
-
+ import path ;
+ import project ;
+
         local attributes = [ project.attributes $(__name__) ] ;
- if $(id)
+ if $(id)
         {
            id = [ path.root $(id) / ] ;
            project.register-id $(id) : $(__name__) ;
            $(attributes).set id : $(id) ;
         }
-
+
         local explicit-build-dir ;
-
+
         for n in 2 3 4 5 6 7 8 9
         {
             local option = $($(n)) ;
- if $(option)
+ if $(option)
             {
                 $(attributes).set $(option[1]) : $(option[2-]) ;
             }
             if $(option[1]) = "build-dir"
             {
                 explicit-build-dir = [ path.make $(option[2-]) ] ;
- }
+ }
         }
-
+
         # If '--build-dir' is specified, change the build dir for the project.
- local global-build-dir =
- [ modules.peek project : .global-build-dir ] ;
-
+ local global-build-dir =
+ [ modules.peek project : .global-build-dir ] ;
+
         if $(global-build-dir)
- {
+ {
             local location = [ $(attributes).get location ] ;
- # Project with empty location is 'standalone' project, like
- # user-config, or qt. It has no build dir.
- # If we try to set build dir for user-config, we'll then
- # try to inherit it, with either weird, or wrong consequences.
+ # Project with an empty location is a 'standalone' project such as
+ # user-config or qt. It has no build dir. If we try to set build dir
+ # for user-config, we'll then try to inherit it, with either weird
+ # or wrong consequences.
             if $(location) && $(location) = [ $(attributes).get project-root ]
             {
                 # This is Jamroot.
                 if $(id)
- {
- if $(explicit-build-dir)
+ {
+ if $(explicit-build-dir)
                       && [ path.is-rooted $(explicit-build-dir) ]
                     {
- errors.user-error "Absolute directory specified via 'build-dir' project attribute"
- : "Don't know how to combine that with the --build-dir option."
- ;
+ errors.user-error "Absolute directory specified via 'build-dir' project attribute"
+ : "Don't know how to combine that with the --build-dir option."
+ ;
                     }
                     # Strip the leading slash from id.
- local rid = [ MATCH /(.*) : $(id) ] ;
- local p = [ path.join
+ local rid = [ MATCH /(.*) : $(id) ] ;
+ local p = [ path.join
                         $(global-build-dir) $(rid) $(explicit-build-dir) ] ;
 
                     $(attributes).set build-dir : $(p) : exact ;
- }
- }
- else
+ }
+ }
+ else
             {
                 # Not Jamroot
                 if $(explicit-build-dir)
- {
- errors.user-error "When --build-dir is specified, the 'build-project'"
- : "attribute is allowed only for top-level 'project' invocations" ;
- }
- }
+ {
+ errors.user-error "When --build-dir is specified, the 'build-dir' project"
+ : "attribute is allowed only for top-level 'project' invocations" ;
+ }
+ }
         }
-
-
     }
-
+
     # Declare and set a project global constant. Project global constants are
     # normal variables but should not be changed. They are applied to every
     # child Jamfile.
@@ -932,13 +932,12 @@
     {
         import project ;
         local p = [ project.target $(__name__) ] ;
- $(p).add-constant $(name) : $(value) ;
+ $(p).add-constant $(name) : $(value) ;
     }
-
- # Declare and set a project global constant, whose value is a path. The
- # path is adjusted to be relative to the invocation directory. The given
- # value path is taken to be either absolute, or relative to this project
- # root.
+
+ # Declare and set a project global constant, whose value is a path. The path
+ # is adjusted to be relative to the invocation directory. The given value
+ # path is taken to be either absolute, or relative to this project root.
     rule path-constant (
         name # Variable name of the constant.
         : value + # Value of the constant.
@@ -949,7 +948,6 @@
         $(p).add-constant $(name) : $(value) : path ;
     }
 
-
     rule use-project ( id : where )
     {
         # See comment in 'load' for explanation.
@@ -964,43 +962,42 @@
         local now = [ $(attributes).get projects-to-build ] ;
         $(attributes).set projects-to-build : $(now) $(dir) ;
     }
-
+
     rule explicit ( target-names * )
     {
         import project ;
- # If 'explicit' is used in a helper rule defined in Jamroot,
- # and inherited by children, then most of the time
- # we want 'explicit' to operate on the Jamfile where
- # the helper rule is invoked.
+ # If 'explicit' is used in a helper rule defined in Jamroot and
+ # inherited by children, then most of the time we want 'explicit' to
+ # operate on the Jamfile where the helper rule is invoked.
         local t = [ project.current ] ;
         for local n in $(target-names)
- {
+ {
             $(t).mark-target-as-explicit $(n) ;
- }
- }
-
+ }
+ }
+
     rule glob ( wildcards + : excludes * )
     {
         import project ;
- return [ project.glob-internal [ project.current ]
+ return [ project.glob-internal [ project.current ]
           : $(wildcards) : $(excludes) : glob ] ;
     }
 
     rule glob-tree ( wildcards + : excludes * )
     {
         import project ;
-
+
         if $(wildcards:D) || $(excludes:D)
         {
             errors.user-error "The patterns to 'glob-tree' may not include directory" ;
         }
- return [ project.glob-internal [ project.current ]
+ return [ project.glob-internal [ project.current ]
           : $(wildcards) : $(excludes) : glob-tree ] ;
     }
 
- # Calculates conditional requirements for multiple requirements
- # at once. This is a shorthand to be reduce duplication and to
- # keep an inline declarative syntax. For example:
+ # Calculates conditional requirements for multiple requirements at once.
+ # This is a shorthand to reduce duplication and to keep an inline
+ # declarative syntax. For example:
     #
     # lib x : x.cpp : [ conditional <toolset>gcc <variant>debug :
     # <define>DEBUG_EXCEPTION <define>DEBUG_TRACE ] ;

Modified: branches/proto/v3/tools/build/v2/build/property-set.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/property-set.jam (original)
+++ branches/proto/v3/tools/build/v2/build/property-set.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,7 +1,7 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 import "class" : new ;
 import feature ;
@@ -10,46 +10,45 @@
 import set ;
 
 # Class for storing a set of properties.
-# - there's 1<->1 correspondence between identity and value. No
-# two instances of the class are equal. To maintain this property,
-# the 'property-set.create' rule should be used to create new instances.
-# Instances are immutable.
-#
-# - each property is classified with regard to it's effect on build
-# results. Incidental properties have no effect on build results, from
-# Boost.Build point of view. Others are either free, or non-free, which we
-# call 'base'. Each property belong to exactly one of those categories and
-# it's possible to get list of properties in each category.
+# - there's 1<->1 correspondence between identity and value. No two instances of
+# the class are equal. To maintain this property, the 'property-set.create'
+# rule should be used to create new instances. Instances are immutable.
 #
-# In addition, it's possible to get list of properties with specific
+# - each property is classified with regard to it's effect on build results.
+# Incidental properties have no effect on build results, from Boost.Build's
+# point of view. Others are either free, or non-free, which we call 'base'.
+# Each property belongs to exactly one of those categories and it's possible
+# to get list of properties in each category.
+#
+# In addition, it's possible to get a list of properties with a specific
 # attribute.
 #
 # - several operations, like and refine and as-path are provided. They all use
 # caching whenever possible.
 #
-class property-set
+class property-set
 {
+ import errors ;
     import feature ;
- import property-set ;
+ import path ;
     import property ;
+ import property-set ;
     import set ;
- import path ;
- import errors ;
-
+
     rule __init__ ( raw-properties * )
- {
+ {
         self.raw = $(raw-properties) ;
-
+
         for local p in $(raw-properties)
         {
             if ! $(p:G)
             {
- errors.error "Invalid property: '$(p)'" ;
+ errors.error "Invalid property: '$(p)'" ;
             }
-
- local att = [ feature.attributes $(p:G) ] ;
- # A feature can be both incidental and free,
- # in which case we add it to incidental.
+
+ local att = [ feature.attributes $(p:G) ] ;
+ # A feature can be both incidental and free, in which case we add it
+ # to incidental.
             if incidental in $(att)
             {
                 self.incidental += $(p) ;
@@ -58,11 +57,11 @@
             {
                 self.free += $(p) ;
             }
- else
+ else
             {
                 self.base += $(p) ;
             }
-
+
             if dependency in $(att)
             {
                 self.dependency += $(p) ;
@@ -71,8 +70,8 @@
             {
                 self.non-dependency += $(p) ;
             }
-
- if [ MATCH (:) : $(p:G=) ]
+
+ if [ MATCH (:) : $(p:G=) ]
             {
                 self.conditional += $(p) ;
             }
@@ -80,80 +79,76 @@
             {
                 self.non-conditional += $(p) ;
             }
-
-
+
             if propagated in $(att)
             {
                 self.propagated += $(p) ;
- }
+ }
             if link-incompatible in $(att)
             {
                 self.link-incompatible += $(p) ;
- }
+ }
         }
-
     }
-
-
- # Returns Jam list of stored properties
+
+ # Returns Jam list of stored properties.
     rule raw ( )
     {
         return $(self.raw) ;
     }
-
+
     rule str ( )
     {
         return "[" $(self.raw) "]" ;
     }
-
- # Returns properties that are neither incidental nor free
+
+ # Returns properties that are neither incidental nor free.
     rule base ( )
     {
         return $(self.base) ;
     }
-
-
- # Returns free properties which are not dependency properties
+
+ # Returns free properties which are not dependency properties.
     rule free ( )
     {
         return $(self.free) ;
     }
-
- # Returns dependency properties
+
+ # Returns dependency properties.
     rule dependency ( )
     {
         return $(self.dependency) ;
     }
-
+
     rule non-dependency ( )
     {
         return $(self.non-dependency) ;
     }
-
+
     rule conditional ( )
     {
         return $(self.conditional) ;
     }
-
+
     rule non-conditional ( )
     {
         return $(self.non-conditional) ;
     }
-
- # Returns incidental properties
+
+ # Returns incidental properties.
     rule incidental ( )
     {
         return $(self.incidental) ;
     }
-
+
     rule refine ( ps )
     {
         if ! $(self.refined.$(ps))
         {
- local r = [ property.refine $(self.raw) : [ $(ps).raw ] ] ;
+ local r = [ property.refine $(self.raw) : [ $(ps).raw ] ] ;
             if $(r[1]) != "@error"
             {
- self.refined.$(ps) = [ property-set.create $(r) ] ;
+ self.refined.$(ps) = [ property-set.create $(r) ] ;
             }
             else
             {
@@ -162,7 +157,7 @@
         }
         return $(self.refined.$(ps)) ;
     }
-
+
     rule expand ( )
     {
         if ! $(self.expanded)
@@ -171,8 +166,7 @@
         }
         return $(self.expanded) ;
     }
-
-
+
     rule expand-composites ( )
     {
         if ! $(self.composites)
@@ -182,18 +176,18 @@
         }
         return $(self.composites) ;
     }
-
+
     rule evaluate-conditionals ( context ? )
     {
         context ?= $(__name__) ;
         if ! $(self.evaluated.$(context))
         {
- self.evaluated.$(context) = [ property-set.create
+ self.evaluated.$(context) = [ property-set.create
                 [ property.evaluate-conditionals-in-context $(self.raw) : [ $(context).raw ] ] ] ;
         }
- return $(self.evaluated.$(context)) ;
+ return $(self.evaluated.$(context)) ;
     }
-
+
     rule propagated ( )
     {
         if ! $(self.propagated-ps)
@@ -201,19 +195,18 @@
             self.propagated-ps = [ property-set.create $(self.propagated) ] ;
         }
         return $(self.propagated-ps) ;
- }
-
+ }
+
     rule link-incompatible ( )
     {
         if ! $(self.link-incompatible-ps)
         {
- self.link-incompatible-ps =
+ self.link-incompatible-ps =
               [ property-set.create $(self.link-incompatible) ] ;
         }
         return $(self.link-incompatible-ps) ;
     }
-
-
+
     rule run-actions ( )
     {
         if ! $(self.run)
@@ -222,37 +215,34 @@
         }
         return $(self.run) ;
     }
-
+
     rule add-defaults ( )
     {
         if ! $(self.defaults)
         {
- self.defaults = [ property-set.create
+ self.defaults = [ property-set.create
                 [ feature.add-defaults $(self.raw) ] ] ;
         }
         return $(self.defaults) ;
     }
-
-
+
     rule as-path ( )
     {
         if ! $(self.as-path)
         {
             self.as-path = [ property.as-path $(self.base) ] ;
- }
+ }
         return $(self.as-path) ;
- }
-
- # Computes the target path that should be used for
- # target with these properties.
+ }
+
+ # Computes the path to be used for a target with the given properties.
     # Returns a list of
     # - the computed path
- # - if the path is relative to build directory, a value of
- # 'true'.
+ # - if the path is relative to the build directory, a value of 'true'.
     rule target-path ( )
     {
         if ! $(self.target-path)
- {
+ {
             # The <location> feature can be used to explicitly
             # change the location of generated targetsv
             local l = [ get <location> ] ;
@@ -262,62 +252,61 @@
             }
             else
             {
- local p = [ as-path ] ;
+ local p = [ as-path ] ;
                 # Really, an ugly hack. Boost regression test system requires
                 # specific target paths, and it seems that changing it to handle
- # other directory layout is really hard. For that reason,
- # we teach V2 to do the things regression system requires.
- # The value o '<location-prefix>' is predended to the path.
- local prefix = [ get <location-prefix> ] ;
+ # other directory layout is really hard. For that reason, we
+ # teach V2 to do the things regression system requires. The
+ # value of '<location-prefix>' is prepended to the path.
+ local prefix = [ get <location-prefix> ] ;
                 if $(prefix)
                 {
                     self.target-path = [ path.join $(prefix) $(p) ] ;
- }
+ }
                 else
                 {
                     self.target-path = $(p) ;
- }
+ }
                 if ! $(self.target-path)
                 {
                     self.target-path = . ;
- }
+ }
                 # The path is relative to build dir.
                 self.target-path += true ;
- }
- }
+ }
+ }
         return $(self.target-path) ;
     }
-
-
+
     rule add ( ps )
     {
- if ! $(self.added.$(ps))
+ if ! $(self.added.$(ps))
         {
             self.added.$(ps) = [ property-set.create $(self.raw) [ $(ps).raw ] ] ;
         }
         return $(self.added.$(ps)) ;
- }
-
+ }
+
     rule add-raw ( properties * )
     {
         return [ add [ property-set.create $(properties) ] ] ;
- }
-
+ }
+
     rule link-incompatible-with ( ps )
     {
         if ! $(.li.$(ps))
         {
             local li1 = [ $(__name__).link-incompatible ] ;
- local li2 = [ $(ps).link-incompatible ] ;
- if [ set.equal $(li1) : $(li2) ]
+ local li2 = [ $(ps).link-incompatible ] ;
+ if [ set.equal $(li1) : $(li2) ]
             {
                 .li.$(ps) = false ;
             }
             else
             {
                 .li.$(ps) = true ;
- }
- }
+ }
+ }
         if $(.li.$(ps)) = true
         {
             return true ;
@@ -325,85 +314,79 @@
         else
         {
             return ;
- }
+ }
     }
-
 
-
     # Returns all values of 'feature'.
     rule get ( feature )
     {
         if ! $(self.map-built)
         {
- # For each feature, create member var and assign all
- # values to it. Since all regular member vars start with
- # 'self', there will be no conflicts between names.
+ # For each feature, create a member var and assign all values to it.
+ # Since all regular member vars start with 'self', there will be no
+ # conflicts between names.
             self.map-built = true ;
             for local v in $(self.raw)
             {
                 $(v:G) += $(v:G=) ;
- }
+ }
         }
-
         return $($(feature)) ;
     }
-
 }
 
-# Creates new 'property-set' instance for the given raw properties,
-# or returns an already existing ones.
+
+# Creates a new 'property-set' instance for the given raw properties or returns
+# an already existing ones.
 rule create ( raw-properties * )
 {
- raw-properties = [ sequence.unique
+ raw-properties = [ sequence.unique
         [ sequence.insertion-sort $(raw-properties) ] ] ;
-
+
     local key = $(raw-properties:J=-:E=) ;
-
- if ! $(.ps.$(key))
+
+ if ! $(.ps.$(key))
     {
         .ps.$(key) = [ new property-set $(raw-properties) ] ;
     }
- return $(.ps.$(key)) ;
+ return $(.ps.$(key)) ;
 }
 NATIVE_RULE property-set : create ;
 
-# Creates new 'property-set' instances after checking
-# that all properties are valid and converting incidental
-# properties into gristed form.
+
+# Creates a new 'property-set' instance after checking that all properties are
+# valid and converting incidental properties into gristed form.
 rule create-with-validation ( raw-properties * )
 {
     property.validate $(raw-properties) ;
-
     return [ create [ property.make $(raw-properties) ] ] ;
 }
 
-# Creates a property-set from the input given by the user, in the
-# context of 'jamfile-module' at 'location'
+
+# Creates a property-set from the input given by the user, in the context of
+# 'jamfile-module' at 'location'.
 rule create-from-user-input ( raw-properties * : jamfile-module location )
 {
     local specification = [ property.translate-paths $(raw-properties)
- : $(location) ] ;
+ : $(location) ] ;
     specification = [ property.translate-indirect $(specification)
- : $(jamfile-module) ] ;
- specification =
- [ property.expand-subfeatures-in-conditions $(specification) ] ;
- specification = [ property.make $(specification) ] ;
- result = [ property-set.create $(specification) ] ;
- return $(result) ;
+ : $(jamfile-module) ] ;
+ specification =
+ [ property.expand-subfeatures-in-conditions $(specification) ] ;
+ specification = [ property.make $(specification) ] ;
+ return [ property-set.create $(specification) ] ;
 }
 
-# Refines requirements with requirements provided by the user.
-# Specially handles "-<property>value" syntax in specification
-# to remove given requirements.
-# - parent-requirements -- property-set object with requirements
-# to refine
-# - specification -- string list of requirements provided by the use
-# - project-module -- the module to which context indirect features
-# will be bound.
-# - location -- the path to which path features are relative.
-#
+
+# Refines requirements with requirements provided by the user. Specially handles
+# "-<property>value" syntax in specification to remove given requirements.
+# - parent-requirements -- property-set object with requirements to refine.
+# - specification -- string list of requirements provided by the user.
+# - project-module -- module to which context indirect features will be
+# bound.
+# - location -- path to which path features are relative.
 #
-rule refine-from-user-input ( parent-requirements : specification *
+rule refine-from-user-input ( parent-requirements : specification *
     : project-module : location )
 {
     if ! $(specification)
@@ -414,7 +397,7 @@
     {
         local add-requirements ;
         local remove-requirements ;
-
+
         for local r in $(specification)
         {
             local m = [ MATCH "^-(.*)" : $(r) ] ;
@@ -427,38 +410,35 @@
                 add-requirements += $(r) ;
             }
         }
-
+
         if $(remove-requirements)
         {
- # Need to create property set, so that path features
- # and indirect features are translated just like they
- # are in project requirements.
- local ps = [ property-set.create-from-user-input
+ # Need to create a property set, so that path features and indirect
+ # features are translated just like they are in project
+ # requirements.
+ local ps = [ property-set.create-from-user-input
                 $(remove-requirements) : $(project-module) $(location) ] ;
-
- parent-requirements = [ property-set.create
- [ set.difference [ $(parent-requirements).raw ]
- : [ $(ps).raw ] ] ] ;
+
+ parent-requirements = [ property-set.create
+ [ set.difference [ $(parent-requirements).raw ]
+ : [ $(ps).raw ] ] ] ;
             specification = $(add-requirements) ;
         }
 
- local requirements = [ property-set.create-from-user-input
+ local requirements = [ property-set.create-from-user-input
             $(specification) : $(project-module) $(location) ] ;
-
- requirements = [ $(parent-requirements).refine $(requirements) ] ;
- return $(requirements) ;
+
+ return [ $(parent-requirements).refine $(requirements) ] ;
     }
 }
 
 
-
-# Returns property-set with empty set of properties.
+# Returns a property-set with an empty set of properties.
 rule empty ( )
 {
     if ! $(.empty)
     {
- .empty = [ create ] ;
+ .empty = [ create ] ;
     }
-
     return $(.empty) ;
 }

Modified: branches/proto/v3/tools/build/v2/build/property.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/property.jam (original)
+++ branches/proto/v3/tools/build/v2/build/property.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,52 +1,50 @@
-# Copyright 2001, 2002, 2003 Dave Abrahams
-# Copyright 2006 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-import utility : ungrist ;
-import sequence : unique ;
-import errors : error ;
+# Copyright 2001, 2002, 2003 Dave Abrahams
+# Copyright 2006 Rene Rivera
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+import errors ;
 import feature ;
+import indirect ;
+import path ;
 import regex ;
 import string ;
 import sequence ;
 import set ;
-import path ;
-import assert ;
-import indirect ;
+import utility ;
 
-# Refines 'properties' by overriding any non-free properties
-# for which a different value is specified in 'requirements'.
-# Conditional requirements are just added without modification.
-# Returns the resulting list of properties.
+
+# Refines 'properties' by overriding any non-free and non-conditional properties
+# for which a different value is specified in 'requirements'. Returns the
+# resulting list of properties.
 rule refine ( properties * : requirements * )
 {
     local result ;
     local error ;
-
- # All the elements of requirements should be present in the result
- # Record them so that we can handle 'properties'.
+
+ # All the 'requirements' elements should be present in the result. Record
+ # them so that we can handle 'properties'.
     for local r in $(requirements)
     {
         # Don't consider conditional requirements.
         if ! [ MATCH (:) : $(r:G=) ]
- {
- # Note: cannot use local here, so take an ugly name
+ {
+ # Note: cannot use a local variable here, so use an ugly name.
             __require__$(r:G) = $(r:G=) ;
- }
+ }
     }
 
     for local p in $(properties)
- {
- # No processing for free properties
+ {
         if [ MATCH (:) : $(p:G=) ]
         {
- # Skip conditional properties
+ # Do not modify conditional properties.
             result += $(p) ;
- }
+ }
         else if free in [ feature.attributes $(p:G) ]
         {
+ # Do not modify free properties.
             result += $(p) ;
         }
         else
@@ -54,8 +52,7 @@
             local required-value = $(__require__$(p:G)) ;
             if $(required-value)
             {
- local value = $(p:G=) ;
- if $(value) != $(required-value)
+ if $(p:G=) != $(required-value)
                 {
                     result += $(p:G)$(required-value) ;
                 }
@@ -71,25 +68,26 @@
         }
     }
 
- # Unset our ugly map.
+ # Unset our ugly map.
     for local r in $(requirements)
     {
- __require__$(r:G) = ;
+ __require__$(r:G) = ;
     }
-
+
     if $(error)
     {
         return $(error) ;
     }
     else
     {
- return [ unique $(result) $(requirements) ] ;
+ return [ sequence.unique $(result) $(requirements) ] ;
     }
 }
 
-# Removes all conditional properties which conditions are not met
-# For those with met conditions, removes the condition. Properies
-# in conditions are looked up in 'context'
+
+# Removes all conditional properties whose conditions are not met. For those
+# with met conditions, removes the condition. Properties in conditions are
+# looked up in 'context'.
 rule evaluate-conditionals-in-context ( properties * : context * )
 {
     local base ;
@@ -103,31 +101,32 @@
         else
         {
             base += $(p) ;
- }
+ }
     }
 
     local result = $(base) ;
     for local p in $(conditionals)
     {
- # Separate condition and property
+ # Separate condition and property.
         local s = [ MATCH (.*):(<.*) : $(p) ] ;
- # Split condition into individual properties
+ # Split condition into individual properties.
         local c = [ regex.split $(s[1]) "," ] ;
- # Evaluate condition
+ # Evaluate condition.
         if $(c) in $(context)
         {
             result += $(s[2]) ;
- }
+ }
     }
- return $(result) ;
+ return $(result) ;
 }
 
+
 rule expand-subfeatures-in-conditions ( properties * )
 {
     local result ;
     for local p in $(properties)
     {
- local s = [ MATCH (.*):(<.*) : $(p) ] ;
+ local s = [ MATCH (.*):(<.*) : $(p) ] ;
         if ! $(s)
         {
             result += $(p) ;
@@ -135,20 +134,20 @@
         else
         {
             local condition = $(s[1]) ;
- # Condition might include several elements
+ local value = $(s[2]) ;
+ # Condition might include several elements.
             condition = [ regex.split $(condition) "," ] ;
- local value = $(s[2]) ;
             local e ;
             for local c in $(condition)
- {
- # It common that condition includes a toolset which
- # was never defined, or mentiones subfeatures which
- # were never defined. In that case, validation will
- # only produce an spirious error, so prevent
- # validation by passing 'true' as second parameter.
+ {
+ # It is common for a condition to include a toolset or
+ # subfeatures that have not been defined. In that case we want
+ # the condition to simply 'never be satisfied' and validation
+ # would only produce a spurious error so we prevent it by
+ # passing 'true' as the second parameter.
                 e += [ feature.expand-subfeatures $(c) : true ] ;
             }
-
+
             if $(e) = $(condition)
             {
                 result += $(p) ;
@@ -157,17 +156,15 @@
             {
                 local individual-subfeatures = [ set.difference $(e) : $(condition) ] ;
                 result += $(individual-subfeatures:J=,):$(value) ;
- }
- }
- }
+ }
+ }
+ }
     return $(result) ;
 }
 
 
-
-# Helper for as-path, below. Orders properties with the implicit ones
-# first, and within the two sections in alphabetical order of feature
-# name.
+# Helper for as-path, below. Orders properties with the implicit ones first, and
+# within the two sections in alphabetical order of feature name.
 local rule path-order ( x y )
 {
     if $(y:G) && ! $(x:G)
@@ -185,7 +182,7 @@
             x = [ feature.expand-subfeatures $(x) ] ;
             y = [ feature.expand-subfeatures $(y) ] ;
         }
-
+
         if $(x[1]) < $(y[1])
         {
             return true ;
@@ -193,6 +190,7 @@
     }
 }
 
+
 local rule abbreviate-dashed ( string )
 {
     local r ;
@@ -203,11 +201,13 @@
     return $(r:J=-) ;
 }
 
+
 local rule identity ( string )
 {
     return $(string) ;
 }
 
+
 if --abbreviate-paths in [ modules.peek : ARGV ]
 {
     .abbrev = abbreviate-dashed ;
@@ -217,37 +217,38 @@
     .abbrev = identity ;
 }
 
-# Returns a path which represents the given expanded property set.
+
+# Returns a path representing the given expanded property set.
 rule as-path ( properties * )
 {
     local entry = .result.$(properties:J=-) ;
-
+
     if ! $($(entry))
     {
         # trim redundancy
         properties = [ feature.minimize $(properties) ] ;
-
+
         # sort according to path-order
         properties = [ sequence.insertion-sort $(properties) : path-order ] ;
-
+
         local components ;
         for local p in $(properties)
         {
             if $(p:G)
             {
- local f = [ ungrist $(p:G) ] ;
+ local f = [ utility.ungrist $(p:G) ] ;
                 p = $(f)-$(p:G=) ;
             }
-
             components += [ $(.abbrev) $(p) ] ;
         }
-
+
         $(entry) = $(components:J=/) ;
- }
-
+ }
+
     return $($(entry)) ;
 }
 
+
 # Exit with error if property is not valid.
 local rule validate1 ( property )
 {
@@ -259,17 +260,19 @@
 
         if ! [ feature.valid $(feature) ]
         {
- feature = [ ungrist $(property:G) ] ; # Ungrist for better error messages
+ # Ungrist for better error messages.
+ feature = [ utility.ungrist $(property:G) ] ;
             msg = "unknown feature '$(feature)'" ;
         }
- else if $(value) && ! free in [ feature.attributes $(feature) ]
+ else if $(value) && ! free in [ feature.attributes $(feature) ]
         {
             feature.validate-value-string $(feature) $(value) ;
- }
+ }
         else if ! ( $(value) || ( optional in [ feature.attributes $(feature) ] ) )
         {
- feature = [ ungrist $(property:G) ] ; # Ungrist for better error messages
- msg = "No value specified for feature '$(feature)'" ;
+ # Ungrist for better error messages.
+ feature = [ utility.ungrist $(property:G) ] ;
+ msg = "No value specified for feature '$(feature)'" ;
         }
     }
     else
@@ -277,12 +280,13 @@
         local feature = [ feature.implied-feature $(property) ] ;
         feature.validate-value-string $(feature) $(property) ;
     }
- if $(msg)
+ if $(msg)
     {
- error "Invalid property "'$(property:J=" ")'": "$(msg:J=" "). ;
+ errors.error "Invalid property "'$(property:J=" ")'": "$(msg:J=" "). ;
     }
 }
 
+
 rule validate ( properties * )
 {
     for local p in $(properties)
@@ -291,6 +295,7 @@
     }
 }
 
+
 rule validate-property-sets ( property-sets * )
 {
     for local s in $(property-sets)
@@ -299,12 +304,13 @@
     }
 }
 
-# Makes a property set from 'specification', converting implicit values into
-# full properties.
+
+# Expands any implicit property values in the given property 'specification' so
+# they explicitly state their feature.
 rule make ( specification * )
 {
     local result ;
- for local e in $(specification)
+ for local e in $(specification)
     {
         if $(e:G)
         {
@@ -313,18 +319,19 @@
         else if [ feature.is-implicit-value $(e) ]
         {
             local feature = [ feature.implied-feature $(e) ] ;
- result += $(feature)$(e) ;
+ result += $(feature)$(e) ;
         }
         else
         {
- error "'$(e)' is not a valid for property specification" ;
+ errors.error "'$(e)' is not a valid property specification" ;
         }
     }
     return $(result) ;
 }
 
-# Returns a property sets which include all the elements in 'properties' that
-# do not have attributes listed in 'attributes'.
+
+# Returns a property set containing all the elements in 'properties' that do not
+# have their attributes listed in 'attributes'.
 rule remove ( attributes + : properties * )
 {
     local result ;
@@ -338,8 +345,9 @@
     return $(result) ;
 }
 
-# Returns a property set which include all properties in 'properties' that have
-# any of 'attributes'.
+
+# Returns a property set containig all the elements in 'properties' that have
+# their attributes listed in 'attributes'.
 rule take ( attributes + : properties * )
 {
     local result ;
@@ -353,15 +361,16 @@
     return $(result) ;
 }
 
-# Selects properties which correspond to any of the given features.
+
+# Selects properties corresponding to any of the given features.
 rule select ( features * : properties * )
 {
     local result ;
-
- # add any missing angle brackets
+
+ # Add any missing angle brackets.
     local empty = "" ;
     features = $(empty:G=$(features)) ;
-
+
     for local p in $(properties)
     {
         if $(p:G) in $(features)
@@ -372,17 +381,17 @@
     return $(result) ;
 }
 
-# Returns a modified version of properties with all values of the
-# given feature replaced by the given value.
-# If 'value' is empty the feature will be removed
+
+# Returns a modified version of properties with all values of the given feature
+# replaced by the given value. If 'value' is empty the feature will be removed.
 rule change ( properties * : feature value ? )
 {
- local result ;
+ local result ;
     for local p in $(properties)
     {
         if $(p:G) = $(feature)
         {
- result += $(value:G=$(feature)) ;
+ result += $(value:G=$(feature)) ;
         }
         else
         {
@@ -392,61 +401,61 @@
     return $(result) ;
 }
 
-# If 'property' is conditional property, returns
-# condition and the property, e.g
-# <variant>debug,<toolset>gcc:<inlining>full will become
-# <variant>debug,<toolset>gcc <inlining>full.
-# Otherwise, returns empty string.
+
+# If 'property' is a conditional property, returns the condition and the
+# property. E.g. <variant>debug,<toolset>gcc:<inlining>full will become
+# <variant>debug,<toolset>gcc <inlining>full. Otherwise, returns an empty
+# string.
 rule split-conditional ( property )
 {
     local m = [ MATCH "(.+):<(.+)" : $(property) ] ;
     if $(m)
     {
         return $(m[1]) <$(m[2]) ;
- }
+ }
 }
 
 
-# Interpret all path properties in 'properties' as relative to 'path'
-# The property values are assumed to be in system-specific form, and
-# will be translated into normalized form.
+# Interpret all path properties in 'properties' as relative to 'path'. The
+# property values are assumed to be in system-specific form, and will be
+# translated into normalized form.
 rule translate-paths ( properties * : path )
 {
     local result ;
     for local p in $(properties)
     {
         local split = [ split-conditional $(p) ] ;
- local condition = "" ;
+ local condition = "" ;
         if $(split)
         {
             condition = $(split[1]): ;
             p = $(split[2]) ;
         }
-
- if path in [ feature.attributes $(p:G) ]
+
+ if path in [ feature.attributes $(p:G) ]
         {
             local values = [ regex.split $(p:TG=) "&&" ] ;
             local t ;
             for local v in $(values)
             {
- t += [ path.root [ path.make $(v) ] $(path) ] ;
+ t += [ path.root [ path.make $(v) ] $(path) ] ;
             }
- t = $(t:J="&&") ;
+ t = $(t:J="&&") ;
             result += $(condition)$(t:TG=$(p:G)) ;
         }
         else
         {
             result += $(condition)$(p) ;
- }
+ }
     }
     return $(result) ;
 }
 
-# Assumes that all feature values that start with '@' are
-# names of rules, used in 'context-module'. Such rules
-# can be either local to the module or global. Converts such
-# values into 'indirect-rule' format (see indirect.jam), so
-# that they can be called from other modules.
+
+# Assumes that all feature values that start with '@' are names of rules, used
+# in 'context-module'. Such rules can be either local to the module or global.
+# Converts such values into 'indirect-rule' format (see indirect.jam), so they
+# can be called from other modules.
 rule translate-indirect ( specification * : context-module )
 {
     local result ;
@@ -458,23 +467,21 @@
             local v ;
             if [ MATCH "^([^%]*)%([^%]+)$" : $(m) ]
             {
- # Rule is already in indirect format
+ # Rule is already in indirect format.
                 v = $(m) ;
             }
             else
             {
                 if ! [ MATCH ".*([.]).*" : $(m) ]
                 {
- # This is unqualified rule name. The user might want
- # to set flags on this rule name, and toolset.flag
- # auto-qualifies the rule name. Need to do the same
- # here so set flag setting work.
- # We can arrange for toolset.flag to *not* auto-qualify
- # the argument, but then two rules defined in two Jamfiles
- # will conflict.
+ # This is an unqualified rule name. The user might want to
+ # set flags on this rule name and toolset.flag
+ # auto-qualifies it. Need to do the same here so flag
+ # setting works. We can arrange for toolset.flag to *not*
+ # auto-qualify the argument but then two rules defined in
+ # two Jamfiles would conflict.
                     m = $(context-module).$(m) ;
                 }
-
                 v = [ indirect.make $(m) : $(context-module) ] ;
             }
 
@@ -484,25 +491,24 @@
         else
         {
             result += $(p) ;
- }
+ }
     }
- return $(result) ;
+ return $(result) ;
 }
 
 
-# Class which maintains a property set -> string
-# mapping
+# Class which maintains a property set -> string mapping.
 class property-map
 {
+ import errors ;
     import numbers ;
     import sequence ;
- import errors : error ;
-
+
     rule __init__ ( )
- {
+ {
         self.next-flag = 1 ;
     }
-
+
     # Associate 'value' with 'properties'
     rule insert ( properties + : value )
     {
@@ -513,18 +519,16 @@
         self.next-flag = [ numbers.increment $(self.next-flag) ] ;
     }
 
- # Return the value associated with 'properties'
- # or any subset of it. If more than one
- # subset has value assigned to it, return the
- # value for the longest subset, if it's unique.
+ # Returns the value associated with 'properties' or any subset of it. If
+ # more than one subset has a value assigned to it, returns the value for the
+ # longest subset, if it's unique.
     rule find ( properties + )
     {
         return [ find-replace $(properties) ] ;
     }
-
- # Find the value associated with 'properties'.
- # If 'value' parameter is given, replaces the found value
- # Returns the value that were stored originally.
+
+ # Returns the value associated with 'properties'. If 'value' parameter is
+ # given, replaces the found value.
     rule find-replace ( properties + : value ? )
     {
         # First find all matches
@@ -535,106 +539,95 @@
             if $(self.properties.$(i)) in $(properties)
             {
                 matches += $(i) ;
- match-ranks += [ sequence.length
- $(self.properties.$(i)) ] ;
+ match-ranks += [ sequence.length $(self.properties.$(i)) ] ;
             }
         }
- local best = [ sequence.select-highest-ranked
- $(matches) : $(match-ranks) ] ;
+ local best = [ sequence.select-highest-ranked $(matches)
+ : $(match-ranks) ] ;
         if $(best[2])
         {
- error "Ambiguous key" ;
- }
+ errors.error "Ambiguous key" ;
+ }
         local original = $(self.value.$(best)) ;
         if $(value)
         {
             self.value.$(best) = $(value) ;
- }
+ }
         return $(original) ;
- }
+ }
 }
 
+
 local rule __test__ ( )
 {
+ import assert ;
+ import "class" : new ;
     import errors : try catch ;
     import feature ;
- import feature : feature subfeature compose ;
-
- # local rules must be explicitly re-imported
+
+ # Local rules must be explicitly re-imported.
     import property : path-order abbreviate-dashed ;
-
+
     feature.prepare-test property-test-temp ;
 
- feature toolset : gcc : implicit symmetric ;
- subfeature toolset gcc : version : 2.95.2 2.95.3 2.95.4
- 3.0 3.0.1 3.0.2 : optional ;
- feature define : : free ;
- feature runtime-link : dynamic static : symmetric link-incompatible ;
- feature optimization : on off ;
- feature variant : debug release : implicit composite symmetric ;
- feature rtti : on off : link-incompatible ;
+ feature.feature toolset : gcc : implicit symmetric ;
+ feature.subfeature toolset gcc : version : 2.95.2 2.95.3 2.95.4 3.0 3.0.1
+ 3.0.2 : optional ;
+ feature.feature define : : free ;
+ feature.feature runtime-link : dynamic static : symmetric link-incompatible ;
+ feature.feature optimization : on off ;
+ feature.feature variant : debug release : implicit composite symmetric ;
+ feature.feature rtti : on off : link-incompatible ;
 
- compose <variant>debug : <define>_DEBUG <optimization>off ;
- compose <variant>release : <define>NDEBUG <optimization>on ;
+ feature.compose <variant>debug : <define>_DEBUG <optimization>off ;
+ feature.compose <variant>release : <define>NDEBUG <optimization>on ;
 
- import assert ;
- import "class" : new ;
-
- validate <toolset>gcc <toolset>gcc-3.0.1 : $(test-space) ;
-
- assert.true path-order $(test-space) debug <define>foo ;
+ validate <toolset>gcc <toolset>gcc-3.0.1 : $(test-space) ;
+
+ assert.true path-order $(test-space) debug <define>foo ;
     assert.false path-order $(test-space) <define>foo debug ;
- assert.true path-order $(test-space) gcc debug ;
+ assert.true path-order $(test-space) gcc debug ;
     assert.false path-order $(test-space) debug gcc ;
- assert.true path-order $(test-space) <optimization>on <rtti>on ;
+ assert.true path-order $(test-space) <optimization>on <rtti>on ;
     assert.false path-order $(test-space) <rtti>on <optimization>on ;
-
+
     assert.result-equal <toolset>gcc <rtti>off <define>FOO
         : refine <toolset>gcc <rtti>off
         : <define>FOO
- : $(test-space)
- ;
+ : $(test-space) ;
 
     assert.result-equal <toolset>gcc <optimization>on
         : refine <toolset>gcc <optimization>off
         : <optimization>on
- : $(test-space)
- ;
+ : $(test-space) ;
 
     assert.result-equal <toolset>gcc <rtti>off
- : refine <toolset>gcc : <rtti>off : $(test-space)
- ;
+ : refine <toolset>gcc : <rtti>off : $(test-space) ;
 
     assert.result-equal <toolset>gcc <rtti>off <rtti>off:<define>FOO
- : refine <toolset>gcc : <rtti>off <rtti>off:<define>FOO
- : $(test-space)
- ;
-
- assert.result-equal <toolset>gcc:<define>foo <toolset>gcc:<define>bar
- : refine <toolset>gcc:<define>foo : <toolset>gcc:<define>bar
- : $(test-space)
- ;
+ : refine <toolset>gcc : <rtti>off <rtti>off:<define>FOO
+ : $(test-space) ;
+
+ assert.result-equal <toolset>gcc:<define>foo <toolset>gcc:<define>bar
+ : refine <toolset>gcc:<define>foo : <toolset>gcc:<define>bar
+ : $(test-space) ;
 
     assert.result <define>MY_RELEASE
- : evaluate-conditionals-in-context
+ : evaluate-conditionals-in-context
           <variant>release,<rtti>off:<define>MY_RELEASE
- : <toolset>gcc <variant>release <rtti>off
-
- ;
+ : <toolset>gcc <variant>release <rtti>off ;
 
     assert.result debug
- : as-path <optimization>off <variant>debug
- : $(test-space)
- ;
+ : as-path <optimization>off <variant>debug
+ : $(test-space) ;
 
     assert.result gcc/debug/rtti-off
- : as-path <toolset>gcc <optimization>off <rtti>off <variant>debug
- : $(test-space)
- ;
+ : as-path <toolset>gcc <optimization>off <rtti>off <variant>debug
+ : $(test-space) ;
 
     assert.result optmz-off : abbreviate-dashed optimization-off ;
     assert.result rntm-lnk-sttc : abbreviate-dashed runtime-link-static ;
-
+
     try ;
         validate <feature>value : $(test-space) ;
     catch "Invalid property '<feature>value': unknown feature 'feature'." ;
@@ -642,7 +635,7 @@
     try ;
         validate <rtti>default : $(test-space) ;
     catch \"default\" is not a known value of feature <rtti> ;
-
+
     validate <define>WHATEVER : $(test-space) ;
 
     try ;
@@ -652,21 +645,20 @@
     try ;
         validate value : $(test-space) ;
     catch "value" is not a value of an implicit feature ;
-
 
- assert.result-equal <rtti>on
+ assert.result-equal <rtti>on
         : remove free implicit : <toolset>gcc <define>foo <rtti>on : $(test-space) ;
 
- assert.result-equal <include>a
+ assert.result-equal <include>a
         : select include : <include>a <toolset>gcc ;
 
- assert.result-equal <include>a
+ assert.result-equal <include>a
         : select include bar : <include>a <toolset>gcc ;
 
     assert.result-equal <include>a <toolset>gcc
         : select include <bar> <toolset> : <include>a <toolset>gcc ;
-
- assert.result-equal <toolset>kylix <include>a
+
+ assert.result-equal <toolset>kylix <include>a
         : change <toolset>gcc <include>a : <toolset> kylix ;
 
     pm = [ new property-map ] ;
@@ -674,31 +666,23 @@
     $(pm).insert <toolset>gcc <os>NT : obj ;
     $(pm).insert <toolset>gcc <os>CYGWIN : obj ;
 
- assert.equal o
- : [ $(pm).find <toolset>gcc ] ;
+ assert.equal o : [ $(pm).find <toolset>gcc ] ;
 
- assert.equal obj
- : [ $(pm).find <toolset>gcc <os>NT ] ;
+ assert.equal obj : [ $(pm).find <toolset>gcc <os>NT ] ;
 
     try ;
         $(pm).find <toolset>gcc <os>NT <os>CYGWIN ;
     catch "Ambiguous key" ;
 
- # Test ordinary properties
- assert.result
- : split-conditional <toolset>gcc
- ;
-
- # Test properties with ":"
- assert.result
- : split-conditional <define>FOO=A::B
- ;
-
- # Test conditional feature
+ # Test ordinary properties.
+ assert.result : split-conditional <toolset>gcc ;
+
+ # Test properties with ":".
+ assert.result : split-conditional <define>FOO=A::B ;
+
+ # Test conditional feature.
     assert.result-equal <toolset>gcc,<toolset-gcc:version>3.0 <define>FOO
- : split-conditional <toolset>gcc,<toolset-gcc:version>3.0:<define>FOO
- ;
-
+ : split-conditional <toolset>gcc,<toolset-gcc:version>3.0:<define>FOO ;
+
     feature.finish-test property-test-temp ;
 }
-

Modified: branches/proto/v3/tools/build/v2/build/targets.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/targets.jam (original)
+++ branches/proto/v3/tools/build/v2/build/targets.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,152 +5,149 @@
 # (See accompanying file LICENSE_1_0.txt or copy at
 # http://www.boost.org/LICENSE_1_0.txt)
 
-
-# Supports 'abstract' targets, which are targets explicitly defined in Jamfile.
+# Supports 'abstract' targets, which are targets explicitly defined in a
+# Jamfile.
 #
-# Abstract targets are represented by classes derived from 'abstract-target' class.
-# The first abstract target is 'project-target', which is created for each
-# Jamfile, and can be obtained by the 'target' rule in the Jamfile's module.
-# (see project.jam).
+# Abstract targets are represented by classes derived from 'abstract-target'
+# class. The first abstract target is 'project-target', which is created for
+# each Jamfile, and can be obtained by the 'target' rule in the Jamfile's
+# module (see project.jam).
 #
-# Project targets keep a list of 'main-target' instances.
-# A main target is what the user explicitly defines in a Jamfile. It is
-# possible to have several definitions for a main target, for example to have
-# different lists of sources for different platforms. So, main targets
-# keep a list of alternatives.
+# Project targets keep a list of 'main-target' instances. A main target is
+# what the user explicitly defines in a Jamfile. It is possible to have
+# several definitions for a main target, for example to have different lists
+# of sources for different platforms. So, main targets keep a list of
+# alternatives.
 #
 # Each alternative is an instance of 'abstract-target'. When a main target
-# subvariant is defined by some rule, that rule will decide what class to
-# use, create an instance of that class and add it to the list of alternatives
-# for the main target.
+# subvariant is defined by some rule, that rule will decide what class to use,
+# create an instance of that class and add it to the list of alternatives for
+# the main target.
 #
-# Rules supplied by the build system will use only targets derived
-# from 'basic-target' class, which will provide some default behaviour.
-# There will be two classes derived from it, 'make-target', created by the
-# 'make' rule, and 'typed-target', created by rules such as 'exe' and 'dll'.
+# Rules supplied by the build system will use only targets derived from
+# 'basic-target' class, which will provide some default behaviour. There will
+# be different classes derived from it such as 'make-target', created by the
+# 'make' rule, and 'typed-target', created by rules such as 'exe' and 'lib'.
 
 #
 # +------------------------+
 # |abstract-target |
 # +========================+
 # |name |
-# |project |
-# | |
-# |generate(properties) = 0|
-# +-----------+------------+
-# |
-# ^
-# / \
-# +-+-+
-# |
-# |
-# +------------------------+------+------------------------------+
-# | | |
-# | | |
-# +----------+-----------+ +------+------+ +------+-------+
-# | project-target | | main-target | | basic-target |
-# +======================+ 1 * +=============+ alternatives +==============+
-# | generate(properties) |o-----------+ generate |<>------------->| generate |
+# |project |
+# | |
+# |generate(properties) = 0|
+# +-----------+------------+
+# |
+# ^
+# / \
+# +-+-+
+# |
+# |
+# +------------------------+------+------------------------------+
+# | | |
+# | | |
+# +----------+-----------+ +------+------+ +------+-------+
+# | project-target | | main-target | | basic-target |
+# +======================+ 1 * +=============+ alternatives +==============+
+# | generate(properties) |o-----------+ generate |<>------------->| generate |
 # | main-target | +-------------+ | construct = 0|
-# +----------------------+ +--------------+
-# |
-# ^
-# / \
-# +-+-+
-# |
-# |
-# ...--+----------------+------------------+----------------+---+
-# | | | |
-# | | | |
+# +----------------------+ +--------------+
+# |
+# ^
+# / \
+# +-+-+
+# |
+# |
+# ...--+----------------+------------------+----------------+---+
+# | | | |
+# | | | |
 # ... ---+-----+ +------+-------+ +------+------+ +--------+-----+
 # | | typed-target | | make-target | | stage-target |
 # . +==============+ +=============+ +==============+
 # . | construct | | construct | | construct |
 # +--------------+ +-------------+ +--------------+
 
+import assert ;
 import "class" : new ;
-import sequence ;
-import regex ;
-import property ;
 import errors ;
-import common ;
-import property-set ;
-import project ;
 import feature ;
-import virtual-target ;
+import indirect ;
 import path ;
+import property ;
+import property-set ;
+import sequence ;
 import set ;
-import assert ;
-import indirect ;
 import toolset ;
 
 # Base class for all abstract targets.
-class abstract-target
+class abstract-target
 {
- import project assert "class" errors ;
-
+ import project ;
+ import assert ;
+ import "class" ;
+ import errors ;
+
     rule __init__ ( name # name of the target in Jamfile
         : project-target # the project target to which this one belongs
     )
- {
+ {
         # Note: it might seem that we don't need either name or project at all.
- # However, there are places where we really need it. One example is error
- # messages which should name problematic targets. Another is setting correct
- # paths for sources and generated files.
-
+ # However, there are places where we really need it. One example is
+ # error messages which should name problematic targets. Another is
+ # setting correct paths for sources and generated files.
+
         self.name = $(name) ;
         self.project = $(project-target) ;
         self.location = [ errors.nearest-user-location ] ;
- }
-
+ }
+
     # Returns the name of this target.
     rule name ( )
     {
         return $(self.name) ;
     }
-
+
     # Returns the project for this target.
     rule project ( )
     {
         return $(self.project) ;
     }
-
+
     # Return the location where the target was declared
     rule location ( )
     {
         return $(self.location) ;
     }
-
+
     # Returns a user-readable name for this target.
     rule full-name ( )
     {
         local location = [ $(self.project).get location ] ;
         return $(location)/$(self.name) ;
     }
-
- # Takes a property set. Generates virtual targets for this abstract
- # target, using the specified properties, unless a different value of some
- # feature is required by the target.
- # On
- # success, returns:
- # - a property-set with the usage requirements to be
- # applied to dependents
- # - a list of produced virtual targets, which may be
- # empty.
- # If 'property-set' are empty, performs default build of this
- # target, in a way specific to derived class.
+
+ # Generates virtual targets for this abstract target using the specified
+ # properties, unless a different value of some feature is required by the
+ # target.
+ # On success, returns:
+ # - a property-set with the usage requirements to be applied to dependants
+ # - a list of produced virtual targets, which may be empty.
+ # If 'property-set' is empty, performs the default build of this target, in
+ # a way specific to the derived class.
     rule generate ( property-set )
     {
         errors.error "method should be defined in derived classes" ;
     }
-
+
     rule rename ( new-name )
     {
         self.name = $(new-name) ;
- }
+ }
 }
 
-if --debug-building in [ modules.peek : ARGV ]
+
+if --debug-building in [ modules.peek : ARGV ]
 {
     modules.poke : .debug-building : true ;
 }
@@ -161,63 +158,65 @@
     return $(.indent:J="") ;
 }
 
+
 rule increase-indent ( )
 {
     .indent += " " ;
 }
 
+
 rule decrease-indent ( )
 {
     .indent = $(.indent[2-]) ;
 }
 
-# Project target class (derived from 'abstract-target')
+
+# Project target class (derived from 'abstract-target').
 #
-# This class these responsibilities:
-# - maintaining a list of main target in this project and
-# building it
+# This class has the following responsibilities:
+# - Maintaining a list of main targets in this project and building them.
 #
 # Main targets are constructed in two stages:
-# - When Jamfile is read, a number of calls to 'add-alternative' is made.
-# At that time, alternatives can also be renamed to account for inline
-# targets.
-# - The first time 'main-target' or 'has-main-target' rule is called,
-# all alternatives are enumerated an main targets are created.
-class project-target : abstract-target
+# - When Jamfile is read, a number of calls to 'add-alternative' is made. At
+# that time, alternatives can also be renamed to account for inline targets.
+# - The first time 'main-target' or 'has-main-target' rule is called, all
+# alternatives are enumerated and main targets are created.
+class project-target : abstract-target
 {
- import project targets ;
+ import project ;
+ import targets ;
     import path ;
     import print ;
     import property-set ;
- import set : difference : set.difference ;
+ import set ;
     import sequence ;
     import "class" : new ;
     import errors ;
-
+
     rule __init__ ( name : project-module parent-project ?
         : requirements * : default-build * )
- {
+ {
         abstract-target.__init__ $(name) : $(__name__) ;
-
+
         self.project-module = $(project-module) ;
         self.location = [ project.attribute $(project-module) location ] ;
         self.requirements = $(requirements) ;
         self.default-build = $(default-build) ;
-
+
         if $(parent-project)
- {
+ {
             inherit $(parent-project) ;
- }
+ }
     }
 
- # This is needed only by the 'make' rule. Need to find the
- # way to make 'make' work without this method.
+ # This is needed only by the 'make' rule. Need to find the way to make
+ # 'make' work without this method.
     rule project-module ( )
     {
         return $(self.project-module) ;
     }
-
- rule get ( attribute )
+
+ rule get ( attribute )
     {
         return [ project.attribute $(self.project-module) $(attribute) ] ;
     }
@@ -225,57 +224,57 @@
     rule build-dir ( )
     {
         if ! $(self.build-dir)
- {
+ {
             self.build-dir = [ get build-dir ] ;
             if ! $(self.build-dir)
             {
- self.build-dir = [ path.join
+ self.build-dir = [ path.join
                     [ $(self.project).get location ]
                       bin
                 ] ;
             }
         }
         return $(self.build-dir) ;
- }
-
+ }
+
     # Generates all possible targets contained in this project.
     rule generate ( property-set * )
     {
- if [ modules.peek : .debug-building ]
+ if [ modules.peek : .debug-building ]
         {
             ECHO [ targets.indent ] "building project" [ name ] " ('$(__name__)') with" [ $(property-set).raw ] ;
             targets.increase-indent ;
         }
-
+
         local usage-requirements = [ property-set.empty ] ;
         local targets ;
-
- for local t in [ targets-to-build ]
+
+ for local t in [ targets-to-build ]
         {
             local g = [ $(t).generate $(property-set) ] ;
             usage-requirements = [ $(usage-requirements).add $(g[1]) ] ;
             targets += $(g[2-]) ;
         }
         targets.decrease-indent ;
- return $(usage-requirements) [ sequence.unique $(targets) ] ;
+ return $(usage-requirements) [ sequence.unique $(targets) ] ;
     }
-
- # Computes and returns a list of abstract-target instances which
- # must be built when this project is built.
+
+ # Computes and returns a list of abstract-target instances which must be
+ # built when this project is built.
     rule targets-to-build ( )
     {
         local result ;
-
+
         if ! $(self.built-main-targets)
         {
             build-main-targets ;
         }
-
+
         # Collect all main targets here, except for "explicit" ones.
         for local t in $(self.main-targets)
         {
             if ! [ $(t).name ] in $(self.explicit-targets)
- {
+ {
                 result += $(t) ;
             }
         }
@@ -286,10 +285,10 @@
         {
             result += [ find $(pn) ] ;
         }
-
+
         return $(result) ;
     }
-
+
     # Add 'target' to the list of targets in this project that should be build
     # only by explicit request
     rule mark-target-as-explicit ( target-name )
@@ -298,19 +297,18 @@
         # rule is called before main target instaces are created.
         self.explicit-targets += $(target-name) ;
     }
-
+
     # Add new target alternative
     rule add-alternative ( target-instance )
     {
         if $(self.built-main-targets)
         {
- errors.error "add-alternative called when main targets are already created."
- : "in project" [ full-name ] ;
- }
+ errors.error "add-alternative called when main targets are already created."
+ : "in project" [ full-name ] ;
+ }
         self.alternatives += $(target-instance) ;
     }
-
-
+
     # Returns a 'main-target' class instance corresponding to the 'name'.
     rule main-target ( name )
     {
@@ -318,7 +316,7 @@
         {
             build-main-targets ;
         }
-
+
         return $(self.main-target.$(name)) ;
     }
 
@@ -329,79 +327,79 @@
         {
             build-main-targets ;
         }
-
- if $(self.main-target.$(name))
+
+ if $(self.main-target.$(name))
         {
             return true ;
- }
+ }
     }
 
     # Find and return the target with the specified id, treated
     # relative to self.
     rule find-really ( id )
     {
- local result ;
+ local result ;
         local project = $(self.project) ;
         local current-location = [ get location ] ;
-
- local split = [ MATCH (.*)//(.*) : $(id) ] ;
+
+ local split = [ MATCH (.*)//(.*) : $(id) ] ;
         local project-part = $(split[1]) ;
         local target-part = $(split[2]) ;
 
         local extra-error-message ;
         if $(project-part)
         {
- # There's explicit project part in id. Looks up the
- # project and pass the request to it.
+ # There's explicit project part in id. Looks up the project and
+ # passes the request to it.
             local pm = [ project.find $(project-part) : $(current-location) ] ;
             if $(pm)
             {
- project-target = [ project.target $(pm) ] ;
+ project-target = [ project.target $(pm) ] ;
                 result = [ $(project-target).find $(target-part) : no-error ] ;
- }
+ }
             else
             {
                 extra-error-message = "error: could not find project '$(project-part)'" ;
- }
+ }
         }
         else
- {
- # Interpret target-name as name of main target
- # Need to do this before checking for file. Consider this:
+ {
+ # Interpret target-name as name of main target. Need to do this
+ # before checking for file. Consider this:
             #
             # exe test : test.cpp ;
             # install s : test : <location>. ;
             #
             # After first build we'll have target 'test' in Jamfile and file
- # 'test' on the disk. We need target to override the file.
- result = [ main-target $(id) ] ;
-
+ # 'test' on the disk. We need target to override the file.
+ result = [ main-target $(id) ] ;
+
             if ! $(result)
             {
                 result = [ new file-reference [ path.make $(id) ] : $(project) ] ;
-
+
                 if ! [ $(result).exists ]
                 {
- # File actually does not exist.
- # Reset 'target' so that an error is issued.
+ # File actually does not exist. Reset 'target' so that an
+ # error is issued.
                     result = ;
- }
+ }
             }
-
+
             # Interpret id as project-id
             if ! $(result)
- {
+ {
                 local project-module = [ project.find $(id) : $(current-location) ] ;
                 if $(project-module)
                 {
                     result = [ project.target $(project-module) ] ;
- }
- }
+ }
+ }
         }
-
+
         return $(result) ;
     }
-
+
     rule find ( id : no-error ? )
     {
         local v = $(.id.$(id)) ;
@@ -414,11 +412,11 @@
             }
             .id.$(id) = $(v) ;
         }
-
+
         if $(v) != none
         {
             return $(v) ;
- }
+ }
         else
         {
             if ! $(no-error)
@@ -430,12 +428,10 @@
                 ECHO "error: '$(current-location)'" ;
                 ECHO $(extra-error-message) ;
                 EXIT ;
- }
- }
+ }
+ }
     }
-
 
-
     rule build-main-targets ( )
     {
         self.built-main-targets = true ;
@@ -450,16 +446,16 @@
                 self.main-targets += $(t) ;
                 target = $(self.main-target.$(name)) ;
             }
-
- $(target).add-alternative $(a) ;
- }
- }
-
+
+ $(target).add-alternative $(a) ;
+ }
+ }
+
     # Accessor, add a constant.
     rule add-constant (
- name # Variable name of the constant.
- : value + # Value of the constant.
- : type ? # Optional type of value.
+ name # Variable name of the constant.
+ : value + # Value of the constant.
+ : type ? # Optional type of value.
         )
     {
         switch $(type)
@@ -467,14 +463,14 @@
             case path :
               local r ;
               for local v in $(value)
- {
+ {
                 v = [ path.root [ path.make $(v) ] $(self.location) ] ;
- # Now make the value absolute path
+ # Now make the value absolute path.
                 v = [ path.root $(v) [ path.pwd ] ] ;
- # Constants should be in platform-native form
+ # Constants should be in platform-native form.
                 v = [ path.native $(v) ] ;
                 r += $(v) ;
- }
+ }
               value = $(r) ;
         }
         if ! $(name) in $(self.constants)
@@ -482,31 +478,31 @@
             self.constants += $(name) ;
         }
         self.constant.$(name) = $(value) ;
- # Inject the constant in the scope of project-root module
+ # Inject the constant in the scope of project-root module.
         modules.poke $(self.project-module) : $(name) : $(value) ;
     }
-
+
     rule inherit ( parent )
     {
- for local c in [ modules.peek $(parent) : self.constants ]
+ for local c in [ modules.peek $(parent) : self.constants ]
         {
             # No need to pass the type. Path constants were converted to
             # absolute paths already by parent.
- add-constant $(c)
+ add-constant $(c)
               : [ modules.peek $(parent) : self.constant.$(c) ] ;
- }
+ }
 
- # Import rules from parent
+ # Import rules from parent.
         local this-module = [ project-module ] ;
         local parent-module = [ $(parent).project-module ] ;
- # Don't import rules which comes from 'project-rules', they
- # must be imported localized.
- local user-rules = [ set.difference
+ # Don't import rules coming from 'project-rules' as they must be
+ # imported localized.
+ local user-rules = [ set.difference
             [ RULENAMES $(parent-module) ] :
             [ RULENAMES project-rules ] ] ;
         IMPORT $(parent-module) : $(user-rules) : $(this-module) : $(user-rules) ;
         EXPORT $(this-module) : $(user-rules) ;
- }
+ }
 }
 
 
@@ -520,37 +516,38 @@
         {
             names += [ $(t).full-name ] ;
         }
-
- errors.error "Recursion in main target references"
+
+ errors.error "Recursion in main target references"
           : "the following target are being built currently:"
           : $(names) ;
     }
- .targets-being-built += $(main-target-instance) ;
+ .targets-being-built += $(main-target-instance) ;
 }
 
+
 local rule end-building ( main-target-instance )
 {
     .targets-being-built = $(.targets-being-built[1--2]) ;
 }
 
 
-# A named top-level target in Jamfile
+# A named top-level target in Jamfile.
 class main-target : abstract-target
 {
- import errors : error ;
     import assert ;
- import sequence ;
+ import build-request ;
+ import errors ;
+ import feature ;
     import print ;
- import build-request feature property-set ;
+ import property-set ;
+ import sequence ;
     import targets : start-building end-building ;
- import "class" : is-a ;
-
+
     rule __init__ ( name : project )
     {
         abstract-target.__init__ $(name) : $(project) ;
     }
-
-
+
     # Add a new alternative for this target
     rule add-alternative ( target )
     {
@@ -565,51 +562,49 @@
         else
         {
             self.default-build = $(d) ;
- }
+ }
         self.alternatives += $(target) ;
     }
 
- # Returns the best viable alternative for this property-set
- # See the documentation for selection rules.
+ # Returns the best viable alternative for this property-set. See the
+ # documentation for selection rules.
     local rule select-alternatives ( property-set debug ? )
     {
- # When selecting alternatives we have to consider defaults,
- # for example:
+ # When selecting alternatives we have to consider defaults, for example:
         # lib l : l.cpp : <variant>debug ;
         # lib l : l_opt.cpp : <variant>release ;
- # won't work unless we add default value <variant>debug.
- property-set = [ $(p).add-defaults ] ;
-
- # The algorithm: we keep the current best viable alternative.
- # When we've got new best viable alternative, we compare it
- # with the current one.
-
+ # won't work unless we add default value <variant>debug.
+ property-set = [ $(p).add-defaults ] ;
+
+ # The algorithm: we keep the current best viable alternative. When we've
+ # got a new best viable alternative, we compare it with the current one.
+
         local best ;
         local best-properties ;
-
+
         if $(self.alternatives[2-])
         {
             local bad ;
- local worklist = $(self.alternatives) ;
+ local worklist = $(self.alternatives) ;
             while $(worklist) && ! $(bad)
             {
- local v = $(worklist[1]) ;
- local properties = [ $(v).match $(property-set) $(debug) ] ;
-
+ local v = $(worklist[1]) ;
+ local properties = [ $(v).match $(property-set) $(debug) ] ;
+
                 if $(properties) != no-match
- {
+ {
                     if ! $(best)
                     {
                         best = $(v) ;
                         best-properties = $(properties) ;
                     }
                     else
- {
+ {
                         if $(properties) = $(best-properties)
                         {
                             bad = true ;
                         }
- else if $(properties) in $(best-properties)
+ else if $(properties) in $(best-properties)
                         {
                             # Do nothing, this alternative is worse
                         }
@@ -618,55 +613,53 @@
                             best = $(v) ;
                             best-properties = $(properties) ;
                         }
- else
+ else
                         {
                             bad = true ;
- }
+ }
                     }
                 }
- worklist = $(worklist[2-]) ;
+ worklist = $(worklist[2-]) ;
             }
             if ! $(bad)
             {
                 return $(best) ;
- }
+ }
         }
         else
         {
             return $(self.alternatives) ;
- }
+ }
     }
-
-
+
     rule apply-default-build ( property-set )
- {
- # 1. First, see what properties from default-build
- # are already present in property-set.
-
+ {
+ # 1. First, see what properties from default-build are already present
+ # in property-set.
+
         local raw = [ $(property-set).raw ] ;
         local specified-features = $(raw:G) ;
-
+
         local defaults-to-apply ;
- for local d in [ $(self.default-build).raw ]
+ for local d in [ $(self.default-build).raw ]
         {
             if ! $(d:G) in $(specified-features)
             {
- defaults-to-apply += $(d) ;
- }
+ defaults-to-apply += $(d) ;
+ }
         }
-
- # 2. If there's any defaults to be applied, form the new
- # build request. Pass it throw 'expand-no-defaults', since
- # default-build might contain "release debug", which will
- # result in two property-sets.
+
+ # 2. If there are any defaults to be applied, form a new build request.
+ # Pass it through to 'expand-no-defaults' since default-build might
+ # contain "release debug" resulting in two property-sets.
         local result ;
         if $(defaults-to-apply)
         {
- properties = [
- build-request.expand-no-defaults
-
- # We have to compress subproperties here to prevent
- # property lists like:
+ properties = [
+ build-request.expand-no-defaults
+
+ # We have to compress subproperties here to prevent property
+ # lists like:
                 #
                 # <toolset>msvc <toolset-msvc:version>7.1 <threading>multi
                 #
@@ -675,27 +668,25 @@
                 # <toolset-msvc:version>7.1/<threading>multi
                 # <toolset>msvc/<toolset-msvc:version>7.1/<threading>multi
                 #
- # due to cross-product property combination. That may
- # be an indication that
- # build-request.expand-no-defaults is the wrong rule
- # to use here.
- [ feature.compress-subproperties $(raw) ]
+ # due to a cross-product property combination. That may be an
+ # indication that build-request.expand-no-defaults is the wrong
+ # rule to use here.
+ [ feature.compress-subproperties $(raw) ]
                   $(defaults-to-apply)
             ] ;
-
+
             if $(properties)
- {
+ {
                 for local p in $(properties)
                 {
- result += [ property-set.create
+ result += [ property-set.create
                         [ feature.expand [ feature.split $(p) ] ] ] ;
                 }
             }
             else
             {
                 result = [ property-set.empty ] ;
- }
-
+ }
         }
         else
         {
@@ -703,19 +694,19 @@
         }
         return $(result) ;
     }
-
+
     # Select an alternative for this main target, by finding all alternatives
     # which requirements are satisfied by 'properties' and picking the one with
- # longest requirements set.
- # Returns the result of calling 'generate' on that alternative.
+ # longest requirements set. Returns the result of calling 'generate' on that
+ # alternative.
     rule generate ( property-set )
     {
         start-building $(__name__) ;
 
- # We want composite properties in build request act as if
- # all the properties it expands too are explicitly specified.
+ # We want composite properties in build request act as if all the
+ # properties it expands too are explicitly specified.
         property-set = [ $(property-set).expand ] ;
-
+
         local all-property-sets = [ apply-default-build $(property-set) ] ;
         local usage-requirements = [ property-set.empty ] ;
         local result ;
@@ -729,16 +720,15 @@
             }
         }
         end-building $(__name__) ;
- return $(usage-requirements) [ sequence.unique $(result) ] ;
+ return $(usage-requirements) [ sequence.unique $(result) ] ;
     }
-
- # Generates the main target with the given property set
- # and returns a list which first element is property-set object
- # containing usage-requirements of generated target and with
- # generated virtual target in other elements. It's possible
- # that no targets are generated.
+
+ # Generates the main target with the given property set and returns a list
+ # which first element is property-set object containing usage-requirements
+ # of generated target and with generated virtual target in other elements.
+ # It's possible that no targets are generated.
     local rule generate-really ( property-set )
- {
+ {
         local best-alternatives = [ select-alternatives $(property-set) ] ;
         if ! $(best-alternatives)
         {
@@ -748,13 +738,11 @@
         }
         else
         {
- local result = [ $(best-alternatives).generate $(property-set) ] ;
-
- # Now return virtual targets for the only alternative
- return $(result) ;
- }
+ # Now return virtual targets for the only alternative.
+ return [ $(best-alternatives).generate $(property-set) ] ;
+ }
     }
-
+
     rule rename ( new-name )
     {
         abstract-target.rename $(new-name) ;
@@ -762,48 +750,46 @@
         {
             $(a).rename $(new-name) ;
         }
-
     }
-
 }
 
-# Abstract target which refers to a source file.
-# This is artificial creature; it's usefull so that sources to
-# a target can be represented as list of abstract target instances.
-class file-reference : abstract-target
+
+# Abstract target which refers to a source file. This is an artificial entity
+# allowing sources to a target to be represented using a list of abstract target
+# instances.
+class file-reference : abstract-target
 {
     import virtual-target ;
     import property-set ;
     import path ;
-
+
     rule __init__ ( file : project )
     {
         abstract-target.__init__ $(file) : $(project) ;
     }
-
+
     rule generate ( properties )
     {
         location ;
- return [ property-set.empty ]
+ return [ property-set.empty ]
                [ virtual-target.from-file $(self.name)
                                          : $(self.file-location)
- : $(self.project) ] ;
- }
+ : $(self.project) ] ;
+ }
 
- # Returns true if the referred file really exists;
+ # Returns true if the referred file really exists.
     rule exists ( )
     {
         location ;
         return $(self.file-path) ;
     }
-
- # Returns the location of target. Needed by 'testing.jam'
+
+ # Returns the location of target. Needed by 'testing.jam'.
     rule location ( )
     {
         if ! $(self.file-location)
         {
             local source-location = [ $(self.project).get source-location ] ;
-
             for local src-dir in $(source-location)
             {
                 if ! $(self.file-location)
@@ -821,9 +807,10 @@
     }
 }
 
-# Given a target-reference, made in context of 'project',
-# returns the abstract-target instance that is referred to, as well
-# as properties explicitly specified for this reference.
+
+# Given a target-reference, made in context of 'project', returns the
+# abstract-target instance that is referred to, as well as properties explicitly
+# specified for this reference.
 rule resolve-reference ( target-reference : project )
 {
     # Separate target name from properties override
@@ -838,596 +825,574 @@
 
     # Find the target
     local target = [ $(project).find $(id) ] ;
-
+
     return $(target) [ property-set.create $(sproperties) ] ;
 }
 
 
-
-# Attempts to generate the target given by target reference, which
-# can refer both to a main target or to a file.
-# Returns a list consisting of
+# Attempts to generate the target given by target reference, which can refer
+# both to a main target or to a file. Returns a list consisting of
 # - usage requirements
 # - generated virtual targets, if any
-rule generate-from-reference
- ( target-reference # Target reference
- : project # Project where the reference is made
- : property-set # Properties of the main target that
- # makes the reference
- )
+rule generate-from-reference (
+ target-reference # Target reference.
+ : project # Project where the reference is made.
+ : property-set # Properties of the main target that makes the reference.
+)
 {
     local r = [ resolve-reference $(target-reference) : $(project) ] ;
     local target = $(r[1]) ;
     local sproperties = $(r[2]) ;
-
- # Take properties which should be propagated and refine them
- # with source-specific requirements.
+
+ # Take properties which should be propagated and refine them with
+ # source-specific requirements.
     local propagated = [ $(property-set).propagated ] ;
     local rproperties = [ $(propagated).refine $(sproperties) ] ;
     if $(rproperties[1]) = "@error"
     {
         errors.error
- "When building" [ full-name ] " with properties " $(properties) :
+ "When building" [ full-name ] " with properties " $(properties) :
             "Invalid properties specified for " $(source) ":"
- $(rproperties[2-]) ;
+ $(rproperties[2-]) ;
     }
     return [ $(target).generate $(rproperties) ] ;
 }
 
-# Given build request and requirements, return properties
-# common to dependency build request and target build
-# properties
+
+# Given a build request and requirements, return properties common to dependency
+# build request and target build properties.
 rule common-properties ( build-request requirements )
 {
- # For optimization, we add free requirements directly,
- # without using complex algorithsm.
- # This gives the complex algorithm better chance of caching results.
- local free = [ $(requirements).free ] ;
- local non-free = [ property-set.create
+ # For optimization, we add free requirements directly, without using a
+ # complex algorithm. This gives the complex algorithm better chance of
+ # caching results.
+ local free = [ $(requirements).free ] ;
+ local non-free = [ property-set.create
         [ $(requirements).base ] [ $(requirements).incidental ] ] ;
-
+
     local key = .rp.$(build-request)-$(non-free) ;
     if ! $($(key))
- {
- $(key) = [ common-properties2 $(build-request) $(non-free) ] ;
- }
+ {
+ $(key) = [ common-properties2 $(build-request) $(non-free) ] ;
+ }
     result = [ $($(key)).add-raw $(free) ] ;
 }
 
+
 # Given 'context' -- a set of already present properties, and 'requirements',
-# decide which extra properties should be applied to 'context'.
-# For conditional requirements, this means evaluating condition. For
-# indirect conditional requirements, this means calling a rule. Ordinary
-# requirements are always applied.
-#
-# Handles situation where evaluating one conditional requirements affects
-# condition of another conditional requirements, for example:
+# decide which extra properties should be applied to 'context'. For conditional
+# requirements, this means evaluating condition. For indirect conditional
+# requirements, this means calling a rule. Ordinary requirements are always
+# applied.
 #
+# Handles the situation where evaluating one conditional requirement affects
+# conditions of another conditional requirements, such as:
 # <toolset>gcc:<variant>release <variant>release:<define>RELEASE
 #
-# If 'what' is 'refined' returns context refined with new requirements.
-# If 'what' is 'added' returns just the requirements that must be applied.
+# If 'what' is 'refined' returns context refined with new requirements. If
+# 'what' is 'added' returns just the requirements to be applied.
 rule evaluate-requirements ( requirements : context : what )
 {
- # Apply non-conditional requirements.
- # It's possible that that further conditional requirement change
- # a value set by non-conditional requirements. For example:
+ # Apply non-conditional requirements. It's possible that further conditional
+ # requirement change a value set by non-conditional requirements. For
+ # example:
     #
     # exe a : a.cpp : <threading>single <toolset>foo:<threading>multi ;
- #
+ #
     # I'm not sure if this should be an error, or not, especially given that
     #
- # <threading>single
+ # <threading>single
     #
     # might come from project's requirements.
-
+
     local unconditional = [ feature.expand [ $(requirements).non-conditional ] ] ;
-
+
     local raw = [ $(context).raw ] ;
     raw = [ property.refine $(raw) : $(unconditional) ] ;
-
+
     # We've collected properties that surely must be present in common
- # properties. We now try to figure out what other properties
- # should be added in order to satisfy rules (4)-(6) from the docs.
-
+ # properties. We now try to figure out what other properties should be added
+ # in order to satisfy rules (4)-(6) from the docs.
+
     local conditionals = [ $(requirements).conditional ] ;
- # The 'count' variable has one element for each conditional feature
- # and for each occurence of '<indirect-conditional>' feature.
- # It's used as a loop counter: for each iteration of the loop
- # before we remove one element and the property set should
- # stabilize before we've done. It's supposed to #conditionals iterations
- # should be enough for properties to propagate along conditions in any
- # direction.
- local count = $(conditionals)
- [ $(requirements).get <conditional> ]
+ # The 'count' variable has one element for each conditional feature and for
+ # each occurence of '<indirect-conditional>' feature. It's used as a loop
+ # counter: for each iteration of the loop before we remove one element and
+ # the property set should stabilize before we're done. It's assumed that
+ # #conditionals iterations should be enough for properties to propagate
+ # along conditions in any direction.
+ local count = $(conditionals)
+ [ $(requirements).get <conditional> ]
                   and-once-more ;
-
+
     local added-requirements ;
-
+
     local current = $(raw) ;
-
+
     # It's assumed that ordinary conditional requirements can't add
- # <indirect-conditional> properties, and that rules referred
- # by <indirect-conditional> properties can't add new
- # <indirect-conditional> properties. So the list of indirect conditionals
- # does not change.
+ # <indirect-conditional> properties, and that rules referred by
+ # <indirect-conditional> properties can't add new <indirect-conditional>
+ # properties. So the list of indirect conditionals does not change.
     local indirect = [ $(requirements).get <conditional> ] ;
- indirect = [ MATCH @(.*) : $(indirect) ] ;
-
+ indirect = [ MATCH @(.*) : $(indirect) ] ;
+
     local ok ;
- while $(count)
+ while $(count)
     {
- # Evaluate conditionals in context of current properties
- local e = [ property.evaluate-conditionals-in-context $(conditionals)
- : $(current) ] ;
-
+ # Evaluate conditionals in context of current properties.
+ local e = [ property.evaluate-conditionals-in-context $(conditionals)
+ : $(current) ] ;
+
         # Evaluate indirect conditionals.
         for local i in $(indirect)
         {
             e += [ indirect.call $(i) $(current) ] ;
         }
-
+
         if $(e) = $(added-requirements)
- {
+ {
             # If we got the same result, we've found final properties.
- count = ;
+ count = ;
             ok = true ;
- }
+ }
         else
         {
- # Oops, results of evaluation of conditionals has changed.
- # Also 'current' contains leftover from previous evaluation.
- # Recompute 'current' using initial properties and conditional
- # requirements.
+ # Oops, results of evaluation of conditionals has changed. Also
+ # 'current' contains leftover from previous evaluation. Recompute
+ # 'current' using initial properties and conditional requirements.
             added-requirements = $(e) ;
             current = [ property.refine $(raw) : [ feature.expand $(e) ] ] ;
- }
+ }
         count = $(count[2-]) ;
     }
     if ! $(ok)
     {
         errors.error "Can't evaluate conditional properties " $(conditionals) ;
     }
-
 
     if $(what) = added
     {
         return [ property-set.create $(unconditional) $(added-requirements) ] ;
     }
     else if $(what) = refined
- {
- return [ property-set.create $(current) ] ;
+ {
+ return [ property-set.create $(current) ] ;
     }
     else
     {
         errors.error "Invalid value of the 'what' parameter" ;
- }
+ }
 }
 
-
+
 rule common-properties2 ( build-request requirements )
-{
- # This guarantees that default properties are present
- # in result, unless they are overrided by some requirement.
- # FIXME: There is possibility that we've added <foo>bar, which is composite
- # and expands to <foo2>bar2, but default value of <foo2> is not bar2,
- # in which case it's not clear what to do.
- #
+{
+ # This guarantees that default properties are present in the result, unless
+ # they are overriden by some requirement. FIXME: There is possibility that
+ # we've added <foo>bar, which is composite and expands to <foo2>bar2, but
+ # default value of <foo2> is not bar2, in which case it's not clear what to
+ # do.
+ #
     build-request = [ $(build-request).add-defaults ] ;
- # Featured added by 'add-default' can be composite and expand
- # to features without default values -- so they are not added yet.
- # It could be clearer/faster to expand only newly added properties
- # but that's not critical.
+ # Features added by 'add-default' can be composite and expand to features
+ # without default values -- so they are not added yet. It could be clearer/
+ # /faster to expand only newly added properties but that's not critical.
     build-request = [ $(build-request).expand ] ;
-
- return [ evaluate-requirements $(requirements)
+
+ return [ evaluate-requirements $(requirements)
       : $(build-request) : refined ] ;
 }
 
-# Implements the most standard way of constructing main target
-# alternative from sources. Allows sources to be either file or
-# other main target and handles generation of those dependency
-# targets.
+
+# Implements the most standard way of constructing main target alternative from
+# sources. Allows sources to be either file or other main target and handles
+# generation of those dependency targets.
 class basic-target : abstract-target
 {
     import build-request ;
- import virtual-target targets ;
- import property-set ;
- import set sequence errors ;
- import "class" : new ;
- import property feature ;
     import build-system ;
-
- rule __init__ ( name : project
- : sources * : requirements * :
- default-build * : usage-requirements * )
- {
+ import "class" : new ;
+ import errors ;
+ import feature ;
+ import property ;
+ import property-set ;
+ import sequence ;
+ import set ;
+ import targets ;
+ import virtual-target ;
+
+ rule __init__ ( name : project : sources * : requirements *
+ : default-build * : usage-requirements * )
+ {
         abstract-target.__init__ $(name) : $(project) ;
-
+
         self.sources = $(sources) ;
         if ! $(requirements) {
             requirements = [ property-set.empty ] ;
- }
+ }
         self.requirements = $(requirements) ;
- if ! $(default-build)
+ if ! $(default-build)
         {
             default-build = [ property-set.empty ] ;
- }
+ }
         self.default-build = $(default-build) ;
         if ! $(usage-requirements)
         {
             usage-requirements = [ property-set.empty ] ;
- }
+ }
         self.usage-requirements = $(usage-requirements) ;
-
+
         if $(sources:G)
         {
             errors.user-error "properties found in the 'sources' parameter for" [ full-name ] ;
         }
     }
-
- # Returns the list of abstract-targets which are used as sources.
- # The extra properties specified for sources are not represented.
- # The only used of this rule at the moment is the "--dump-test"
- # feature of the test system.
+
+ # Returns the list of abstract-targets which are used as sources. The extra
+ # properties specified for sources are not represented. The only user for
+ # this rule at the moment is the "--dump-tests" feature of the test system.
     rule sources ( )
     {
         if ! $(self.source-targets) {
             for local s in $(self.sources)
             {
- self.source-targets +=
+ self.source-targets +=
                   [ targets.resolve-reference $(s) : $(self.project) ] ;
- }
- }
+ }
+ }
         return $(self.source-targets) ;
     }
-
+
     rule requirements ( )
     {
         return $(self.requirements) ;
     }
-
+
     rule default-build ( )
     {
         return $(self.default-build) ;
     }
-
- # Returns the alternative condition for this alternative, if
- # the condition is satisfied by 'property-set'.
+
+ # Returns the alternative condition for this alternative, if the condition
+ # is satisfied by 'property-set'.
     rule match ( property-set debug ? )
- {
- # The condition is composed of all base non-conditional properties.
- # It's not clear if we should expand 'self.requirements' or not.
- # For one thing, it would be nice to be able to put
- # <toolset>msvc-6.0
+ {
+ # The condition is composed of all base non-conditional properties. It's
+ # not clear if we should expand 'self.requirements' or not. For one
+ # thing, it would be nice to be able to put
+ # <toolset>msvc-6.0
         # in requirements.
- # On the other hand, if we have <variant>release in condition it
- # does not make sense to require <optimization>full to be in
- # build request just to select this variant.
+ # On the other hand, if we have <variant>release in condition it does
+ # not make sense to require <optimization>full to be in build request
+ # just to select this variant.
         local bcondition = [ $(self.requirements).base ] ;
         local ccondition = [ $(self.requirements).conditional ] ;
         local condition = [ set.difference $(bcondition) : $(ccondition) ] ;
         if $(debug)
         {
             ECHO " next alternative: required properties:" $(condition:E=(empty)) ;
- }
-
- if $(condition) in [ $(property-set).raw ]
+ }
+
+ if $(condition) in [ $(property-set).raw ]
         {
             if $(debug)
             {
                 ECHO " matched" ;
- }
- return $(condition) ;
+ }
+ return $(condition) ;
         }
         else
         {
             if $(debug)
             {
                 ECHO " not matched" ;
- }
+ }
             return no-match ;
- }
+ }
     }
-
- # Takes a target reference, which might be either target id
- # or a dependency property, and generates that target using
- # 'property-set' as build request.
+
+ # Takes a target reference, which might be either target id or a dependency
+ # property, and generates that target using 'property-set' as build request.
     #
- # The results are added to to variable called 'result-var'.
- # Usage requirements are added variable called 'usage-requirements-var'.
- rule generate-dependencies ( dependencies * : property-set
+ # The results are added to the variable called 'result-var'. Usage
+ # requirements are added to the variable called 'usage-requirements-var'.
+ rule generate-dependencies ( dependencies * : property-set
         : result-var usage-requirements-var )
     {
         for local dependency in $(dependencies)
- {
+ {
             local grist = $(dependency:G) ;
             local id = $(dependency:G=) ;
-
- local result =
- [ targets.generate-from-reference $(id) : $(self.project)
+
+ local result =
+ [ targets.generate-from-reference $(id) : $(self.project)
                 : $(property-set) ] ;
-
+
             $(result-var) += $(result[2-]:G=$(grist)) ;
             $(usage-requirements-var) += [ $(result[1]).raw ] ;
- }
+ }
     }
-
-
- # Determines final build properties, generates sources,
- # and calls 'construct'. This method should not be
- # overridden.
+
+ # Determines final build properties, generates sources, and calls
+ # 'construct'. This method should not be overridden.
     rule generate ( property-set )
     {
- if [ modules.peek : .debug-building ]
+ if [ modules.peek : .debug-building ]
         {
             ECHO ;
             local fn = [ full-name ] ;
             ECHO [ targets.indent ] "Building target '$(fn)'" ;
             targets.increase-indent ;
- ECHO [ targets.indent ] "Build request: " [ $(property-set).raw ] ;
+ ECHO [ targets.indent ] "Build request: " [ $(property-set).raw ] ;
             local cf = [ build-system.command-line-free-features ] ;
- ECHO [ targets.indent ] "Command line free features: "
- [ $(cf).raw ] ;
- ECHO [ targets.indent ] "Target requirements: " [ $(self.requirements).raw ] ;
+ ECHO [ targets.indent ] "Command line free features: " [ $(cf).raw ] ;
+ ECHO [ targets.indent ] "Target requirements: " [ $(self.requirements).raw ] ;
         }
-
- if ! $(self.generated.$(property-set))
+
+ if ! $(self.generated.$(property-set))
         {
- # Apply free features form the command line. If user
- # said
+ # Apply free features form the command line. If user said
             # define=FOO
- # he most likely want this define to be set for all compiles.
- property-set = [ $(property-set).refine
- [ build-system.command-line-free-features ] ] ;
- local rproperties = [ targets.common-properties $(property-set)
- $(self.requirements) ] ;
-
- if [ modules.peek : .debug-building ]
+ # he most likely wants this define to be set for all compiles.
+ property-set = [ $(property-set).refine
+ [ build-system.command-line-free-features ] ] ;
+ local rproperties = [ targets.common-properties $(property-set)
+ $(self.requirements) ] ;
+
+ if [ modules.peek : .debug-building ]
             {
                 ECHO ;
                 ECHO [ targets.indent ] "Common properties:" [ $(rproperties).raw ] ;
             }
-
+
             if $(rproperties[1]) != "@error" && [ $(rproperties).get <build> ] != no
             {
                 local source-targets ;
                 local properties = [ $(rproperties).non-dependency ] ;
                 local usage-requirements ;
-
+
                 generate-dependencies [ $(rproperties).dependency ]
- : $(rproperties)
- : properties usage-requirements ;
-
+ : $(rproperties)
+ : properties usage-requirements ;
+
                 generate-dependencies $(self.sources) : $(rproperties)
- : source-targets usage-requirements ;
-
- if [ modules.peek : .debug-building ]
+ : source-targets usage-requirements ;
+
+ if [ modules.peek : .debug-building ]
                 {
                     ECHO ;
- ECHO [ targets.indent ]
- "Usage requirements for $(self.name) are " $(usage-requirements) ;
+ ECHO [ targets.indent ]
+ "Usage requirements for $(self.name) are " $(usage-requirements) ;
                 }
 
- rproperties = [ property-set.create $(properties)
- $(usage-requirements) ] ;
+ rproperties = [ property-set.create $(properties)
+ $(usage-requirements) ] ;
                 usage-requirements = [ property-set.create $(usage-requirements) ] ;
-
- if [ modules.peek : .debug-building ]
+
+ if [ modules.peek : .debug-building ]
                 {
- ECHO [ targets.indent ]
- "Build properties: " [ $(rproperties).raw ] ;
+ ECHO [ targets.indent ]
+ "Build properties: " [ $(rproperties).raw ] ;
                 }
-
- local extra = [ $(rproperties).get <source> ] ;
+
+ local extra = [ $(rproperties).get <source> ] ;
                 source-targets += $(extra:G=) ;
- # We might get duplicate sources, for example if
- # we link to two library which have the same <library> in
- # usage requirements.
+ # We might get duplicate sources, for example if we link to two
+ # libraries having the same <library> usage requirement.
                 source-targets = [ sequence.unique $(source-targets) ] ;
-
- local result =
- [ construct $(self.name) :
+
+ local result =
+ [ construct $(self.name) :
                     $(source-targets) : $(rproperties) ] ;
-
+
                 if $(result)
                 {
                     local gur = $(result[1]) ;
                     result = $(result[2-]) ;
 
- local s = [ create-subvariant
- $(result) :
- [ virtual-target.recent-targets ]
- : $(property-set) : $(source-targets)
- : $(rproperties) : $(usage-requirements) ] ;
+ local s = [ create-subvariant $(result)
+ : [ virtual-target.recent-targets ]
+ : $(property-set) : $(source-targets)
+ : $(rproperties) : $(usage-requirements) ] ;
                     virtual-target.clear-recent-targets ;
 
                     local ur = [ compute-usage-requirements $(s) ] ;
                     ur = [ $(ur).add $(gur) ] ;
                     $(s).set-usage-requirements $(ur) ;
- if [ modules.peek : .debug-building ]
+ if [ modules.peek : .debug-building ]
                     {
                         ECHO [ targets.indent ]
                           "Usage requirements from $(self.name) are "
                             [ $(ur).raw ] ;
                     }
-
+
                     self.generated.$(property-set) = $(ur) $(result) ;
                 }
- }
+ }
             else
             {
- if $(rproperties[1]) = "@error"
+ if $(rproperties[1]) = "@error"
                 {
- ECHO [ targets.indent ]
- "Skipping build of: " [ full-name ] " cannot compute common properties" ;
+ ECHO [ targets.indent ]
+ "Skipping build of: " [ full-name ] " cannot compute common properties" ;
                 }
                 else if [ $(rproperties).get <build> ] = no
                 {
- ECHO [ targets.indent ]
- "Skipping build of: " [ full-name ] " <build>no in common properties" ;
+ ECHO [ targets.indent ]
+ "Skipping build of: " [ full-name ] " <build>no in common properties" ;
                 }
                 else
                 {
                     ECHO [ targets.indent ] "Skipping build of: " [ full-name ] " unknown reason" ;
                 }
-
- # We're here either because there's error computing
- # properties, or there's <build>no in properties.
- # In the latter case we don't want any diagnostic.
- # In the former case, we need diagnostics. FIXME.
+
+ # We're here either because there's been an error computing
+ # properties, or there's <build>no in properties. In the latter
+ # case we don't want any diagnostic. In the former case, we need
+ # diagnostics. FIXME
                 self.generated.$(property-set) = $(rproperties) ;
- }
- }
+ }
+ }
         else
         {
- if [ modules.peek : .debug-building ]
+ if [ modules.peek : .debug-building ]
             {
                 ECHO [ targets.indent ] "Already built" ;
- }
+ }
         }
 
         targets.decrease-indent ;
         return $(self.generated.$(property-set)) ;
     }
 
- # Given the set of generated targets, and refined build
- # properties, determines and sets appripriate usage requirements
- # on those targets.
+ # Given the set of generated targets, and refined build properties,
+ # determines and sets appripriate usage requirements on those targets.
     rule compute-usage-requirements ( subvariant )
     {
         local rproperties = [ $(subvariant).build-properties ] ;
- xusage-requirements = [ targets.evaluate-requirements
- $(self.usage-requirements)
- : $(rproperties)
- : added ] ;
-
- # We generate all dependency properties and add them,
- # as well as their usage requirements, to result.
+ xusage-requirements = [ targets.evaluate-requirements
+ $(self.usage-requirements) : $(rproperties) : added ] ;
+
+ # We generate all dependency properties and add them, as well as their
+ # usage requirements, to the result.
         local extra ;
         generate-dependencies [ $(xusage-requirements).dependency ] :
             $(rproperties) : extra extra ;
-
+
         local result = [ property-set.create
             [ $(xusage-requirements).non-dependency ] $(extra) ] ;
-
- # Propagate usage requirements we've got from sources, except
- # for the <pch-header> and <pch-file> features.
+
+ # Propagate usage requirements we've got from sources, except for the
+ # <pch-header> and <pch-file> features.
         #
- # That feature specifies which pch file to use, and should apply
- # only to direct dependents. Consider:
+ # That feature specifies which pch file to use, and should apply only to
+ # direct dependents. Consider:
         #
         # pch pch1 : ...
         # lib lib1 : ..... pch1 ;
- # pch pch2 :
+ # pch pch2 :
         # lib lib2 : pch2 lib1 ;
         #
         # Here, lib2 should not get <pch-header> property from pch1.
         #
- # Essentially, when those two features are in usage requirements,
- # they are propagated only to direct dependents. We might need
- # a more general mechanism, but for now, only those two
- # features are special.
+ # Essentially, when those two features are in usage requirements, they
+ # are propagated only to direct dependents. We might need a more general
+ # mechanism, but for now, only those two features are special.
         local raw = [ $(subvariant).sources-usage-requirements ] ;
         raw = [ $(raw).raw ] ;
- raw = [ property.change $(raw) : <pch-header> ] ;
- raw = [ property.change $(raw) : <pch-file> ] ;
- result = [ $(result).add [ property-set.create $(raw) ] ] ;
-
- return $(result) ;
+ raw = [ property.change $(raw) : <pch-header> ] ;
+ raw = [ property.change $(raw) : <pch-file> ] ;
+ return [ $(result).add [ property-set.create $(raw) ] ] ;
     }
-
- # Creates a new subvariant-dg instances for 'targets'
- # - 'root-targets' the virtual targets will be returned to dependents
- # - 'all-targets' all virtual
- # targets created while building this main target
- # - 'build-request' is property-set instance with requested build properties
- local rule create-subvariant ( root-targets *
- : all-targets * : build-request : sources * :
- rproperties
+
+ # Creates new subvariant instances for 'targets'.
+ # 'root-targets' - virtual targets to be returned to dependants
+ # 'all-targets' - virtual targets created while building this main target
+ # 'build-request' - property-set instance with requested build properties
+ local rule create-subvariant ( root-targets *
+ : all-targets * : build-request : sources * : rproperties
         : usage-requirements )
     {
- for local e in $(root-targets)
+ for local e in $(root-targets)
         {
             $(e).root true ;
- }
-
- # Process all vtargets that will be created if this main target
+ }
+
+ # Process all virtual targets that will be created if this main target
         # is created.
         local s = [ new subvariant $(__name__) : $(build-request) : $(sources)
- : $(rproperties) : $(usage-requirements) : $(all-targets) ] ;
- for local v in $(all-targets)
+ : $(rproperties) : $(usage-requirements) : $(all-targets) ] ;
+ for local v in $(all-targets)
         {
             if ! [ $(v).creating-subvariant ]
- {
- $(v).creating-subvariant $(s) ;
- }
- }
+ {
+ $(v).creating-subvariant $(s) ;
+ }
+ }
         return $(s) ;
     }
-
- # Constructs the virtual targets for this abstract targets and
- # the dependecy graph. Returns the list of virtual targets.
- # Should be overrided in derived classes.
+
+ # Constructs virtual targets for this abstract target and the dependency
+ # graph. Returns the list of virtual targets. Should be overriden in derived
+ # classes.
     rule construct ( name : source-targets * : properties * )
     {
         errors.error "method should be defined in derived classes" ;
     }
 }
 
+
 class typed-target : basic-target
 {
- import generators ;
-
- rule __init__ ( name : project : type
- : sources * : requirements * : default-build * : usage-requirements * )
- {
- basic-target.__init__ $(name) : $(project)
- : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ;
-
+ import generators ;
+
+ rule __init__ ( name : project : type : sources * : requirements *
+ : default-build * : usage-requirements * )
+ {
+ basic-target.__init__ $(name) : $(project) : $(sources)
+ : $(requirements) : $(default-build) : $(usage-requirements) ;
+
         self.type = $(type) ;
     }
-
+
     rule type ( )
     {
         return $(self.type) ;
     }
-
+
     rule construct ( name : source-targets * : property-set )
     {
- local r = [ generators.construct $(self.project) $(name:S=) : $(self.type)
- : [ property-set.create [ $(property-set).raw ] # [ feature.expand
- <main-target-type>$(self.type) ]
- # ]
+ local r = [ generators.construct $(self.project) $(name:S=) : $(self.type)
+ : [ property-set.create [ $(property-set).raw ]
+ <main-target-type>$(self.type) ]
             : $(source-targets) ] ;
         if ! $(r)
- {
+ {
             ECHO "warn: Unable to construct" [ full-name ] ;
-
+
             # Are there any top-level generators for this type/property set.
- if ! [ generators.find-viable-generators
- $(self.type) : $(property-set) ]
+ if ! [ generators.find-viable-generators $(self.type)
+ : $(property-set) ]
             {
                 ECHO "error: no generators were found for type '$(self.type)'" ;
                 ECHO "error: and the requested properties" ;
                 ECHO "error: make sure you've configured the needed tools" ;
                 ECHO "See http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html" ;
-
                 ECHO "To debug this problem, try the --debug-generators option." ;
                 EXIT ;
             }
         }
-
         return $(r) ;
- }
+ }
 }
 
-# Return the list of sources to use, if main target rule is invoked
-# with 'sources'. If there are any objects in 'sources', they are treated
-# as main target instances, and the name of such targets are adjusted to
-# be '<name_of_this_target>__<name_of_source_target>'. Such renaming
-# is disabled is non-empty value is passed for 'no-renaming' parameter.
-#
+
+# Return the list of sources to use, if main target rule is invoked with
+# 'sources'. If there are any objects in 'sources', they are treated as main
+# target instances, and the name of such targets are adjusted to be
+# '<name_of_this_target>__<name_of_source_target>'. Such renaming is disabled if
+# a non-empty value is passed as the 'no-renaming' parameter.
+#
 rule main-target-sources ( sources * : main-target-name : no-renaming ? )
 {
     local result ;
@@ -1435,78 +1400,76 @@
     {
         if [ class.is-instance $(t) ]
         {
- local name = [ $(t).name ] ;
+ local name = [ $(t).name ] ;
             if ! $(no-renaming)
- {
+ {
                 name = $(main-target-name)__$(name) ;
                 $(t).rename $(name) ;
- }
+ }
             # Inline targets are not built by default.
             local p = [ $(t).project ] ;
- $(p).mark-target-as-explicit $(name) ;
+ $(p).mark-target-as-explicit $(name) ;
             result += $(name) ;
         }
         else
         {
             result += $(t) ;
- }
- }
+ }
+ }
     return $(result) ;
 }
 
 
-# Returns the requirement to use when declaring a main target,
-# which are obtained by
-# - translating all specified property paths, and
-# - refining project requirements with the one specified for the target
-rule main-target-requirements (
- specification * # Properties explicitly specified for a main target
- : project # Project where the main target is to be declared
- )
+# Returns the requirements to use when declaring a main target, obtained by
+# translating all specified property paths and refining project requirements
+# with the ones specified for the target.
+rule main-target-requirements (
+ specification * # Properties explicitly specified for the main target.
+ : project # Project where the main target is to be declared.
+)
 {
     specification += [ toolset.requirements ] ;
-
- local requirements = [ property-set.refine-from-user-input
+
+ local requirements = [ property-set.refine-from-user-input
         [ $(project).get requirements ] : $(specification) :
         [ $(project).project-module ] : [ $(project).get location ] ] ;
-
- if $(requirements[1]) = "@error"
+ if $(requirements[1]) = "@error"
     {
         errors.error "Conflicting requirements for target:" $(requirements) ;
     }
     return $(requirements) ;
 }
 
-# Returns the use requirement to use when declaraing a main target,
-# which are obtained by
-# - translating all specified property paths, and
-# - adding project's usage requirements
+
+# Returns the usage requirements to use when declaring a main target, which are
+# obtained by translating all specified property paths and adding project's
+# usage requirements.
 rule main-target-usage-requirements (
- specification * # Use-properties explicitly specified for a main target
- : project # Project where the main target is to be declared
- )
+ specification * # Use-properties explicitly specified for a main target.
+ : project # Project where the main target is to be declared.
+)
 {
- local loc = [ $(project).get location ] ;
     local project-usage-requirements = [ $(project).get usage-requirements ] ;
-
- # We don't use 'refine-from-user-input' because I'm not sure if:
- # - removing of parent's usage requirements makes sense
+
+ # We don't use 'refine-from-user-input' because:
+ # - I'm not sure if removing of parent's usage requirements makes sense
     # - refining of usage requirements is not needed, since usage requirements
     # are always free.
- local usage-requirements = [ property-set.create-from-user-input
- $(specification)
- : [ $(project).project-module ] [ $(project).get location ] ] ;
-
+ local usage-requirements = [ property-set.create-from-user-input
+ $(specification)
+ : [ $(project).project-module ] [ $(project).get location ] ] ;
+
     return [ $(project-usage-requirements).add $(usage-requirements) ] ;
 }
 
-# Return the default build value to use when declaring a main target,
-# which is obtained by using specified value if not empty and parent's
-# default build attribute otherwise.
+
+# Return the default build value to use when declaring a main target, which is
+# obtained by using the specified value if not empty and parent's default build
+# attribute otherwise.
 rule main-target-default-build (
- specification * # Default build explicitly specified for a main target
- : project # Project where the main target is to be declared
- )
+ specification * # Default build explicitly specified for a main target.
+ : project # Project where the main target is to be declared.
+)
 {
     local result ;
     if $(specification)
@@ -1516,35 +1479,32 @@
     else
     {
         result = [ $(project).get default-build ] ;
- }
+ }
     return [ property-set.create-with-validation $(result) ] ;
-}
+}
+
 
-# Registers the specified target as a main target alternatives.
-# Returns 'target'.
-rule main-target-alternative ( target )
-{
+# Registers the specified target as a main target alternative and returns it.
+rule main-target-alternative ( target )
+{
     local ptarget = [ $(target).project ] ;
-
     $(ptarget).add-alternative $(target) ;
     return $(target) ;
 }
 
-# Creates a typed-target with the specified properties.
-# The 'name', 'sources', 'requirements', 'default-build' and
-# 'usage-requirements' are assumed to be in the form specified
-# by the user in Jamfile corresponding to 'project'.
-rule create-typed-target ( type : project :
- name : sources * : requirements * : default-build *
- : usage-requirements * )
+
+# Creates a typed-target with the specified properties. The 'name', 'sources',
+# 'requirements', 'default-build' and 'usage-requirements' are assumed to be in
+# the form specified by the user in Jamfile corresponding to 'project'.
+rule create-typed-target ( type : project : name : sources * : requirements *
+ : default-build * : usage-requirements * )
 {
     return [
- targets.main-target-alternative
- [ new typed-target $(name) : $(project) : $(type)
- : [ targets.main-target-sources $(sources) : $(name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
- : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
- ] ] ;
-
+ targets.main-target-alternative
+ [ new typed-target $(name) : $(project) : $(type)
+ : [ targets.main-target-sources $(sources) : $(name) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
+ ] ] ;
 }

Modified: branches/proto/v3/tools/build/v2/build/toolset.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/toolset.jam (original)
+++ branches/proto/v3/tools/build/v2/build/toolset.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,46 +1,47 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2005 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2005 Rene Rivera
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Support for toolset definition.
 
+import errors ;
 import feature ;
+import generators ;
 import numbers ;
-import errors : error ;
-import property ;
 import path ;
-import generators ;
-import set : difference ;
+import property ;
 import regex ;
 import sequence ;
+import set ;
+
 
 .flag-no = 1 ;
 
 .ignore-requirements = ;
 
-# This is used only for testing, to make sure
-# we don't get random extra elements in paths.
+# This is used only for testing, to make sure we don't get random extra elements
+# in paths.
 if --ignore-toolset-requirements in [ modules.peek : ARGV ]
 {
     .ignore-requirements = 1 ;
 }
 
-# Initializes an additional toolset-like module.
-# First load 'toolset-module' and then calls its 'init'
-# rule with trailing arguments
+
+# Initializes an additional toolset-like module. First load the 'toolset-module'
+# and then calls its 'init' rule with trailing arguments.
+#
 rule using ( toolset-module : * )
 {
     import $(toolset-module) ;
     $(toolset-module).init $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
 }
 
-# Expands subfeatures in each property sets.
-# e.g
-# <toolset>gcc-3.2
-# will be converted to
-# <toolset>gcc/<toolset-version>3.2
+
+# Expands subfeatures in each property sets, e.g. '<toolset>gcc-3.2' will be
+# converted to '<toolset>gcc/<toolset-version>3.2'.
+#
 local rule normalize-condition ( property-sets * )
 {
     local result ;
@@ -54,13 +55,11 @@
 }
 
 
-# Specifies if the 'flags' rule should do checking that
-# the invoking module is the same as module we're setting
-# flag for.
-# 'v' can be either 'checked' or 'unchecked'.
-# Subsequent call to 'pop-checking-for-flags-module'
-# will restore the behaviour that was in effect before
-# calling this rule.
+# Specifies if the 'flags' rule should check that the invoking module is the
+# same as the module we're setting the flag for. 'v' can be either 'checked' or
+# 'unchecked'. Subsequent call to 'pop-checking-for-flags-module' will restore
+# the setting that was in effect before calling this rule.
+#
 rule push-checking-for-flags-module ( v )
 {
     .flags-module-checking = $(v) $(.flags-module-checking) ;
@@ -71,123 +70,120 @@
     .flags-module-checking = $(.flags-module-checking[2-]) ;
 }
 
+
 # Specifies the flags (variables) that must be set on targets under certain
 # conditions, described by arguments.
-rule flags ( rule-or-module # If contains dot, should be a rule name.
- # The flags will be applied when that rule is
- # used to set up build actions.
- #
- # If does not contain dot, should be a module name.
- # The flags will be applied for all rules in that
- # module.
- # If module for rule is different from the calling
- # module, an error is issued.
-
- variable-name # Variable that should be set on target
- condition * : # A condition when this flag should be applied.
- # Should be set of property sets. If one of
- # those property sets is contained in build
- # properties, the flag will be used.
- # Implied values are not allowed:
- # "<toolset>gcc" should be used, not just
- # "gcc". Subfeatures, like in "<toolset>gcc-3.2"
- # are allowed. If left empty, the flag will
- # always used.
- #
- # Propery sets may use value-less properties
- # ('<a>' vs. '<a>value') to match absent
- # properties. This allows to separately match
- #
- # <architecture>/<address-model>64
- # <architecture>ia64/<address-model>
- #
- # Where both features are optional. Without this
- # syntax we'd be forced to define "default" value.
-
-
- values * : # The value to add to variable. If <feature>
- # is specified, then the value of 'feature'
- # will be added.
- unchecked ? # If value 'unchecked' is passed, will not test
- # that flags are set for the calling module.
- : hack-hack ? # For
- # flags rule OPTIONS <cxx-abi> : -model ansi
- # Treak <cxx-abi> as condition
- # FIXME: ugly hack.
- )
+#
+rule flags (
+ rule-or-module # If contains a dot, should be a rule name. The flags will
+ # be applied when that rule is used to set up build
+ # actions.
+ #
+ # If does not contain dot, should be a module name. The
+ # flag will be applied for all rules in that module. If
+ # module for rule is different from the calling module, an
+ # error is issued.
+
+ variable-name # Variable that should be set on target.
+ condition * : # A condition when this flag should be applied. Should be a
+ # set of property sets. If one of those property sets is
+ # contained in the build properties, the flag will be used.
+ # Implied values are not allowed: "<toolset>gcc" should be
+ # used, not just "gcc". Subfeatures, like in
+ # "<toolset>gcc-3.2" are allowed. If left empty, the flag
+ # will be used unconditionally.
+ #
+ # Propery sets may use value-less properties ('<a>' vs.
+ # '<a>value') to match absent properties. This allows to
+ # separately match:
+ #
+ # <architecture>/<address-model>64
+ # <architecture>ia64/<address-model>
+ #
+ # Where both features are optional. Without this syntax
+ # we'd be forced to define "default" values.
+
+ values * : # The value to add to variable. If <feature> is specified,
+ # then the value of 'feature' will be added.
+ unchecked ? # If value 'unchecked' is passed, will not test that flags
+ # are set for the calling module.
+ : hack-hack ? # For
+ # flags rule OPTIONS <cxx-abi> : -model ansi
+ # Treat <cxx-abi> as condition
+ # FIXME: ugly hack.
+)
 {
     local caller = [ CALLER_MODULE ] ;
     if ! [ MATCH ".*([.]).*" : $(rule-or-module) ]
        && [ MATCH "(Jamfile<.*)" : $(caller) ]
     {
- # Unqualified rule name, used inside Jamfile.
- # (most likely used with 'make' or 'notfile' rules.
- # This prevents setting flags on entire Jamfile module
- # (this will be considered as rule), but who cares?
+ # Unqualified rule name, used inside Jamfile. Most likely used with
+ # 'make' or 'notfile' rules. This prevents setting flags on the entire
+ # Jamfile module (this will be considered as rule), but who cares?
         # Probably, 'flags' rule should be split into 'flags' and
         # 'flags-on-module'.
         rule-or-module = $(caller).$(rule-or-module) ;
     }
     else
- {
+ {
         local module_ = [ MATCH "([^.]*).*" : $(rule-or-module) ] ;
- if $(unchecked) != unchecked
+ if $(unchecked) != unchecked
             && $(.flags-module-checking[1]) != unchecked
             && $(module_) != $(caller)
         {
             errors.error "Module $(caller) attempted to set flags for module $(module_)" ;
         }
     }
-
-
+
+
     if $(condition) && ! $(condition:G=) && ! $(hack-hack)
     {
- # We have condition in the form '<feature>', that is, without
- # value. That's a previous syntax:
- #
+ # We have condition in the form '<feature>', that is, without value.
+ # That's a previous syntax:
         # flags gcc.link RPATH <dll-path> ;
         # for compatibility, convert it to
- # flags gcc.link RPATH : <dll-path> ;
+ # flags gcc.link RPATH : <dll-path> ;
         values = $(condition) ;
         condition = ;
     }
-
+
     if $(condition)
     {
         property.validate-property-sets $(condition) ;
         condition = [ normalize-condition $(condition) ] ;
     }
-
+
     add-flag $(rule-or-module) : $(variable-name)
       : $(condition) : $(values) ;
 }
 
-# Adds new flag setting with the specified values
-# Does no checking
-local rule add-flag ( rule-or-module :
- variable-name : condition * : values * )
+
+# Adds a new flag setting with the specified values. Does no checking.
+#
+local rule add-flag ( rule-or-module : variable-name : condition * : values * )
 {
     .$(rule-or-module).flags += $(.flag-no) ;
 
     # Store all flags for a module
- local module_ = [ MATCH "([^.]*).*" : $(rule-or-module) ] ;
+ local module_ = [ MATCH "([^.]*).*" : $(rule-or-module) ] ;
     .module-flags.$(module_) += $(.flag-no) ;
     # Store flag-no -> rule-or-module mapping
     .rule-or-module.$(.flag-no) = $(rule-or-module) ;
 
     .$(rule-or-module).variable.$(.flag-no) += $(variable-name) ;
     .$(rule-or-module).values.$(.flag-no) += $(values) ;
- .$(rule-or-module).condition.$(.flag-no) += $(condition) ;
-
+ .$(rule-or-module).condition.$(.flag-no) += $(condition) ;
+
     .flag-no = [ numbers.increment $(.flag-no) ] ;
 }
-
+
 
 # Returns the first element of 'property-sets' which is a subset of
 # 'properties', or an empty list if no such element exists.
+#
 rule find-property-subset ( property-sets * : properties * )
 {
- # cut property values off
+ # Cut property values off.
     local prop-keys = $(properties:G) ;
 
     local result ;
@@ -195,20 +191,20 @@
     {
         if ! $(result)
         {
- # Handle value-less properties like '<architecture>' (compare with
+ # Handle value-less properties like '<architecture>' (compare with
             # '<architecture>x86').
 
             local set = [ feature.split $(s) ] ;
 
             # Find the set of features that
- # - have no property specified in required property set
- # - are omitted in build property set
+ # - have no property specified in required property set
+ # - are omitted in the build property set.
             local default-props ;
             for local i in $(set)
             {
- # If $(i) is a value-less property it should match default
- # value of an optional property. See the first line in the
- # example below:
+ # If $(i) is a value-less property it should match default value
+ # of an optional property. See the first line in the example
+ # below:
                 #
                 # property set properties result
                 # <a> <b>foo <b>foo match
@@ -230,6 +226,7 @@
     return $(result) ;
 }
 
+
 rule handle-flag-value ( value * : properties * )
 {
     local result ;
@@ -241,98 +238,96 @@
             local att = [ feature.attributes $(p:G) ] ;
             if dependency in $(att)
             {
- # the value of a dependency feature is a target
- # and must be actualized
+ # The value of a dependency feature is a target and needs to be
+ # actualized.
                 result += [ $(p:G=).actualize ] ;
- }
+ }
             else if path in $(att) || free in $(att)
             {
                 local values ;
- # Treat features with && in the value
- # specially -- each &&-separated element is considered
- # separate value. This is needed to handle searched
- # libraries, which must be in specific order.
+ # Treat features with && in the value specially -- each
+ # &&-separated element is considered a separate value. This is
+ # needed to handle searched libraries, which must be in a
+ # specific order.
                 if ! [ MATCH (&&) : $(p:G=) ]
                 {
                     values = $(p:G=) ;
                 }
- else
+ else
                 {
                     values = [ regex.split $(p:G=) "&&" ] ;
                 }
                 if path in $(att)
- {
- result += [ sequence.transform path.native : $(values) ] ;
+ {
+ result += [ sequence.transform path.native : $(values) ] ;
                 }
                 else
                 {
                     result += $(values) ;
- }
- }
- else
+ }
+ }
+ else
             {
                 result += $(p:G=) ;
             }
- }
+ }
     }
     else
     {
         result += $(value) ;
- }
+ }
     return $(result) ;
 }
 
-# Given a rule name and a property set, returns a list of interleaved
-# variables names and values which must be set on targets for that
-# rule/property-set combination.
+
+# Given a rule name and a property set, returns a list of interleaved variables
+# names and values which must be set on targets for that rule/property-set
+# combination.
+#
 rule set-target-variables-aux ( rule-or-module : property-set )
 {
     local result ;
     properties = [ $(property-set).raw ] ;
- for local f in $(.$(rule-or-module).flags)
+ for local f in $(.$(rule-or-module).flags)
     {
         local variable = $(.$(rule-or-module).variable.$(f)) ;
         local condition = $(.$(rule-or-module).condition.$(f)) ;
         local values = $(.$(rule-or-module).values.$(f)) ;
-
-
+
         if ! $(condition) ||
- [ find-property-subset $(condition) : $(properties) ]
+ [ find-property-subset $(condition) : $(properties) ]
         {
             local processed ;
             for local v in $(values)
- {
- # The value might be <feature-name> so needs special
- # treatment.
- processed += [
- handle-flag-value $(v) : $(properties) ] ;
+ {
+ # The value might be <feature-name> so needs special treatment.
+ processed += [ handle-flag-value $(v) : $(properties) ] ;
             }
             for local r in $(processed)
- {
+ {
                 result += $(variable) $(r) ;
- }
+ }
         }
     }
-
- # strip away last dot separated part and recurse.
+
+ # Strip away last dot separated part and recurse.
     local next = [ MATCH ^(.+)\\.([^\\.])* : $(rule-or-module) ] ;
     if $(next)
     {
- result += [
- set-target-variables-aux $(next[1]) : $(property-set) ] ;
- }
- return $(result) ;
+ result += [ set-target-variables-aux $(next[1]) : $(property-set) ] ;
+ }
+ return $(result) ;
 }
 
 
 rule set-target-variables ( rule-or-module targets + : property-set )
-{
+{
     properties = [ $(property-set).raw ] ;
     local key = $(rule-or-module).$(property-set) ;
     local settings = $(.stv.$(key)) ;
     if ! $(settings)
     {
- settings = [
+ settings = [
           set-target-variables-aux $(rule-or-module) : $(property-set) ] ;
 
         if ! $(settings)
@@ -341,7 +336,7 @@
         }
         .stv.$(key) = $(settings) ;
     }
-
+
     if $(settings) != none
     {
         local var-name = ;
@@ -360,23 +355,25 @@
     }
 }
 
-# Make toolset 'toolset', defined in a module of the same name,
-# inherit from 'base'
-# 1. The 'init' rule from 'base' is imported into 'toolset' with full
-# name. Another 'init' is called, which forwards to the base one.
-# 2. All generators from 'base' are cloned. The ids are adjusted and
-# <toolset> property in requires is adjusted too
-# 3. All flags are inherited
+
+# Make toolset 'toolset', defined in a module of the same name, inherit from
+# 'base'.
+# 1. The 'init' rule from 'base' is imported into 'toolset' with full name.
+# Another 'init' is called, which forwards to the base one.
+# 2. All generators from 'base' are cloned. The ids are adjusted and <toolset>
+# property in requires is adjusted too.
+# 3. All flags are inherited.
 # 4. All rules are imported.
+#
 rule inherit ( toolset : base )
 {
     import $(base) ;
-
     inherit-generators $(toolset) : $(base) ;
- inherit-flags $(toolset) : $(base) ;
- inherit-rules $(toolset) : $(base) ;
+ inherit-flags $(toolset) : $(base) ;
+ inherit-rules $(toolset) : $(base) ;
 }
 
+
 rule inherit-generators ( toolset properties * : base : generators-to-ignore * )
 {
     properties ?= <toolset>$(toolset) ;
@@ -384,15 +381,15 @@
     for local g in $(base-generators)
     {
         local id = [ $(g).id ] ;
-
+
         if ! $(id) in $(generators-to-ignore)
- {
+ {
             # Some generator names have multiple periods in their name, so
- # $(id:B=$(toolset)) doesn't generate the right new-id name.
- # e.g. if id = gcc.compile.c++, $(id:B=darwin) = darwin.c++,
- # which is not what we want. Manually parse the base and suffix
- # (if there's a better way to do this, I'd love to see it.)
- # See also register in module generators.
+ # $(id:B=$(toolset)) doesn't generate the right new-id name. E.g. if
+ # id = gcc.compile.c++, $(id:B=darwin) = darwin.c++, which is not
+ # what we want. Manually parse the base and suffix (if there's a
+ # better way to do this, I'd love to see it). See also register in
+ # module generators.
             local base = $(id) ;
             local suffix = "" ;
             while $(base:S)
@@ -403,27 +400,27 @@
             local new-id = $(toolset)$(suffix) ;
 
             generators.register [ $(g).clone $(new-id) : $(properties) ] ;
- }
- }
+ }
+ }
 }
 
-# Brings all flag definitions from 'base' toolset into
-# other toolset 'toolset'. Flag definitions which
-# condition make use of properties in 'prohibited-properties'
-# are ignored. Don't confuse property and feature, for
-# example <debug-symbols>on and <debug-symbols>off, so blocking
-# one of them does not block the other one.
-#
-# The flag conditions are not altered at all, so if condition
-# includes name, or version of base toolset, it won't ever match
-# the inheriting toolset. When such flag settings must be
-# inherited, define a rule in base toolset module and call it
-# as needed.
+
+# Brings all flag definitions from the 'base' toolset into the 'toolset'
+# toolset. Flag definitions whose conditions make use of properties in
+# 'prohibited-properties' are ignored. Don't confuse property and feature, for
+# example <debug-symbols>on and <debug-symbols>off, so blocking one of them does
+# not block the other one.
+#
+# The flag conditions are not altered at all, so if a condition includes a name,
+# or version of a base toolset, it won't ever match the inheriting toolset. When
+# such flag settings must be inherited, define a rule in base toolset module and
+# call it as needed.
+#
 rule inherit-flags ( toolset : base : prohibited-properties * )
 {
     for local f in $(.module-flags.$(base))
- {
- local rule-or-module = $(.rule-or-module.$(f)) ;
+ {
+ local rule-or-module = $(.rule-or-module.$(f)) ;
         if [ set.difference
                 $(.$(rule-or-module).condition.$(f)) :
                 $(prohibited-properties)
@@ -439,45 +436,47 @@
             {
                 new-rule-or-module = $(toolset) ;
             }
-
+
             add-flag
- $(new-rule-or-module)
- : $(.$(rule-or-module).variable.$(f))
- : $(.$(rule-or-module).condition.$(f))
- : $(.$(rule-or-module).values.$(f))
- ;
+ $(new-rule-or-module)
+ : $(.$(rule-or-module).variable.$(f))
+ : $(.$(rule-or-module).condition.$(f))
+ : $(.$(rule-or-module).values.$(f)) ;
         }
- }
+ }
 }
 
+
 rule inherit-rules ( toolset : base )
 {
- # It appears that "action" creates local rule...
+ # It appears that "action" creates a local rule...
     local base-generators = [ generators.generators-for-toolset $(base) ] ;
     local rules ;
     for local g in $(base-generators)
     {
         local id = [ MATCH "[^.]*\.(.*)" : [ $(g).id ] ] ;
         rules += $(id) ;
- }
+ }
     IMPORT $(base) : $(rules) : $(toolset) : $(rules) ;
     # Import the rules to the global scope
     IMPORT $(toolset) : $(rules) : : $(toolset).$(rules) ;
 }
 
-# Return the list of global 'toolset requirements'.
-# Those requirements will be automatically added to
-# the requirements of any main target.
+
+# Return the list of global 'toolset requirements'. Those requirements will be
+# automatically added to the requirements of any main target.
+#
 rule requirements ( )
 {
     return $(.requirements) ;
 }
 
-# Adds elements to the list of global 'toolset requirements'.
-# The requirements will be automatically added to the requirements
-# for all main targets, as if they were specified literally.
-# For best results, all requirements added should be conditional or
-# indirect conditional.
+
+# Adds elements to the list of global 'toolset requirements'. The requirements
+# will be automatically added to the requirements for all main targets, as if
+# they were specified literally. For best results, all requirements added should
+# be conditional or indirect conditional.
+#
 rule add-requirements ( requirements * )
 {
     if ! $(.ignore-requirements)
@@ -486,6 +485,7 @@
     }
 }
 
+
 local rule __test__ ( )
 {
     import assert ;
@@ -494,8 +494,8 @@
     assert.result : find-property-subset <a>0/<b>0/<c>9/<d>9/<e>5 <a>9 : $(p) ;
 
     local p-set = <a>/<b> <a>0/<b> <a>/<b>1 <a>0/<b>1 ;
- assert.result <a>/<b> : find-property-subset $(p-set) : ;
+ assert.result <a>/<b> : find-property-subset $(p-set) : ;
     assert.result <a>0/<b> : find-property-subset $(p-set) : <a>0 <c>2 ;
     assert.result <a>/<b>1 : find-property-subset $(p-set) : <b>1 <c>2 ;
- assert.result <a>0/<b>1 : find-property-subset $(p-set) : <a>0 <b>1 ;
+ assert.result <a>0/<b>1 : find-property-subset $(p-set) : <a>0 <b>1 ;
 }

Modified: branches/proto/v3/tools/build/v2/build/type.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/type.jam (original)
+++ branches/proto/v3/tools/build/v2/build/type.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,47 +1,45 @@
-# Copyright 2002, 2003 Dave Abrahams
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2002, 2003 Dave Abrahams
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Deals with target type declaration and defines target class which supports
 # typed targets.
 
-import feature ;
-import generators : * ;
 import "class" : new ;
 import errors ;
+import feature ;
+import generators : * ;
+import project ;
 import property ;
 import scanner ;
-import project ;
 
-# This creates a circular dependency
-# project-test1 -> project -> project-root -> builtin -> type -> targets -> project
-# import targets ;
-
-# The feature is optional so that it never implicitly added.
-# It's used only for internal purposes, and in all cases we
-# want to explicitly use it.
+# The follwing import would create a circular dependency:
+# project -> project-root -> builtin -> type -> targets -> project
+# import targets ;
+
+# The feature is optional so it would never get added implicitly. It's used only
+# for internal purposes and in all cases we want to use it explicitly.
 feature.feature target-type : : composite optional ;
 
-# feature.feature base-target-type : : composite optional ;
 feature.feature main-target-type : : optional incidental ;
 feature.feature base-target-type : : composite optional free ;
-# feature.feature main-target-type : : composite optional incidental ;
 
-# Registers a target type, possible derived from a 'base-type'.
-# If 'suffixes' are provided, they given all the suffixes that mean a file is of 'type'.
-# Also, the first element gives the suffix to be used when constructing and object of
-# 'type'.
+
+# Registers a target type, possible derived from a 'base-type'. Providing a list
+# of 'suffixes' here is a shortcut for separately calling the register-suffixes
+# rule with the given suffixes and the set-generated-target-suffix rule with the
+# first given suffix.
 rule register ( type : suffixes * : base-type ? )
 {
- # Type names cannot contain hyphens, because when used as
- # feature-values they will be interpreted as composite features
- # which need to be decomposed.
+ # Type names cannot contain hyphens, because when used as feature-values
+ # they would be interpreted as composite features which need to be
+ # decomposed.
     switch $(type)
     {
         case *-* : errors.error "type name \"$(type)\" contains a hyphen" ;
     }
-
+
     if $(type) in $(.types)
     {
         errors.error "Type $(type) is already registered." ;
@@ -50,73 +48,72 @@
     {
         .types += $(type) ;
         .bases.$(type) = $(base-type) ;
- .derived.$(base-type) += $(type) ;
+ .derived.$(base-type) += $(type) ;
 
- if $(suffixes)-not-empty
- {
- # Generated targets of 'type' will use the first of 'suffixes'
- # (this may be overriden)
- $(.suffixes).insert <target-type>$(type) : $(suffixes[1]) ;
- # Specify mapping from suffixes to type
+ if $(suffixes)-is-not-empty
+ {
+ # Specify mapping from suffixes to type.
             register-suffixes $(suffixes) : $(type) ;
+ # Generated targets of 'type' will use the first of 'suffixes'. This
+ # may be overriden.
+ set-generated-target-suffix $(type) : : $(suffixes[1]) ;
         }
-
- feature.extend target-type : $(type) ;
+
+ feature.extend target-type : $(type) ;
         feature.extend main-target-type : $(type) ;
-
- feature.compose <target-type>$(type) : $(base-type:G=<base-target-type>) ;
         feature.extend base-target-type : $(type) ;
-# feature.compose <target-type>$(type) : <base-target-type>$(type) ;
+
+ feature.compose <target-type>$(type) : $(base-type:G=<base-target-type>) ;
         feature.compose <base-target-type>$(type) : <base-target-type>$(base-type) ;
 
- # We used to declare main target rule only when 'main' parameter
- # is specified. However, it's hard to decide that a type *never*
- # will need a main target rule and so from time to time we needed
- # to make yet another type 'main'. So, now main target rule is defined
- # for each type.
- main-rule-name = [ type-to-rule-name $(type) ] ;
- .main-target-type.$(main-rule-name) = $(type) ;
-
+ # We used to declare the main target rule only when a 'main' parameter
+ # was specified. However, it's hard to decide that a type will *never*
+ # need a main target rule and so from time to time we needed to make yet
+ # another type 'main'. So now a main target rule is defined for each
+ # type.
+ main-rule-name = [ type-to-rule-name $(type) ] ;
+ .main-target-type.$(main-rule-name) = $(type) ;
+
         IMPORT $(__name__) : main-target-rule : : $(main-rule-name) ;
     }
 }
 
-# Given type, returns name of main target rule which creates
-# targets of that type.
+
+# Given a type, returns the name of the main target rule which creates targets
+# of that type.
 rule type-to-rule-name ( type )
 {
- # Lowercase everything. Convert underscores to dashes.ame.
+ # Lowercase everything. Convert underscores to dashes.
     import regex ;
     local n = [ regex.split $(type:L) "_" ] ;
- n = $(n:J=-) ;
- return $(n) ;
+ return $(n:J=-) ;
 }
 
-# Returns a type, given the name of a main rule.
-rule type-from-rule-name ( main-target-name )
+
+# Given a main target rule name, returns the type for which it creates targets.
+rule type-from-rule-name ( rule-name )
 {
- return $(.main-target-type.$(main-target-name)) ;
+ return $(.main-target-type.$(rule-name)) ;
 }
 
 
-
-# Specifies that targets with suffix from 'suffixes' has the type 'type'.
-# If different type is already specified for any of syffixes,
-# issues an error.
+# Specifies that files with suffix from 'suffixes' be recognized as targets of
+# type 'type'. Issues an error if a different type is already specified for any
+# of the suffixes.
 rule register-suffixes ( suffixes + : type )
 {
     for local s in $(suffixes)
- {
- if ! $(.type.$(s))
+ {
+ if ! $(.type.$(s))
         {
- .type.$(s) = $(type) ;
+ .type.$(s) = $(type) ;
         }
- else if $(.type.$(s)) != type
+ else if $(.type.$(s)) != type
         {
- errors.error Attempting to specify type for suffix \"$(s)\"
- : "Old type $(.type.$(s)), New type $(type)" ;
+ errors.error Attempting to specify multiple types for suffix \"$(s)\"
+ : "Old type $(.type.$(s)), New type $(type)" ;
         }
- }
+ }
 }
 
 
@@ -129,13 +126,14 @@
     }
 }
 
+
 # Issues an error if 'type' is unknown.
 rule validate ( type )
 {
     if ! $(type) in $(.types)
     {
         errors.error "Unknown target type $(type)" ;
- }
+ }
 }
 
 
@@ -145,19 +143,23 @@
     if ! $(type) in $(.types)
     {
         error "Type" $(type) "is not declared" ;
- }
+ }
     .scanner.$(type) = $(scanner) ;
 }
 
+
 # Returns a scanner instance appropriate to 'type' and 'properties'.
 rule get-scanner ( type : property-set )
 {
- if $(.scanner.$(type)) {
+ if $(.scanner.$(type))
+ {
         return [ scanner.get $(.scanner.$(type)) : $(property-set) ] ;
- }
+ }
 }
 
-# returns type and all of its bases in order of their distance from type.
+
+# Returns the given type and all of its base types in order of their distance
+# from type.
 rule all-bases ( type )
 {
     local result = $(type) ;
@@ -169,6 +171,7 @@
     return $(result) ;
 }
 
+
 rule all-derived ( type )
 {
     local result = $(type) ;
@@ -176,12 +179,11 @@
     {
         result += [ all-derived $(d) ] ;
     }
- return $(result) ;
+ return $(result) ;
 }
 
 
-# Returns true if 'type' has 'base' as its direct or
-# indirect base.
+# Returns true if 'type' has 'base' as its direct or indirect base.
 rule is-derived ( type base )
 {
     if $(base) in [ all-bases $(type) ]
@@ -190,8 +192,8 @@
     }
 }
 
-# Returns true if 'type' is either derived from 'base',
-# or 'type' is equal to 'base'.
+
+# Returns true if 'type' is either derived from or is equal to 'base'.
 rule is-subtype ( type base )
 {
     if $(type) = $(base)
@@ -201,110 +203,119 @@
     else
     {
         return [ is-derived $(type) $(base) ] ;
- }
+ }
 }
 
 
-# Store suffixes for generated targets
+# Store suffixes for generated targets.
 .suffixes = [ new property-map ] ;
 
-# Store prefixes for generated targets (e.g. "lib" for library)
+# Store prefixes for generated targets (e.g. "lib" for library).
 .prefixes = [ new property-map ] ;
 
 
-# Sets a target suffix that should be used when generating target
-# of 'type' with the specified properties. Can be called with
-# empty properties if no suffix for 'type' was specified yet.
-# This does not automatically specify that files 'suffix' have
-# 'type' --- two different types can use the same suffix for
-# generating, but only one type should be auto-detected for
-# a file with that suffix. User should explicitly specify which
-# one.
+# Sets a file suffix to be used when generating a target of 'type' with the
+# specified properties. Can be called with no properties if no suffix has
+# already been specified for the 'type'. The 'suffix' parameter can be an empty
+# string ("") to indicate that no suffix should be used.
+#
+# Note that this does not cause files with 'suffix' to be automatically
+# recognized as being of 'type'. Two different types can use the same suffix for
+# their generated files but only one type can be auto-detected for a file with
+# that suffix. User should explicitly specify which one using the
+# register-suffixes rule.
 #
-# The 'suffix' parameter can be empty string ("") to indicate that
-# no suffix should be used.
 rule set-generated-target-suffix ( type : properties * : suffix )
 {
- set-generated-target-ps suffix : $(type) : $(properties) : $(suffix) ;
-}
+ set-generated-target-ps suffix : $(type) : $(properties) : $(suffix) ;
+}
+
 
-# Change the suffix previously registered for this type/properties
-# combination. If suffix is not yet specified, sets it.
+# Change the suffix previously registered for this type/properties combination.
+# If suffix is not yet specified, sets it.
 rule change-generated-target-suffix ( type : properties * : suffix )
-{
- change-generated-target-ps suffix : $(type) : $(properties) : $(suffix) ;
+{
+ change-generated-target-ps suffix : $(type) : $(properties) : $(suffix) ;
 }
 
+
+# Returns the suffix used when generating a file of 'type' with the given
+# properties.
 rule generated-target-suffix ( type : property-set )
 {
- return [ generated-target-ps suffix : $(type) : $(property-set) ] ;
+ return [ generated-target-ps suffix : $(type) : $(property-set) ] ;
 }
 
-# Sets a target prefix that should be used when generating target
-# of 'type' with the specified properties. Can be called with
-# empty properties if no prefix for 'type' was specified yet.
+
+# Sets a target prefix that should be used when generating targets of 'type'
+# with the specified properties. Can be called with empty properties if no
+# prefix for 'type' has been specified yet.
 #
-# The 'prefix' parameter can be empty string ("") to indicate that
-# no prefix should be used.
+# The 'prefix' parameter can be empty string ("") to indicate that no prefix
+# should be used.
 #
-# Example usage is for library names that have to have a "lib"
-# prefix as in unix.
+# Usage example: library names use the "lib" prefix on unix.
 rule set-generated-target-prefix ( type : properties * : prefix )
 {
- set-generated-target-ps prefix : $(type) : $(properties) : $(prefix) ;
-}
+ set-generated-target-ps prefix : $(type) : $(properties) : $(prefix) ;
+}
 
-# Change the prefix previously registered for this type/properties
-# combination. If prefix is not yet specified, sets it.
+
+# Change the prefix previously registered for this type/properties combination.
+# If prefix is not yet specified, sets it.
 rule change-generated-target-prefix ( type : properties * : prefix )
-{
- change-generated-target-ps prefix : $(type) : $(properties) : $(prefix) ;
+{
+ change-generated-target-ps prefix : $(type) : $(properties) : $(prefix) ;
 }
 
+
 rule generated-target-prefix ( type : property-set )
 {
- return [ generated-target-ps prefix : $(type) : $(property-set) ] ;
+ return [ generated-target-ps prefix : $(type) : $(property-set) ] ;
 }
 
-# Common rules for prefix/suffix provisioning follow
 
-rule set-generated-target-ps ( ps : type : properties * : psval )
+# Common rules for prefix/suffix provisioning follow.
+
+local rule set-generated-target-ps ( ps : type : properties * : psval )
 {
     properties = <target-type>$(type) $(properties) ;
     $(.$(ps)es).insert $(properties) : $(psval) ;
-}
+}
 
-rule change-generated-target-ps ( ps : type : properties * : psval )
-{
- properties = <target-type>$(type) $(properties) ;
+
+local rule change-generated-target-ps ( ps : type : properties * : psval )
+{
+ properties = <target-type>$(type) $(properties) ;
     local prev = [ $(.$(ps)es).find-replace $(properties) : $(psval) ] ;
     if ! $(prev)
     {
         set-generated-target-ps $(ps) : $(type) : $(properties) : $(psval) ;
- }
+ }
 }
 
-# Returns either prefix or suffix (as indicated by 'ps') that
-# should be used when generating target of 'type' with the specified properties.
-# Parameter 'ps' can be either "prefix" or "suffix". If no prefix/suffix is
-# specified for 'type', returns prefix/suffix for base type, if any.
-rule generated-target-ps-real ( ps : type : properties * )
+
+# Returns either prefix or suffix (as indicated by 'ps') that should be used
+# when generating a target of 'type' with the specified properties. Parameter
+# 'ps' can be either "prefix" or "suffix". If no prefix/suffix is specified for
+# 'type', returns prefix/suffix for base type, if any.
+local rule generated-target-ps-real ( ps : type : properties * )
 {
     local result ;
     local found ;
     while $(type) && ! $(found)
     {
         result = [ $(.$(ps)es).find <target-type>$(type) $(properties) ] ;
- # If the prefix/suffix is explicitly set to empty string,
- # we consider prefix/suffix to be found. If we did not compare with "",
- # there would be no way for user to set empty prefix/suffix.
+ # If the prefix/suffix is explicitly set to an empty string, we consider
+ # prefix/suffix to be found. If we were not to compare with "", there
+ # would be no way to specify an empty prefix/suffix.
         if $(result)-is-not-empty
         {
             found = true ;
         }
         type = $(.bases.$(type)) ;
     }
- if $(result) = ""
+ if $(result) = ""
     {
         result = ;
     }
@@ -312,35 +323,35 @@
 }
 
 
-rule generated-target-ps ( ps : type : property-set )
+local rule generated-target-ps ( ps : type : property-set )
 {
     local key = .$(ps).$(type).$(property-set) ;
     local v = $($(key)) ;
     if ! $(v)
     {
         v = [ generated-target-ps-real $(ps) : $(type)
- : [ $(property-set).raw ] ] ;
+ : [ $(property-set).raw ] ] ;
         if ! $(v)
         {
             v = none ;
         }
         $(key) = $(v) ;
     }
-
+
     if $(v) != none
     {
         return $(v) ;
- }
+ }
 }
 
 
 # Returns file type given it's name. If there are several dots in filename,
-# tries each suffix. E.g. for name of "file.so.1.2" suffixes "2", "1", and
-# "so" will be tried.
-rule type ( filename )
+# tries each suffix. E.g. for name of "file.so.1.2" suffixes "2", "1", and "so"
+# will be tried.
+rule type ( filename )
 {
     local type ;
- while ! $(type) && $(filename:S)
+ while ! $(type) && $(filename:S)
     {
         local suffix = $(filename:S) ;
         type = $(.type$(suffix)) ;
@@ -350,21 +361,23 @@
 }
 
 
-
-rule main-target-rule ( name : sources * : requirements * : default-build *
- : usage-requirements * )
+# Rule used to construct all main targets. Note that this rule gets imported
+# into the global namespace under different alias names and exactly what type of
+# target it is supposed to construct is read from the name of the alias rule
+# actually used to invoke it.
+rule main-target-rule ( name : sources * : requirements * : default-build *
+ : usage-requirements * )
 {
- # First find required target type, which is equal to the name used
- # to invoke us.
+ # First discover the required target type, which is equal to the rule name
+ # used to invoke us.
     local bt = [ BACKTRACE 1 ] ;
     local rulename = $(bt[4]) ;
-
+
     local project = [ project.current ] ;
-
- # This is a circular module dependency, so it must be imported here
+
+ # This is a circular module dependency so it must be imported here.
     import targets ;
- return [ targets.create-typed-target $(.main-target-type.$(rulename)) : $(project)
- : $(name) : $(sources) : $(requirements)
- : $(default-build) : $(usage-requirements) ] ;
+ return [ targets.create-typed-target $(.main-target-type.$(rulename))
+ : $(project) : $(name) : $(sources) : $(requirements)
+ : $(default-build) : $(usage-requirements) ] ;
 }
-

Modified: branches/proto/v3/tools/build/v2/build/version.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/version.jam (original)
+++ branches/proto/v3/tools/build/v2/build/version.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,11 +1,13 @@
-# Copyright 2002, 2003, 2004, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2002, 2003, 2004, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 rule boost-build ( )
 {
     return "V2 (Milestone 12)" ;
 }
+
+
 rule jam ( )
 {
     local v = [ modules.peek : JAM_VERSION ] ;

Modified: branches/proto/v3/tools/build/v2/build/virtual-target.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/virtual-target.jam (original)
+++ branches/proto/v3/tools/build/v2/build/virtual-target.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,16 +1,21 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2005, 2006 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2005, 2006 Rene Rivera
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Implements virtual targets, which correspond to actual files created during
-# build, but are not yet targets in Jam sense. They are needed, for example,
-# when searching for possible transormation sequences, when it's not known
-# if particular target should be created at all.
+# a build, but are not yet targets in Jam sense. They are needed, for example,
+# when searching for possible transormation sequences, when it's not yet known
+# whether a particular target should be created at all.
 
 import "class" : new ;
-import path property-set utility sequence errors set type os ;
+import errors ;
+import path ;
+import sequence ;
+import set ;
+import type ;
+import utility ;
 
 # +--------------------------+
 # | virtual-target |
@@ -56,39 +61,41 @@
 # +---------------------+ | actualize-sources() |
 # +---------------------+
 #
-# The 'compile-action' and 'link-action' classes are defined not here,
-# but in builtin.jam modules. They are shown in the diagram to give
-# the big picture.
-
-# Potential target. It can be converted into jam target and used in
-# building, if needed. However, it can be also dropped, which allows
-# to search for different transformation and select only one.
+# The 'compile-action' and 'link-action' classes are not defined here but in
+# builtin.jam modules. They are shown in the diagram to give the big picture.
+
+# Models a potential target. It can be converted into a Jam target and used in
+# building, if needed. However, it can be also dropped, which allows us to
+# search for different transformations and select only one.
 #
-class virtual-target
+class virtual-target
 {
- import virtual-target utility scanner ;
-
- rule __init__ ( name # Name of this target -- specifies the name of
- : project # Project to which this target belongs
+ import scanner ;
+ import sequence ;
+ import utility ;
+ import virtual-target ;
+
+ rule __init__ (
+ name # Target/project name.
+ : project # Project to which this target belongs.
     )
- {
+ {
         self.name = $(name) ;
         self.project = $(project) ;
         self.dependencies = ;
     }
-
+
     # Name of this target.
     rule name ( ) { return $(self.name) ; }
 
     # Project of this target.
     rule project ( ) { return $(self.project) ; }
 
- # Adds additional instances of 'virtual-target' that this
- # one depends on.
+ # Adds additional 'virtual-target' instances this one depends on.
     rule depends ( d + )
     {
         self.dependencies = [ sequence.merge $(self.dependencies)
- : [ sequence.insertion-sort $(d) ] ] ;
+ : [ sequence.insertion-sort $(d) ] ] ;
     }
 
     rule dependencies ( )
@@ -96,16 +103,16 @@
         return $(self.dependencies) ;
     }
 
- # Generates all the actual targets and sets up build actions for
- # this target.
+ # Generates all the actual targets and sets up build actions for this
+ # target.
     #
- # If 'scanner' is specified, creates an additional target
- # with the same location as actual target, which will depend on the
- # actual target and be associated with 'scanner'. That additional
- # target is returned. See the docs (#dependency_scanning) for rationale.
- # Target must correspond to a file if 'scanner' is specified.
+ # If 'scanner' is specified, creates an additional target with the same
+ # location as the actual target, which will depend on the actual target and
+ # be associated with a 'scanner'. That additional target is returned. See
+ # the docs (#dependency_scanning) for rationale. Target must correspond to a
+ # file if 'scanner' is specified.
     #
- # If scanner is not specified, then actual target is returned.
+ # If scanner is not specified then the actual target is returned.
     rule actualize ( scanner ? )
     {
         local actual-name = [ actualize-no-scanner ] ;
@@ -121,7 +128,8 @@
                 [ utility.ungrist $(actual-name:G) ] $(scanner) : - ] ;
             local name = $(actual-name:G=$(g)) ;
 
- if ! $(self.made.$(name)) {
+ if ! $(self.made.$(name))
+ {
                 self.made.$(name) = true ;
 
                 DEPENDS $(name) : $(actual-name) ;
@@ -132,13 +140,12 @@
             }
             return $(name) ;
         }
-
     }
 
 # private: (overridables)
 
- # Sets up build actions for 'target'. Should call appropriate rules
- # and set target variables.
+ # Sets up build actions for 'target'. Should call appropriate rules and set
+ # target variables.
     rule actualize-action ( target )
     {
         errors.error "method should be defined in derived classes" ;
@@ -149,16 +156,16 @@
     {
         errors.error "method should be defined in derived classes" ;
     }
-
- # If the target is generated one, returns the path where it will be
- # generated. Otherwise, returns empty list.
+
+ # If the target is a generated one, returns the path where it will be
+ # generated. Otherwise, returns an empty list.
     rule path ( )
     {
- errors.error "method should be defined in derived classes" ;
+ errors.error "method should be defined in derived classes" ;
     }
-
- # Return that actual target name that should be used
- # (for the case where no scanner is involved)
+
+ # Returns the actual target name to be used in case when no scanner is
+ # involved.
     rule actual-name ( )
     {
         errors.error "method should be defined in derived classes" ;
@@ -167,56 +174,58 @@
 # implementation
     rule actualize-no-scanner ( )
     {
- # In fact, we just need to merge virtual-target with
- # abstract-virtual-target and the latter is the only class
- # derived from the former. But that's for later.
- errors.error "method should be defined in derived classes" ;
- }
+ # In fact, we just need to merge virtual-target with
+ # abstract-virtual-target as the latter is the only class derived from
+ # the former. But that's for later.
+ errors.error "method should be defined in derived classes" ;
+ }
 }
 
 
-# Target which correspond to a file. The exact mapping for file
-# is not yet specified in this class. (TODO: Actually, the class name
-# could be better...)
+# Target corresponding to a file. The exact mapping for file is not yet
+# specified in this class. (TODO: Actually, the class name could be better...)
 #
-# May be a source file (when no action is specified), or
-# derived file (otherwise).
+# May be a source file (when no action is specified) or a derived file
+# (otherwise).
 #
-# The target's grist is concatenation of project's location,
-# properties of action (for derived files), and, optionally,
-# value identifying the main target.
+# The target's grist is concatenation of its project's location, properties of
+# action (for derived files) and, optionally, value identifying the main target.
 class abstract-file-target : virtual-target
 {
- import project regex sequence path type ;
+ import project ;
+ import regex ;
+ import sequence ;
+ import path ;
+ import type ;
     import property-set ;
     import indirect ;
-
- rule __init__ (
- name # Name for this target
- exact ? # If non-empty, the name is exactly the name
- # created file should have. Otherwise, the '__init__'
- # method will add suffix obtained from 'type' by
- # calling 'type.generated-target-suffix'.
- : type ? # The type of this target.
+
+ rule __init__ (
+ name # Target's name.
+ exact ? # If non-empty, the name is exactly the name created file
+ # should have. Otherwise, the '__init__' method will add a
+ # suffix obtained from 'type' by calling
+ # 'type.generated-target-suffix'.
+ : type ? # Target's type.
         : project
         : action ?
     )
     {
         virtual-target.__init__ $(name) : $(project) ;
-
+
         self.type = $(type) ;
         self.action = $(action) ;
         if $(action)
- {
+ {
             $(action).add-targets $(__name__) ;
 
- if $(self.type) && ! $(exact)
- {
+ if $(self.type) && ! $(exact)
+ {
                 _adjust-name $(name) ;
- }
- }
+ }
+ }
     }
-
+
     rule type ( ) { return $(self.type) ; }
 
     # Sets the path. When generating target name, it will override any path
@@ -226,15 +235,14 @@
         self.path = [ path.native $(path) ] ;
     }
 
- # If 'a' is supplied, sets action to 'a'.
- # Returns the action currently set.
+ # Returns the currently set action.
     rule action ( )
     {
         return $(self.action) ;
     }
 
- # Sets/gets the 'root' flag. Target is root if it directly correspods to some
- # variant of a main target.
+ # Sets/gets the 'root' flag. Target is root if it directly corresponds to
+ # some variant of a main target.
     rule root ( set ? )
     {
         if $(set)
@@ -243,26 +251,19 @@
         }
         return $(self.root) ;
     }
-
- # Gets or sets the subvariant which created this target. Subvariant
- # is set when target is brought into existance, and is never changed
- # after that. In particual, if target is shared by subvariant, only
- # the first is stored.
- rule creating-subvariant ( s ? # If specified, specified the value to set,
- # which should be instance of 'subvariant'
- # class.
+
+ # Gets or sets the subvariant which created this target. Subvariant is set
+ # when target is brought into existance and is never changed after that. In
+ # particular, if a target is shared by a subvariant, only the first is
+ # stored.
+ rule creating-subvariant ( s ? # If specified, specifies the value to set,
+ # which should be a 'subvariant' class
+ # instance.
                              )
     {
- if $(s) && ( ! $(self.creating-subvariant) && ! $(overwrite) )
+ if $(s) && ! $(self.creating-subvariant) && ! $(overwrite)
         {
- if $(self.creating-subvariant)
- {
- errors.error "Attempt to change 'dg'" ;
- }
- else
- {
- self.creating-subvariant = $(s) ;
- }
+ self.creating-subvariant = $(s) ;
         }
         return $(self.creating-subvariant) ;
     }
@@ -274,10 +275,9 @@
             $(self.action).actualize ;
         }
     }
-
- # Return a human-readable representation of this target
- #
- # If this target has an action, that's:
+
+ # Return a human-readable representation of this target. If this target has
+ # an action, that's:
     #
     # { <action-name>-<self.name>.<self.type> <action-sources>... }
     #
@@ -288,21 +288,19 @@
     rule str ( )
     {
         local action = [ action ] ;
-
- local name-dot-type = [ sequence.join $(self.name) "." $(self.type) ] ;
-
+ local name-dot-type = [ sequence.join $(self.name) "." $(self.type) ] ;
+
         if $(action)
         {
- local sources = [ $(action).sources ] ;
-
- local action-name = [ $(action).action-name ] ;
+ local sources = [ $(action).sources ] ;
+ local action-name = [ $(action).action-name ] ;
 
- local ss ;
+ local ss ;
             for local s in $(sources)
             {
                 ss += [ $(s).str ] ;
             }
-
+
             return "{" $(action-name)-$(name-dot-type) $(ss) "}" ;
         }
         else
@@ -331,70 +329,65 @@
     rule actual-name ( )
     {
         if ! $(self.actual-name)
- {
+ {
             local grist = [ grist ] ;
-
             local basename = [ path.native $(self.name) ] ;
             self.actual-name = <$(grist)>$(basename) ;
-
+
         }
         return $(self.actual-name) ;
     }
-
- # Helper to 'actual-name', above. Compute unique prefix used to distinguish
- # this target from other targets with the same name which create different
- # file.
+
+ # Helper to 'actual-name', above. Computes a unique prefix used to
+ # distinguish this target from other targets with the same name creating
+ # different files.
     rule grist ( )
     {
         # Depending on target, there may be different approaches to generating
- # unique prefixes. We'll generate prefixes in the form
+ # unique prefixes. We'll generate prefixes in the form
         # <one letter approach code> <the actual prefix>
         local path = [ path ] ;
         if $(path)
         {
             # The target will be generated to a known path. Just use the path
             # for identification, since path is as unique as it can get.
- return p$(path) ;
+ return p$(path) ;
         }
         else
         {
- # File is either source, which will be searched for, or is not a file at
- # all. Use the location of project for distinguishing.
+ # File is either source, which will be searched for, or is not a
+ # file at all. Use the location of project for distinguishing.
             local project-location = [ $(self.project).get location ] ;
- local location-grist =
- [ sequence.join [ regex.split $(project-location) "/" ] : "!" ] ;
-
+ local location-grist = [ sequence.join [ regex.split
+ $(project-location) "/" ] : "!" ] ;
+
             if $(self.action)
             {
- local ps = [ $(self.action).properties ] ;
+ local ps = [ $(self.action).properties ] ;
                 local property-grist = [ $(ps).as-path ] ;
- # 'property-grist' can be empty when 'ps' is an empty
- # property set.
+ # 'property-grist' can be empty when 'ps' is an empty property
+ # set.
                 if $(property-grist)
- {
+ {
                     location-grist = $(location-grist)/$(property-grist) ;
- }
- }
-
+ }
+ }
+
             return l$(location-grist) ;
- }
- }
+ }
+ }
 
- # Given the target name specified in constructor, returns the
- # name which should be really used, by looking at the <tag> properties.
- # The tag properties come in two flavour:
- # - <tag>value,
- # - <tag>@rule-name
- # In the first case, value is just added to name
- # In the second case, the specified rule is called with specified name,
- # target type and properties and should return the new name.
- # If not <tag> property is specified, or the rule specified by
- # <tag> returns nothing, returns the result of calling
- # virtual-target.add-suffix
+ # Given the target name specified in constructor, returns the name which
+ # should be really used, by looking at the <tag> properties. Tag properties
+ # need to be specified as <tag>@rule-name. This makes Boost.Build call the
+ # specified rule with the target name, type and properties to get the new
+ # name. If no <tag> property is specified or the rule specified by <tag>
+ # returns nothing, returns the result of calling
+ # virtual-target.add-prefix-and-suffix.
     rule _adjust-name ( specified-name )
- {
+ {
         local ps ;
- if $(self.action)
+ if $(self.action)
         {
             ps = [ $(self.action).properties ] ;
         }
@@ -402,15 +395,14 @@
         {
             ps = [ property-set.empty ] ;
         }
-
- #~ We add ourselves to the properties so that any tag rule can get
- #~ more direct information about the target than just that available
- #~ through the properties. This is useful in implementing
- #~ name changes based on the sources of the target. For example to
- #~ make unique names of object files based on the source file.
- #~ --grafik
+
+ # We add ourselves to the properties so that any tag rule can get more
+ # direct information about the target than just that available through
+ # the properties. This is useful in implementing name changes based on
+ # the sources of the target. For example to make unique names of object
+ # files based on the source file. --grafik
         ps = [ property-set.create [ $(ps).raw ] <target>$(__name__) ] ;
-
+
         local tag = [ $(ps).get <tag> ] ;
 
         if $(tag)
@@ -420,46 +412,49 @@
             {
                 if $(tag[2])
                 {
- errors.error "<tag>@rulename is present but is not the only <tag> feature" ;
+ errors.error "<tag>@rulename is present but is not the only"
+ "<tag> feature" ;
                 }
-
- self.name = [ indirect.call $(rule-name) $(specified-name) :
- $(self.type) : $(ps) ] ;
+
+ self.name = [ indirect.call $(rule-name) $(specified-name)
+ : $(self.type) : $(ps) ] ;
             }
             else
             {
- errors.error
- "The value of the <tag> feature must be '@rule-nane'" ;
+ errors.error
+ "The value of the <tag> feature must be '@rule-name'" ;
             }
         }
-
+
         # If there's no tag or the tag rule returned nothing.
         if ! $(tag) || ! $(self.name)
- {
- self.name = [ virtual-target.add-prefix-and-suffix
- $(specified-name) : $(self.type) : $(ps) ] ;
- }
+ {
+ self.name = [ virtual-target.add-prefix-and-suffix $(specified-name)
+ : $(self.type) : $(ps) ] ;
+ }
     }
 
     rule actualize-no-scanner ( )
     {
         local name = [ actual-name ] ;
 
- # Do anything only on the first invocation
- if ! $(self.made.$(name)) {
+ # Do anything only on the first invocation.
+ if ! $(self.made.$(name))
+ {
             self.made.$(name) = true ;
-
+
             if $(self.action)
- {
- # For non-derived target, we don't care if there
- # are several virtual targets that refer to the same name.
- # One case when this is unavoidable is when file name is
- # main.cpp and two targets have types CPP (for compiling)
- # and MOCCABLE_CPP (for convertion to H via Qt tools).
+ {
+ # For non-derived target, we don't care if there are several
+ # virtual targets that refer to the same name. One case when
+ # this is unavoidable is when the file name is main.cpp and two
+ # targets have types CPP (for compiling) and MOCCABLE_CPP (for
+ # conversion to H via Qt tools).
                 virtual-target.register-actual-name $(name) : $(__name__) ;
             }
-
- for local i in $(self.dependencies) {
+
+ for local i in $(self.dependencies)
+ {
                 DEPENDS $(name) : [ $(i).actualize ] ;
             }
 
@@ -468,18 +463,18 @@
         }
         return $(name) ;
     }
-
 }
 
-# Appends the suffix appropriate to 'type/property-set' combination
-# to the specified name and returns the result.
+
+# Appends the suffix appropriate to 'type/property-set' combination to the
+# specified name and returns the result.
 rule add-prefix-and-suffix ( specified-name : type ? : property-set )
 {
     local suffix = [ type.generated-target-suffix $(type) : $(property-set) ] ;
-
- # Handle suffixes for which no leading dot is desired. Those are
- # specified by enclosing them in <...>. Needed by python so it
- # can create "_d.so" extensions, for example.
+
+ # Handle suffixes for which no leading dot is desired. Those are specified
+ # by enclosing them in <...>. Needed by python so it can create "_d.so"
+ # extensions, for example.
     if $(suffix:G)
     {
         suffix = [ utility.ungrist $(suffix) ] ;
@@ -488,9 +483,9 @@
     {
         suffix = .$(suffix) ;
     }
-
+
     local prefix = [ type.generated-target-prefix $(type) : $(property-set) ] ;
-
+
     if [ MATCH ^($(prefix)) : $(specified-name) ]
     {
         prefix = ;
@@ -499,26 +494,26 @@
 }
 
 
-# File target with explicitly known location.
+# File targets with explicitly known location.
 #
 # The file path is determined as
-# - value passed to the 'set-path' method, if any
-# - for derived files, project's build dir, joined with components
-# that describe action's properties. If the free properties
-# are not equal to the project's reference properties
-# an element with name of main target is added.
-# - for source files, project's source dir
+# * Value passed to the 'set-path' method, if any.
+# * For derived files, project's build dir, joined with components that
+# describe action properties. If free properties are not equal to the
+# project's reference properties an element with the name of the main
+# target is added.
+# * For source files, project's source dir.
 #
-# The file suffix is
-# - the value passed to the 'suffix' method, if any, or
-# - the suffix which correspond to the target's type.
+# The file suffix is determined as:
+# * The value passed to the 'suffix' method, if any.
+# * The suffix corresponding to the target's type.
 #
-class file-target : abstract-file-target
+class file-target : abstract-file-target
 {
- import common ;
- import errors ;
     import "class" : new ;
-
+ import common ;
+ import errors ;
+
     rule __init__ (
       name exact ?
         : type ? # Optional type for this target
@@ -527,149 +522,150 @@
         : path ?
     )
     {
- abstract-file-target.__init__ $(name) $(exact) : $(type) : $(project)
- : $(action) ;
+ abstract-file-target.__init__ $(name) $(exact) : $(type) : $(project)
+ : $(action) ;
 
         self.path = $(path) ;
     }
-
+
     rule clone-with-different-type ( new-type )
     {
         return [ new file-target $(self.name) exact : $(new-type)
- : $(self.project) : $(self.action) : $(self.path) ] ;
+ : $(self.project) : $(self.action) : $(self.path) ] ;
     }
-
+
     rule actualize-location ( target )
     {
         if $(self.action)
         {
             # This is a derived file.
             local path = [ path ] ;
- LOCATE on $(target) = $(path) ;
+ LOCATE on $(target) = $(path) ;
 
             # Make sure the path exists.
             DEPENDS $(target) : $(path) ;
             common.MkDir $(path) ;
 
- # It's possible that the target name includes a directory
- # too, for example when installing headers. Create that
- # directory.
+ # It's possible that the target name includes a directory too, for
+ # example when installing headers. Create that directory.
             if $(target:D)
             {
                 local d = $(target:D) ;
                 d = $(d:R=$(path)) ;
                 DEPENDS $(target) : $(d) ;
-
                 common.MkDir $(d) ;
- }
-
- # For real file target, we create a fake target that
- # depends on the real target. This allows to run
+ }
+
+ # For a real file target, we create a fake target depending on the
+ # real target. This allows us to run
             #
             # bjam hello.o
             #
- # without trying to guess the name of the real target.
- # Note the that target has no directory name, and a special
- # grist <e>.
+ # without trying to guess the name of the real target. Note that the
+ # target has no directory name and uses a special <e> grist.
             #
- # First, that means that "bjam hello.o" will build all
- # known hello.o targets.
- # Second, the <e> grist makes sure this target won't be confused
- # with other targets, for example, if we have subdir 'test'
- # with target 'test' in it that includes 'test.o' file,
- # then the target for directory will be just 'test' the target
- # for test.o will be <ptest/bin/gcc/debug>test.o and the target
- # we create below will be <e>test.o
+ # First, that means that "bjam hello.o" will build all known hello.o
+ # targets. Second, the <e> grist makes sure this target won't be
+ # confused with other targets, for example, if we have subdir 'test'
+ # with target 'test' in it that includes a 'test.o' file, then the
+ # target for directory will be just 'test' the target for test.o
+ # will be <ptest/bin/gcc/debug>test.o and the target we create below
+ # will be <e>test.o
             DEPENDS $(target:G=e) : $(target) ;
         }
         else
         {
             SEARCH on $(target) = [ path.native $(self.path) ] ;
- }
+ }
     }
-
- # Returns the directory for this target
+
+ # Returns the directory for this target.
     rule path ( )
     {
         if ! $(self.path)
         {
             if $(self.action)
- {
- local p = [ $(self.action).properties ] ;
+ {
+ local p = [ $(self.action).properties ] ;
                 local path = [ $(p).target-path ] ;
-
+
                 if $(path[2]) = true
- {
- # Indicates that the path is relative to
- # build dir.
+ {
+ # Indicates that the path is relative to the build dir.
                     path = [ path.join [ $(self.project).build-dir ]
- $(path[1]) ] ;
+ $(path[1]) ] ;
                 }
-
- # Store the computed path, so that it's not recomputed
- # any more
+
                 self.path = [ path.native $(path) ] ;
- }
+ }
         }
         return $(self.path) ;
      }
-
 }
 
+
 class notfile-target : abstract-file-target
 {
     rule __init__ ( name : project : action ? )
     {
         abstract-file-target.__init__ $(name) : : $(project) : $(action) ;
     }
-
- # Returns nothing, to indicate that target path is not known.
+
+ # Returns nothing to indicate that the target's path is not known.
     rule path ( )
     {
         return ;
     }
-
+
     rule actualize-location ( target )
     {
         NOTFILE $(target) ;
         ALWAYS $(target) ;
- }
-}
+ }
+}
 
-# Class which represents an action.
-# Both 'targets' and 'sources' should list instances of 'virtual-target'.
-# Action name should name a rule with this prototype
+
+# Class representing an action. Both 'targets' and 'sources' should list
+# instances of 'virtual-target'. Action name should name a rule with this
+# prototype:
 # rule action-name ( targets + : sources * : properties * )
-# Targets and sources are passed as actual jam targets. The rule may
-# not establish dependency relationship, but should do everything else.
-class action
+# Targets and sources are passed as actual Jam targets. The rule may not
+# establish additional dependency relationships.
+
+class action
 {
- import type toolset property-set indirect class path assert errors ;
-
+ import "class" ;
+ import errors ;
+ import type ;
+ import toolset ;
+ import property-set ;
+ import indirect ;
+ import path ;
+
     rule __init__ ( sources * : action-name + : property-set ? )
- {
+ {
         self.sources = $(sources) ;
-
+
         self.action-name = [ indirect.make-qualified $(action-name) ] ;
-
- if ! $(property-set)
+
+ if ! $(property-set)
         {
             property-set = [ property-set.empty ] ;
         }
-
+
         if ! [ class.is-instance $(property-set) ]
- {
+ {
             errors.error "Property set instance required" ;
         }
-
+
         self.properties = $(property-set) ;
- }
-
+ }
+
     rule add-targets ( targets * )
     {
         self.targets += $(targets) ;
     }
-
+
     rule targets ( )
     {
         return $(self.targets) ;
@@ -710,30 +706,29 @@
 
             DEPENDS $(actual-targets) : $(self.actual-sources) $(self.dependency-only-sources) ;
 
- # Action name can include additional argument to rule, which should not
- # be passed to 'set-target-variables'
+ # Action name can include additional argument to rule, which should
+ # not be passed to 'set-target-variables'
             toolset.set-target-variables
- [ indirect.get-rule $(self.action-name[1]) ] $(actual-targets)
+ [ indirect.get-rule $(self.action-name[1]) ] $(actual-targets)
                 : $(properties) ;
-
+
             # Reflect ourselves in a variable for the target. This allows
             # looking up additional info for the action given the raw target.
- # For example to debug or output action information from action rules.
+ # For example to debug or output action information from action
+ # rules.
             .action on $(actual-targets) = $(__name__) ;
-
- indirect.call $(self.action-name)
- $(actual-targets) : $(self.actual-sources) : [ $(properties).raw ]
- ;
-
- # Since we set up creating action here, we also set up
- # action for cleaning up
+
+ indirect.call $(self.action-name) $(actual-targets)
+ : $(self.actual-sources) : [ $(properties).raw ] ;
+
+ # Since we set up the creating action here, we set up the action for
+ # cleaning up as well.
             common.Clean clean-all : $(actual-targets) ;
         }
     }
 
- # Helper for 'actualize-sources'.
- # For each passed source, actualizes it with the appropriate scanner.
- # Returns the actualized virtual targets.
+ # Helper for 'actualize-sources'. For each passed source, actualizes it with
+ # the appropriate scanner. Returns the actualized virtual targets.
     rule actualize-source-type ( sources * : property-set )
     {
         local result = ;
@@ -742,118 +737,117 @@
             local scanner ;
             if [ $(i).type ]
             {
- scanner =
- [ type.get-scanner [ $(i).type ] : $(property-set) ] ;
+ scanner = [ type.get-scanner [ $(i).type ] : $(property-set) ] ;
             }
             result += [ $(i).actualize $(scanner) ] ;
         }
-
         return $(result) ;
     }
-
- # Creates actual jam targets for sources. Initialized two member
- # variables:.
- # 'self.actual-sources' -- sources which are passed to updating action
- # 'self.dependency-only-sources' -- sources which are made dependencies, but
- # are not used otherwise.
+
+ # Creates actual Jam targets for sources. Initializes the following member
+ # variables:
+ # 'self.actual-sources' -- sources passed to the updating action.
+ # 'self.dependency-only-sources' -- sources marked as dependencies, but
+ # are not used otherwise.
     #
- # New values will be *appended* to the variables. They may be non-empty,
- # if caller wants it.
+ # New values will be *appended* to the variables. They may be non-empty if
+ # caller wants it.
     rule actualize-sources ( sources * : property-set )
     {
         local dependencies = [ $(self.properties).get <dependency> ] ;
-
- self.dependency-only-sources += [
- actualize-source-type $(dependencies) : $(property-set) ] ;
- self.actual-sources += [
- actualize-source-type $(sources) : $(property-set) ] ;
-
- # This is used to help bjam find dependencies in generated headers
- # in other main targets.
- # Say:
+
+ self.dependency-only-sources +=
+ [ actualize-source-type $(dependencies) : $(property-set) ] ;
+ self.actual-sources +=
+ [ actualize-source-type $(sources) : $(property-set) ] ;
+
+ # This is used to help bjam find dependencies in generated headers and
+ # other main targets, e.g. in:
         #
         # make a.h : ....... ;
         # exe hello : hello.cpp : <implicit-dependency>a.h ;
         #
- # However, for bjam to find the dependency the generated target must
- # be actualized (i.e. have the jam target). In the above case,
- # if we're building just hello ("bjam hello"), 'a.h' won't be
- # actualized unless we do it here.
+ # For bjam to find the dependency the generated target must be
+ # actualized (i.e. have its Jam target constructed). In the above case,
+ # if we're building just hello ("bjam hello"), 'a.h' won't be actualized
+ # unless we do it here.
         local implicit = [ $(self.properties).get <implicit-dependency> ] ;
         for local i in $(implicit)
         {
             $(i:G=).actualize ;
- }
+ }
     }
 
- # Determined real properties when trying building with 'properties'.
- # This is last chance to fix properties, for example to adjust includes
- # to get generated headers correctly. Default implementation returns
- # its argument.
+ # Determines real properties when trying to build with 'properties'. This is
+ # the last chance to fix properties, for example to adjust includes to get
+ # generated headers correctly. Default implementation simply returns its
+ # argument.
     rule adjust-properties ( property-set )
     {
         return $(property-set) ;
     }
 }
 
-# Action class which does nothing --- it produces the targets with
-# specific properties out of nowhere. It's needed to distinguish virtual
-# targets with different properties that are known to exist, and have no
-# actions which create them.
-class null-action : action
+
+# Action class which does nothing --- it produces the targets with specific
+# properties out of nowhere. It's needed to distinguish virtual targets with
+# different properties that are known to exist and have no actions which create
+# them.
+class null-action : action
 {
     rule __init__ ( property-set ? )
     {
- action.__init__ : .no-action : $(property-set) ;
+ action.__init__ : .no-action : $(property-set) ;
     }
-
+
     rule actualize ( )
     {
         if ! $(self.actualized)
         {
             self.actualized = true ;
-
             for local i in [ targets ]
             {
                 $(i).actualize ;
             }
- }
+ }
     }
 }
 
-# Class which acts exactly like 'action', except that the sources
-# are not scanned for dependencies.
-class non-scanning-action : action
+
+# Class which acts exactly like 'action', except that its sources are not
+# scanned for dependencies.
+class non-scanning-action : action
 {
     rule __init__ ( sources * : action-name + : property-set ? )
- {
+ {
         action.__init__ $(sources) : $(action-name) : $(property-set) ;
     }
+
     rule actualize-source-type ( sources * : property-set )
     {
         local result ;
         for local i in $(sources)
         {
             result += [ $(i).actualize ] ;
- }
+ }
         return $(result) ;
     }
 }
 
 
-# Creates a virtual target with approariate name and type from 'file'.
-# If a target with that name in that project was already created, returns that already
+# Creates a virtual target with an appropriate name and type from 'file'. If a
+# target with that name in that project already exists, returns that already
 # created target.
-# FIXME: more correct way would be to compute path to the file, based on name and source location
-# for the project, and use that path to determine if the target was already created.
-# TODO: passing project with all virtual targets starts to be annoying.
+# FIXME: a more correct way would be to compute the path to the file, based on
+# name and source location for the project, and use that path to determine if
+# the target was already created.
+# TODO: passing a project with all virtual targets is starting to be annoying.
 rule from-file ( file : file-loc : project )
 {
- import type ; # had to do this here to break a circular dependency
+ import type ; # Had to do this here to break a circular dependency.
 
     # Check if we've created a target corresponding to this file.
- local path = [ path.root [ path.root $(file) $(file-loc) ]
- [ path.pwd ] ] ;
+ local path = [ path.root [ path.root $(file) $(file-loc) ] [ path.pwd ] ] ;
 
     if $(.files.$(path))
     {
@@ -866,62 +860,64 @@
         local result ;
 
         result = [ new file-target $(file)
- : $(type)
- : $(project)
- : #action
- : $(file-loc) ] ;
+ : $(type)
+ : $(project)
+ : #action
+ : $(file-loc) ] ;
 
         .files.$(path) = $(result) ;
         return $(result) ;
     }
 }
 
-# Registers a new virtual target. Checks if there's already registered target, with the same
-# name, type, project and subvariant properties, and also with the same sources
-# and equal action. If such target is found it is retured and 'target' is not registers.
-# Otherwise, 'target' is registered and returned.
+
+# Registers a new virtual target. Checks if there's already a registered target
+# with the same name, type, project and subvariant properties as well as the
+# same sources and equal action. If such target is found it is returned and a
+# new 'target' is not registered. Otherwise, 'target' is registered and
+# returned.
 rule register ( target )
 {
     local signature = [ sequence.join
- [ $(target).path ] [ $(target).name ] : - ] ;
+ [ $(target).path ] [ $(target).name ] : - ] ;
 
-
     local result ;
     for local t in $(.cache.$(signature))
     {
         local a1 = [ $(t).action ] ;
         local a2 = [ $(target).action ] ;
-
+
         if ! $(result)
         {
             if ! $(a1) && ! $(a2)
             {
                 result = $(t) ;
             }
- else
+ else
             {
- if $(a1) && $(a2) && [ $(a1).action-name ] = [ $(a2).action-name ] &&
- [ $(a1).sources ] = [ $(a2).sources ]
+ if $(a1) && $(a2) &&
+ [ $(a1).action-name ] = [ $(a2).action-name ] &&
+ [ $(a1).sources ] = [ $(a2).sources ]
                 {
                     local ps1 = [ $(a1).properties ] ;
                     local ps2 = [ $(a2).properties ] ;
                     local p1 = [ $(ps1).base ] [ $(ps1).free ] [ $(ps1).dependency ] ;
                     local p2 = [ $(ps2).base ] [ $(ps2).free ] [ $(ps2).dependency ] ;
- if $(p1) = $(p2)
- {
+ if $(p1) = $(p2)
+ {
                         result = $(t) ;
- }
+ }
                 }
- }
+ }
         }
     }
-
+
     if ! $(result)
     {
- .cache.$(signature) += $(target) ;
+ .cache.$(signature) += $(target) ;
         result = $(target) ;
     }
-
+
     .recent-targets += $(result) ;
     .all-targets += $(result) ;
 
@@ -929,28 +925,30 @@
 }
 
 
-# Each target returned by 'register' is added to a list of
-# 'recent-target', returned by this function. So, this allows
-# us to find all targets created when building a given main
-# target, even if the target
+# Each target returned by 'register' is added to a recent-targets list, returned
+# by this function. This allows us to find all targets created when building a
+# given main target, even if the target... !!!MISSING TEXT HERE!!!
 rule recent-targets ( )
 {
     return $(.recent-targets) ;
 }
 
+
 rule clear-recent-targets ( )
 {
     .recent-targets = ;
 }
 
-# Returns all virtual targets ever created
+
+# Returns all virtual targets ever created.
 rule all-targets ( )
 {
     return $(.all-targets) ;
 }
 
-# Returns all targets from 'targets' with types
-# equal to 'type' or derived from it.
+
+# Returns all targets from 'targets' with types equal to 'type' or derived from
+# it.
 rule select-by-type ( type : targets * )
 {
     local result ;
@@ -959,14 +957,12 @@
         if [ type.is-subtype [ $(t).type ] $(type) ]
         {
             result += $(t) ;
- }
+ }
     }
-
- return $(result) ;
+ return $(result) ;
 }
 
 
-
 rule register-actual-name ( actual-name : virtual-target )
 {
     if $(.actual.$(actual-name))
@@ -975,8 +971,7 @@
         local cs2 = [ $(virtual-target).creating-subvariant ] ;
         local cmt1 = [ $(cs1).main-target ] ;
         local cmt2 = [ $(cs2).main-target ] ;
-
-
+
         local action1 = [ $(.actual.$(actual-name)).action ] ;
         local action2 = [ $(virtual-target).action ] ;
         local properties-added ;
@@ -991,33 +986,34 @@
             properties-removed ?= "none" ;
             properties-added = [ set.difference $(p2) : $(p1) ] ;
             properties-added ?= "none" ;
- }
- errors.error "Duplicate name of actual target:" $(actual-name)
- : "previous virtual target" [ $(.actual.$(actual-name)).str ]
- : "created from" [ $(cmt1).full-name ]
- : "another virtual target" [ $(virtual-target).str ]
- : "created from" [ $(cmt2).full-name ]
- : "added properties: " $(properties-added)
- : "removed properties: " $(properties-removed) ;
+ }
+ errors.error "Duplicate name of actual target:" $(actual-name)
+ : "previous virtual target" [ $(.actual.$(actual-name)).str ]
+ : "created from" [ $(cmt1).full-name ]
+ : "another virtual target" [ $(virtual-target).str ]
+ : "created from" [ $(cmt2).full-name ]
+ : "added properties:" $(properties-added)
+ : "removed properties:" $(properties-removed) ;
     }
     else
     {
         .actual.$(actual-name) = $(virtual-target) ;
- }
+ }
 }
 
 
-# Traverses the dependency graph of 'target' and return all targets that will
-# be created before this one is created. If root of some dependency graph is
-# found during traversal, it's either included or not, dependencing of the
-# value of 'include-roots'. In either case, sources of root are not traversed.
+# Traverses the dependency graph of 'target' and return all targets that will be
+# created before this one is created. If the root of some dependency graph is
+# found during traversal, it's either included or not, depending on the value of
+# 'include-roots'. In either case traversal stops at root targets, i.e. sources
+# of root targets are not traversed.
 rule traverse ( target : include-roots ? : include-sources ? )
 {
     local result ;
     if [ $(target).action ]
     {
         local action = [ $(target).action ] ;
- # This includes 'target' as well
+ # This includes the 'target' as well.
         result += [ $(action).targets ] ;
 
         for local t in [ $(action).sources ]
@@ -1029,20 +1025,21 @@
             else if $(include-roots)
             {
                 result += $(t) ;
- }
+ }
         }
     }
     else if $(include-sources)
     {
         result = $(target) ;
- }
+ }
     return $(result) ;
 }
 
-# Takes an 'action' instances and creates new instance of it
-# and all produced target. The rule-name and properties are set
-# to 'new-rule-name' and 'new-properties', if those are specified.
-# Returns the cloned action.
+
+# Takes an 'action' instance and creates a new instance of it and all targets
+# produced by the action. The rule-name and properties are set to
+# 'new-rule-name' and 'new-properties', if those are specified. Returns the
+# cloned action.
 rule clone-action ( action : new-project : new-action-name ? : new-properties ? )
 {
     if ! $(new-action-name)
@@ -1055,142 +1052,139 @@
     }
 
     local action-class = [ modules.peek $(action) : __class__ ] ;
- local cloned-action = [ class.new $(action-class)
+ local cloned-action = [ class.new $(action-class)
       [ $(action).sources ] : $(new-action-name) : $(new-properties) ] ;
-
+
     local cloned-targets ;
     for local target in [ $(action).targets ]
     {
         local n = [ $(target).name ] ;
- # Don't modify the name of the produced targets.Strip the directory f
- local cloned-target = [ class.new file-target $(n) exact : [ $(target).type ]
- : $(new-project) : $(cloned-action) ] ;
+ # Don't modify produced targets names.
+ local cloned-target = [ class.new file-target $(n) exact
+ : [ $(target).type ] : $(new-project) : $(cloned-action) ] ;
         local d = [ $(target).dependencies ] ;
         if $(d)
- {
+ {
             $(cloned-target).depends $(d) ;
- }
+ }
         $(cloned-target).root [ $(target).root ] ;
         $(cloned-target).creating-subvariant [ $(target).creating-subvariant ] ;
-
+
         cloned-targets += $(cloned-target) ;
- }
-
- return $(cloned-action) ;
+ }
+
+ return $(cloned-action) ;
 }
 
+
 class subvariant
 {
- import sequence ;
+ import sequence ;
     import type ;
-
- rule __init__ ( main-target # The instance of main-target class
- : property-set # Properties requested for this target
+
+ rule __init__ ( main-target # The instance of main-target class.
+ : property-set # Properties requested for this target.
         : sources *
- : build-properties # Actually used properties
- : sources-usage-requirements # Properties propagated from sources
- : created-targets * ) # Top-level created targets
- {
- self.main-target = $(main-target) ;
+ : build-properties # Actually used properties.
+ : sources-usage-requirements # Properties propagated from sources.
+ : created-targets * ) # Top-level created targets.
+ {
+ self.main-target = $(main-target) ;
         self.properties = $(property-set) ;
         self.sources = $(sources) ;
         self.build-properties = $(build-properties) ;
         self.sources-usage-requirements = $(sources-usage-requirements) ;
         self.created-targets = $(created-targets) ;
 
- # Pre-compose the list of other dependency graphs, on which this one
- # depends
+ # Pre-compose a list of other dependency graphs this one depends on.
         local deps = [ $(build-properties).get <implicit-dependency> ] ;
         for local d in $(deps)
         {
             self.other-dg += [ $(d:G=).creating-subvariant ] ;
         }
-
+
         self.other-dg = [ sequence.unique $(self.other-dg) ] ;
     }
-
-
+
     rule main-target ( )
     {
         return $(self.main-target) ;
     }
-
- rule created-targets ( )
+
+ rule created-targets ( )
     {
         return $(self.created-targets) ;
     }
-
+
     rule requested-properties ( )
     {
         return $(self.properties) ;
     }
-
+
     rule build-properties ( )
     {
         return $(self.build-properties) ;
     }
-
+
     rule sources-usage-requirements ( )
     {
         return $(self.sources-usage-requirements) ;
     }
-
+
     rule set-usage-requirements ( usage-requirements )
     {
         self.usage-requirements = $(usage-requirements) ;
     }
-
+
     rule usage-requirements ( )
     {
         return $(self.usage-requirements) ;
     }
-
- # Returns all targets referenced by this subvariant,
- # either directly or indirectly, and
- # either as sources, or as dependency properties.
- # Targets referred with dependency property are returned a properties,
- # not targets.
+
+ # Returns all targets referenced by this subvariant, either directly or
+ # indirectly, and either as sources, or as dependency properties. Targets
+ # referred to using the dependency property are returned as properties, not
+ # targets.
     rule all-referenced-targets ( )
     {
         # Find directly referenced targets.
         local deps = [ $(self.build-properties).dependency ] ;
         local all-targets = $(self.sources) $(deps) ;
-
+
         # Find other subvariants.
         local r ;
         for local t in $(all-targets)
- {
+ {
             r += [ $(t:G=).creating-subvariant ] ;
         }
         r = [ sequence.unique $(r) ] ;
- for local s in $(r)
+ for local s in $(r)
         {
             if $(s) != $(__name__)
             {
                 all-targets += [ $(s).all-referenced-targets ] ;
- }
+ }
         }
- return $(all-targets) ;
+ return $(all-targets) ;
     }
-
- # Returns the properties which specify implicit include paths to
- # generated headers. This traverses all targets in this subvariant,
- # and subvariants referred by <implcit-dependecy>properties.
- # For all targets which are of type 'target-type' (or for all targets,
- # if 'target-type' is not specified), the result will contain
- # <$(feature)>path-to-that-target.
+
+ # Returns the properties specifying implicit include paths to generated
+ # headers. This traverses all targets in this subvariant and subvariants
+ # referred by <implcit-dependecy> properties. For all targets of type
+ # 'target-type' (or for all targets, if 'target-type' is not specified), the
+ # result will contain <$(feature)>path-to-that-target.
     rule implicit-includes ( feature : target-type ? )
     {
         local key = ii$(feature)-$(target-type:E="") ;
         if ! $($(key))-is-nonempty
         {
- local target-paths = [ all-target-directories $(target-type) ] ;
+ local target-paths = [ all-target-directories $(target-type) ] ;
             target-paths = [ sequence.unique $(target-paths) ] ;
             local result = $(target-paths:G=$(feature)) ;
             if ! $(result)
             {
                 result = "" ;
- }
+ }
             $(key) = $(result) ;
         }
         if $($(key)) = ""
@@ -1200,37 +1194,34 @@
         else
         {
             return $($(key)) ;
- }
+ }
     }
-
+
     rule all-target-directories ( target-type ? )
     {
         if ! $(self.target-directories)
         {
             compute-target-directories $(target-type) ;
- }
+ }
         return $(self.target-directories) ;
     }
-
+
     rule compute-target-directories ( target-type ? )
- {
+ {
         local result ;
         for local t in $(self.created-targets)
         {
- if $(target-type) && ! [ type.is-derived [ $(t).type ] $(target-type) ]
+ # Skip targets of the wrong type.
+ if ! $(target-type) ||
+ [ type.is-derived [ $(t).type ] $(target-type) ]
             {
- # Skip target which is of wrong type.
- }
- else
- {
                 result = [ sequence.merge $(result) : [ $(t).path ] ] ;
- }
+ }
         }
         for local d in $(self.other-dg)
         {
             result += [ $(d).all-target-directories $(target-type) ] ;
         }
         self.target-directories = $(result) ;
- }
+ }
 }
-

Modified: branches/proto/v3/tools/build/v2/doc/src/architecture.xml
==============================================================================
--- branches/proto/v3/tools/build/v2/doc/src/architecture.xml (original)
+++ branches/proto/v3/tools/build/v2/doc/src/architecture.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -334,7 +334,7 @@
     "bin" directory, it should be supported as well. I.e. in the
     scanario above, Jamfile in "dir" might create a main target,
     which generates "a.h". The file will be generated to "dir/bin"
- directory, but we still have to recornize the dependency.
+ directory, but we still have to recognize the dependency.
       </simpara>
     </listitem>
   </orderedlist>

Modified: branches/proto/v3/tools/build/v2/doc/src/extending.xml
==============================================================================
--- branches/proto/v3/tools/build/v2/doc/src/extending.xml (original)
+++ branches/proto/v3/tools/build/v2/doc/src/extending.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -37,30 +37,28 @@
     </listitem>
   </orderedlist>
 
- <para>It's quite easy to achieve. You write special verbatim files
- that are just C++, except that the very first line of the file
- contains the name of a variable that should be generated. A simple tool
- is created that takes a verbatim file and creates a cpp file with
- a single <code>char*</code> variable whose name is taken from the first line
- of the verbatim file and whose value is the file's properly quoted content.</para>
+ <para>It's quite easy to achieve. You write special verbatim files that are
+ just C++, except that the very first line of the file contains the name of a
+ variable that should be generated. A simple tool is created that takes a
+ verbatim file and creates a cpp file with a single <code>char*</code> variable
+ whose name is taken from the first line of the verbatim file and whose value
+ is the file's properly quoted content.</para>
 
   <para>Let's see what Boost.Build can do.</para>
 
- <para>First off, Boost.Build has no idea about "verbatim files". So,
- you must register a new target type. The following code does
- it:</para>
+ <para>First off, Boost.Build has no idea about "verbatim files". So, you must
+ register a new target type. The following code does it:</para>
 
 <programlisting>
 import type ;
-type.register VERBATIM : vrb ;
+type.register VERBATIM : verbatim ;
 </programlisting>
 
- <para>The first parameter to
- <functionname>type.register</functionname> gives the name of the
- declared type. By convention, it's uppercase. The second parameter
- is the suffix for files of this type. So, if Boost.Build sees
- <filename>code.vrb</filename> in a list of sources, it knows that it's of type
- <code>VERBATIM</code>.</para>
+ <para>The first parameter to <functionname>type.register</functionname> gives
+ the name of the declared type. By convention, it's uppercase. The second
+ parameter is the suffix for files of this type. So, if Boost.Build sees
+ <filename>code.verbatim</filename> in a list of sources, it knows that it's of
+ type <code>VERBATIM</code>.</para>
 
   <para>Next, you tell Boost.Build that the verbatim files can be
   transformed into C++ files in one build step. A
@@ -96,26 +94,29 @@
         -->
 </para>
 
- <para>Now, we're ready to tie it all together. Put all the code
- above in file <filename>verbatim.jam</filename>, add <code>import verbatim ;</code>
- to <filename>project-root.jam</filename>, and it's possible to write
- the following in Jamfile:</para>
+ <para>
+ Now, we're ready to tie it all together. Put all the code above in file
+ <filename>verbatim.jam</filename>, add <code>import verbatim ;</code> to
+ <filename>Jamroot.jam</filename>, and it's possible to write the following
+ in your Jamfile:
+ </para>
 
 <programlisting>
 exe codegen : codegen.cpp class_template.verbatim usage.verbatim ;
 </programlisting>
 
   <para>
-The verbatim files will be automatically converted into C++
-and linked it.
+ The listed verbatim files will be automatically converted into C++ source
+ files, compiled and then linked to the codegen executable.
   </para>
 
- <para>In the subsequent sections, we will extend this example, and review
- all the mechanisms in detail. The complete code is available in <filename>example/customization</filename>
- directory.
- </para>
-
+ <para>
+ In subsequent sections, we will extend this example, and review all the
+ mechanisms in detail. The complete code is available in the
+ <filename>example/customization</filename> directory.
+ </para>
   </section>
+
   <section id="bbv2.extending.targets">
     <title>Target types</title>
       <para>The first thing we did in the <link
@@ -281,13 +282,13 @@
 generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
 generators.register-composing mex.mex : CPP LIB : MEX ;
 </programlisting>
- Standard generators take a <emphasis>single</emphasis> source of type
- <code>VERBATIM</code> and produces a result. The second generator
- takes any number of sources, which can have either the
- <code>CPP</code> or the <code>LIB</code> type. Composing generators
+ The first (standard) generator takes a <emphasis>single</emphasis>
+ source of type <code>VERBATIM</code> and produces a result. The second
+ (composing) generator takes any number of sources, which can have either
+ the <code>CPP</code> or the <code>LIB</code> type. Composing generators
         are typically used for generating top-level target type. For example,
- the first generator invoked when building an <code>exe</code> target
- is a composing generator corresponding to the proper linker.
+ the first generator invoked when building an <code>exe</code> target is
+ a composing generator corresponding to the proper linker.
       </para>
 
       <para>You should also know about two specific functions for registering
@@ -723,51 +724,46 @@
       in Jamfiles, which will convert source to the OBFUSCATED_CPP type.
     </para>
     
- <para>The second way is to write a wrapper rule that calls
- any of the existing rules. For example, suppose you have only one library per
- directory and want all cpp files in the directory to be compiled into that library. You
- can achieve this effect with:
+ <para>
+ The second way is to write a wrapper rule that calls any of the existing
+ rules. For example, suppose you have only one library per directory and
+ want all cpp files in the directory to be compiled into that library. You
+ can achieve this effect using:
 <programlisting>
 lib codegen : [ glob *.cpp ] ;
 </programlisting>
- but if you want to make it even simpler, you could add the following
- definition to the <filename>project-root.jam</filename> file:
+ If you want to make it even simpler, you could add the following
+ definition to the <filename>Jamroot.jam</filename> file:
 <programlisting>
 rule glib ( name : extra-sources * : requirements * )
 {
     lib $(name) : [ glob *.cpp ] $(extra-sources) : $(requirements) ;
 }
 </programlisting>
-which would allow you to reduce the Jamfile to
+ allowing you to reduce the Jamfile to just
 <programlisting>
 glib codegen ;
 </programlisting>
     </para>
 
     <para>
- Note that because you can associate a custom generator with a target
- type, the logic of building can be rather compiler.
- <!-- "compiler" is not an adjective. The logic can't be "rather
- compiler." What you might mean here is completely
- mysterious to me -->
- For example, the
+ Note that because you can associate a custom generator with a target type,
+ the logic of building can be rather complicated. For example, the
       <code>boostbook</code> module declares a target type
- <code>BOOSTBOOK_MAIN</code> and a custom generator for that
- type. You can use that as example if your main target rule is
- non-trivial.
+ <code>BOOSTBOOK_MAIN</code> and a custom generator for that type. You can
+ use that as example if your main target rule is non-trivial.
     </para>
-
   </section>
 
   <section id="bbv2.extending.toolset_modules">
 
     <title>Toolset modules</title>
 
- <para>If your extensions will be used only on one project, they can be
- placed in a separate <filename>.jam</filename> file that will be
- imported by your <filename>project-root.jam</filename>. If the
- extensions will be used on many projects, users will thank you for
- a finishing touch.
+ <para>
+ If your extensions will be used only on one project, they can be placed in
+ a separate <filename>.jam</filename> file and imported by your
+ <filename>Jamroot.jam</filename>. If the extensions will be used on many
+ projects, users will thank you for a finishing touch.
     </para>
 
     <para>The <code>using</code> rule provides a standard mechanism

Modified: branches/proto/v3/tools/build/v2/doc/src/faq.xml
==============================================================================
--- branches/proto/v3/tools/build/v2/doc/src/faq.xml (original)
+++ branches/proto/v3/tools/build/v2/doc/src/faq.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -216,12 +216,12 @@
   </section>
 
   <section>
- <title>How to get the project-root location?
+ <title>How to get the project root (a.k.a. Jamroot.jam) location?
     </title>
 
- <para>You might want to use the location of the project-root in your
- Jamfiles. To do it, you'd need to declare path constant in your
- project-root.jam:
+ <para>
+ You might want to use your project's root location in your Jamfiles. To
+ access it just declare a path constant in your Jamroot.jam file using:
 <programlisting>
 path-constant TOP : . ;
 </programlisting>
@@ -264,7 +264,7 @@
     <para>(This entry is specific to Unix system.)Before answering the
       questions, let's recall a few points about shared libraries. Shared
       libraries can be used by several applications, or other libraries,
- without phisycally including the library in the application. This can
+ without physically including the library in the application. This can
       greatly decrease the total size of applications. It's also possible to
       upgrade a shared library when the application is already
       installed. Finally, shared linking can be faster.

Modified: branches/proto/v3/tools/build/v2/doc/src/reference.xml
==============================================================================
--- branches/proto/v3/tools/build/v2/doc/src/reference.xml (original)
+++ branches/proto/v3/tools/build/v2/doc/src/reference.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1436,10 +1436,10 @@
       <orderedlist>
         <listitem>
           <simpara>
- For each alternative <emphasis>condition</emphasis> is defined
- as the set of base properies in requirements. [Note: it might be
- better to specify the condition explicitly, as in
- conditional requirements].
+ For each alternative <emphasis>condition</emphasis> is defined as
+ the set of base properties in requirements. [Note: it might be
+ better to specify the condition explicitly, as in conditional
+ requirements].
           </simpara>
         </listitem>
         

Modified: branches/proto/v3/tools/build/v2/doc/src/tutorial.xml
==============================================================================
--- branches/proto/v3/tools/build/v2/doc/src/tutorial.xml (original)
+++ branches/proto/v3/tools/build/v2/doc/src/tutorial.xml 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -605,13 +605,12 @@
 lib demangler : demangler_msvc.cpp : &lt;toolset&gt;msvc ; # alternative 3
 </programlisting>
       When building <filename>demangler</filename>, Boost.Build will compare
- requirements for each alternative with build properties to find the best match.
- For example, when building with with <code>&lt;toolset&gt;gcc</code>
- alternative 2, will be selected, and when building with
- <code>&lt;toolset&gt;msvc</code> alternative 3 will be selected. In all other
- cases, the most generic alternative 1 will be built.
+ requirements for each alternative with build properties to find the best
+ match. For example, when building with <code>&lt;toolset&gt;gcc</code>
+ alternative 2, will be selected, and when building with
+ <code>&lt;toolset&gt;msvc</code> alternative 3 will be selected. In all
+ other cases, the most generic alternative 1 will be built.
     </para>
-
   </section>
 
   <section id="bbv2.tutorial.prebuilt">

Modified: branches/proto/v3/tools/build/v2/hacking.txt
==============================================================================
--- branches/proto/v3/tools/build/v2/hacking.txt (original)
+++ branches/proto/v3/tools/build/v2/hacking.txt 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,20 +1,20 @@
-Copyright 2003, 2006 Vladimir Prus
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+Copyright 2003, 2006 Vladimir Prus
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 
              ----------------------------------
              Boost.Build contributor guidelines
              ----------------------------------
 
-Boost.Build is an open-source project. This means that we welcome and
-appreciate all contributions --- be it ideas, bug reports, or patches.
-This document contains guidelines which helps to assure that development
-goes on smoothly, and changes are made quickly.
-
-The guidelines are not mandatory, and you can decide for yourself which one
-to follow. But note, that 10 mins that you spare writing a comment, for
-example, might lead to significally longer delay for everyone.
+Boost.Build is an open-source project. This means that we welcome and appreciate
+all contributions --- be it ideas, bug reports, or patches. This document
+contains guidelines which helps to assure that development goes on smoothly, and
+changes are made quickly.
+
+The guidelines are not mandatory, and you can decide for yourself which one to
+follow. But note, that 10 mins that you spare writing a comment, for example,
+might lead to significally longer delay for everyone.
 
 Before contributing, make sure you are subscribed to our mailing list
 
@@ -25,7 +25,7 @@
    - The issue tracker
      http://zigzag.cs.msu.su/boost.build
 
- - commits mailing list:
+ - commits mailing list:
      boost-build_at_[hidden]
      http://sourceforge.net/mailarchive/forum.php?forum_id=9097
 
@@ -37,8 +37,8 @@
 When reporting a bug, please try to provide the following information.
 
    - What you did. A minimal reproducible testcase is very much appreciated.
- Shell script with some annotations is much better than verbose description of
- the problem. A regression test is the best (see test/test_system.html).
+ Shell script with some annotations is much better than verbose description
+ of the problem. A regression test is the best (see test/test_system.html).
    - What you got.
    - What you expected.
    - What version of Boost.Build and Boost.Jam did you use. If possible,
@@ -53,48 +53,48 @@
   - provide a log message together with the patch
   - put the patch and the log message as attachment to your email.
 
-The purpose of log message serves to communicate what was changed, and
-*why*. Without a good log message, you might spend a lot of time later,
-wondering where a strange piece of code came from and why it was necessary.
+The purpose of log message serves to communicate what was changed, and *why*.
+Without a good log message, you might spend a lot of time later, wondering where
+a strange piece of code came from and why it was necessary.
 
 The good log message mentions each changed file and each rule/method, saying
 what happend to it, and why. Consider, the following log message
 
     Better direct request handling.
-
+
      * new/build-request.jam
        (directly-requested-properties-adjuster): Redo.
-
+
      * new/targets.jam
        (main-target.generate-really): Adjust properties here.
-
+
      * new/virtual-target.jam
        (register-actual-name): New rule.
        (virtual-target.actualize-no-scanner): Call the above, to detected bugs,
        where two virtual target correspond to one Jam target name.
-
-The log messages for the last two files are good. They tell what was
-changed. The change to the first file is clearly undercommented.
 
-It's OK to use terse log messages for uninteresting changes, like
-ones induces by interface changes elsewhere.
+The log messages for the last two files are good. They tell what was changed.
+The change to the first file is clearly undercommented.
+
+It's OK to use terse log messages for uninteresting changes, like ones induced
+by interface changes elsewhere.
 
 
 POLICIES.
 
 1. Testing.
 
-All serious changes must be tested. New rules must be tested by the module
-where they are declared. Test system (test/test_system.html) should be used
-to verify user-observable behaviour.
+All serious changes must be tested. New rules must be tested by the module where
+they are declared. Test system (test/test_system.html) should be used to verify
+user-observable behaviour.
 
 2. Documentation.
 
-It turns out that it's hard to have too much comments, but it's easy to have
-too little. Please prepend each rule with a comment saying what the rule does
-and what arguments mean. Stop for a minute and consider if the comment makes
-sense for anybody else, and completely describes what the rules does. Generic
-phrases like "adjusts properties" are really not enough.
+It turns out that it's hard to have too much comments, but it's easy to have too
+little. Please prepend each rule with a comment saying what the rule does and
+what arguments mean. Stop for a minute and consider if the comment makes sense
+for anybody else, and completely describes what the rules does. Generic phrases
+like "adjusts properties" are really not enough.
 
 When applicable, make changes to the user documentation as well.
 
@@ -106,8 +106,8 @@
 
         rule call-me-ishmael ( ) ...
 
- 2. Names with dots in them are "intended globals". Ordinary globals use
- a dot prefix:
+ 2. Names with dots in them are "intended globals". Ordinary globals use a
+ dot prefix:
 
         .foobar
         $(.foobar)
@@ -142,12 +142,12 @@
     Please pass HTML files though HTML Tidy (http://tidy.sf.net) before
     comitting. This has to important purposes:
     - detecting bad HTML
- - converting files to uniform indentation style, which inverses effect
- of different editors and makes differences between revisions much
- smaller and easy for review.
+ - converting files to uniform indentation style, which inverses effect of
+ different editors and makes differences between revisions much smaller and
+ easy for review.
 
- Alas, the way Tidy indents HTML differs between version. Please use
- the version awailable at
+ Alas, the way Tidy indents HTML differs between version. Please use the
+ version available at
 
        http://tidy.sourceforge.net/src/old/tidy_src_020411.tgz
 

Modified: branches/proto/v3/tools/build/v2/kernel/bootstrap.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/kernel/bootstrap.jam (original)
+++ branches/proto/v3/tools/build/v2/kernel/bootstrap.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -118,7 +118,7 @@
 import option ;
 local dont-build = [ option.process ] ;
 
-# Should we skip building, i.e. loding the build system, according
+# Should we skip building, i.e. loading the build system, according
 # to the options processed?
 #
 if ! $(dont-build)
@@ -131,4 +131,3 @@
     # Use last element in case of multiple command-line options
     import $(build-system[-1]) ;
 }
-

Modified: branches/proto/v3/tools/build/v2/kernel/errors.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/kernel/errors.jam (original)
+++ branches/proto/v3/tools/build/v2/kernel/errors.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,50 +1,48 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2004 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# Print a stack backtrace leading to this rule's caller. Each
-# argument represents a line of output to be printed after the first
-# line of the backtrace.
+# Copyright 2003 Dave Abrahams
+# Copyright 2004 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Print a stack backtrace leading to this rule's caller. Each argument
+# represents a line of output to be printed after the first line of the
+# backtrace.
 rule backtrace ( skip-frames prefix messages * : * )
 {
     local frame-skips = 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 ;
     local drop-elements = $(frame-skips[$(skip-frames)]) ;
     if ! ( $(skip-frames) in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 )
     {
- ECHO warning: backtrace doesn't support skipping
- $(skip-frames) frames; using 1 instead. ;
+ ECHO warning: backtrace doesn't support skipping $(skip-frames) frames;
+ using 1 instead. ;
         drop-elements = 5 ;
     }
-
- local args = $(.args) ;
+
+ local args = $(.args) ;
     if $(.user-modules-only)
     {
         local bt = [ nearest-user-location ] ;
         ECHO "$(prefix) at $(bt) " ;
         for local n in $(args)
- {
+ {
             if $($(n))-is-not-empty
             {
                 ECHO $(prefix) $($(n)) ;
             }
- }
+ }
     }
     else
     {
- # get the whole backtrace, then drop the initial quadruples
+ # Get the whole backtrace, then drop the initial quadruples
         # corresponding to the frames that must be skipped.
         local bt = [ BACKTRACE ] ;
- bt = $(bt[$(drop-elements)-]) ;
-
+ bt = $(bt[$(drop-elements)-]) ;
+
         while $(bt)
         {
             local m = [ MATCH ^(.+)\\.$ : $(bt[3]) ] ;
             ECHO $(bt[1]):$(bt[2]): "in" $(bt[4]) "from module" $(m) ;
-
-
- # the first time through, print each argument on a separate
- # line
+
+ # The first time through, print each argument on a separate line.
             for local n in $(args)
             {
                 if $($(n))-is-not-empty
@@ -52,39 +50,40 @@
                     ECHO $(prefix) $($(n)) ;
                 }
             }
- args = ; # kill args so that this never happens again
-
- # Move on to the next quadruple
+ args = ; # Kill args so that this never happens again.
+
+ # Move on to the next quadruple.
             bt = $(bt[5-]) ;
         }
- }
+ }
 }
 
 .args ?= messages 2 3 4 5 6 7 8 9 ;
 .disabled ?= ;
-.last-error-$(.args) ?= ;
+.last-error-$(.args) ?= ;
+
 
 # try-catch --
 #
-# This is not really an exception-handling mechanism, but it does
-# allow us to perform some error-checking on our
-# error-checking. Errors are suppressed after a try, and the first one
-# is recorded. Use catch to check that the error message matched
-# expectations.
+# This is not really an exception-handling mechanism, but it does allow us to
+# perform some error-checking on our error-checking. Errors are suppressed after
+# a try, and the first one is recorded. Use catch to check that the error
+# message matched expectations.
 
-# begin looking for error messages
+# Begin looking for error messages.
 rule try ( )
 {
     .disabled += true ;
     .last-error-$(.args) = ;
 }
 
-# stop looking for error messages; generate an error if an argument of
-# messages is not found in the corresponding argument in the error call.
+
+# Stop looking for error messages; generate an error if an argument of messages
+# is not found in the corresponding argument in the error call.
 rule catch ( messages * : * )
 {
- .disabled = $(.disabled[2-]) ; # pop the stack
-
+ .disabled = $(.disabled[2-]) ; # Pop the stack.
+
     import sequence ;
 
     if ! $(.last-error-$(.args))-is-nonempty
@@ -109,6 +108,7 @@
     }
 }
 
+
 rule error-skip-frames ( skip-frames messages * : * )
 {
     if ! $(.disabled)
@@ -122,12 +122,12 @@
         {
             # Add an extra empty string so that we always have
             # something in the event of an error
- .last-error-$(n) = $($(n)) "" ;
+ .last-error-$(n) = $($(n)) "" ;
         }
     }
 }
 
-if --no-error-backtrace in [ modules.peek : ARGV ]
+if --no-error-backtrace in [ modules.peek : ARGV ]
 {
     .no-error-backtrace = true ;
 }
@@ -144,24 +144,25 @@
             if $($(n))-is-not-empty
             {
                 if ! $(first-printed)
- {
+ {
                     ECHO error: $($(n)) ;
                     first-printed = true ;
                 }
                 else
                 {
- ECHO $($(n)) ;
- }
+ ECHO $($(n)) ;
+ }
             }
- }
+ }
         EXIT ;
     }
     else
- {
+ {
         error-skip-frames 3 $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
- }
+ }
 }
 
+
 # Same as 'error', but the generated backtrace will include only user files.
 rule user-error ( messages * : * )
 {
@@ -176,10 +177,11 @@
     backtrace 2 warning: $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
 }
 
-# convert an arbitrary argument list into a list with ":" separators
-# and quoted elements representing the same information. This is
-# mostly useful for formatting descriptions of the arguments with
-# which a rule was called when reporting an error.
+
+# Convert an arbitrary argument list into a list with ":" separators and quoted
+# elements representing the same information. This is mostly useful for
+# formatting descriptions of arguments with which a rule was called when
+# reporting an error.
 rule lol->list ( * )
 {
     local result ;
@@ -188,7 +190,7 @@
     {
         local n = $(remaining[1]) ;
         remaining = $(remaining[2-]) ;
-
+
         if $(n) != 1
         {
             result += ":" ;
@@ -198,49 +200,50 @@
     return $(result) ;
 }
 
-# Return the file:line for the nearest entry in backtrace which correspond
-# to a user module.
+
+# Return the file:line for the nearest entry in backtrace which correspond to a
+# user module.
 rule nearest-user-location ( )
 {
     local bt = [ BACKTRACE ] ;
-
+
     local result ;
     while $(bt) && ! $(result)
     {
         local m = [ MATCH ^(.+)\\.$ : $(bt[3]) ] ;
         local user-modules = ([Jj]amroot(.jam|.v2|)|([Jj]amfile(.jam|.v2|)|user-config.jam|site-config.jam|project-root.jam) ;
-
- if [ MATCH $(user-modules) : $(bt[1]:D=) ]
- {
+
+ if [ MATCH $(user-modules) : $(bt[1]:D=) ]
+ {
             result = $(bt[1]):$(bt[2]) ;
- }
+ }
         bt = $(bt[5-]) ;
     }
     return $(result) ;
 }
 
-# If optimized rule is available in jam, use it.
-if NEAREST_USER_LOCATION in [ RULENAMES ]
+
+# If optimized rule is available in Jam, use it.
+if NEAREST_USER_LOCATION in [ RULENAMES ]
 {
     rule nearest-user-location ( )
     {
         local r = [ NEAREST_USER_LOCATION ] ;
         return $(r[1]):$(r[2]) ;
- }
+ }
 }
 
 
-
 rule __test__ ( )
 {
- # show that we can correctly catch an expected error
+ # Show that we can correctly catch an expected error.
     try ;
     {
         error an error occurred : somewhere ;
     }
     catch an error occurred : somewhere ;
-
- # show that unexpected errors generate real errors
+
+ # Show that unexpected errors generate real errors.
     try ;
     {
         try ;
@@ -250,9 +253,8 @@
         catch an error occurred : nowhere ;
     }
     catch expected \"nowhere\" in argument 2 ;
-
- # show that not catching an error where one was expected is an
- # error
+
+ # Show that not catching an error where one was expected is an error.
     try ;
     {
         try ;

Modified: branches/proto/v3/tools/build/v2/kernel/modules.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/kernel/modules.jam (original)
+++ branches/proto/v3/tools/build/v2/kernel/modules.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,22 +1,24 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2003, 2005 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2003, 2005 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-# Essentially an include guard; ensures that no module is loaded multiple times
+# Essentially an include guard; ensures that no module is loaded multiple times.
 .loaded ?= ;
 
-# A list of modules currently being loaded for error reporting of circular dependencies
+# A list of modules currently being loaded for error reporting of circular
+# dependencies.
 .loading ?= ;
 
-# A list of modules needing to be tested via __test__ rule
+# A list of modules needing to be tested via __test__ rule.
 .untested ?= ;
 
-# A list of modules which have been tested via __test__
+# A list of modules which have been tested via __test__.
 .tested ?= ;
 
-# meant to be invoked from import when no __test__ rule is defined in a given
-# module
+
+# Meant to be invoked from import when no __test__ rule is defined in the given
+# module.
 local rule no-test-defined
 {
     import modules ;
@@ -26,15 +28,17 @@
     }
 }
 
-# return the binding of the given module
+
+# Return the binding of the given module.
 rule binding ( module )
 {
     return $($(module).__binding__) ;
 }
 
-# Sets the module-local value of a variable. This is the most
-# reliable way to set a module-local variable in a different module;
-# it eliminates issues of name shadowing due to dynamic scoping.
+
+# Sets the module-local value of a variable. This is the most reliable way to
+# set a module-local variable in a different module; it eliminates issues of
+# name shadowing due to dynamic scoping.
 rule poke ( module-name ? : variables + : value * )
 {
     module $(<)
@@ -43,10 +47,10 @@
     }
 }
 
-# Returns the module-local value of a variable. This is the most
-# reliable way to examine a module-local variable in a different
-# module; it eliminates issues of name shadowing due to dynamic
-# scoping.
+
+# Returns the module-local value of a variable. This is the most reliable way to
+# examine a module-local variable in a different module; it eliminates issues of
+# name shadowing due to dynamic scoping.
 rule peek ( module-name ? : variables + )
 {
     module $(<)
@@ -55,10 +59,11 @@
     }
 }
 
-# Call the given rule locally in the given module. Use this for rules
-# which accept rule names as arguments, so that the passed rule may be
-# invoked in the context of the rule's caller (for example, if the
-# rule accesses module globals or is a local rule).
+
+# Call the given rule locally in the given module. Use this for rules accepting
+# rule names as arguments, so that the passed rule may be invoked in the context
+# of the rule's caller (for example, if the rule accesses module globals or is a
+# local rule).
 rule call-in ( module-name ? : rule-name args * : * )
 {
     module $(module-name)
@@ -67,65 +72,66 @@
     }
 }
 
-# Given a possibly qualified rule name and arguments, remove any
-# initial module qualification from the rule and invoke it in that
-# module. If there is no module qualification, the rule is invoked in
-# the global module.
+
+# Given a possibly qualified rule name and arguments, remove any initial module
+# qualification from the rule and invoke it in that module. If there is no
+# module qualification, the rule is invoked in the global module.
 rule call-locally ( qualified-rule-name args * : * )
 {
     local module-rule = [ MATCH (.*)\\.(.*) : $(qualified-rule-name) ] ;
     local rule-name = $(module-rule[2]) ;
     rule-name ?= $(qualified-rule-name) ;
- return [
- call-in $(module-rule[1])
- : $(rule-name) $(args) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9)
- ] ;
+ return [ call-in $(module-rule[1]) : $(rule-name) $(args)
+ : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ] ;
 }
 
-# load the indicated module if it is not already loaded.
+
+# Load the indicated module if it is not already loaded.
 rule load (
- module-name # name of module to load. Rules will be defined in this module
- : filename ? # (partial) path to file; Defaults to $(module-name).jam
- : search * # Directories in which to search for filename. Defaults to $(BOOST_BUILD_PATH)
+ module-name # Name of module to load. Rules will be defined in this
+ # module.
+ : filename ? # (partial) path to file; Defaults to $(module-name).jam.
+ : search * # Directories in which to search for filename. Defaults to
+ # $(BOOST_BUILD_PATH).
 )
 {
     # Avoid loading modules twice
     if ! ( $(module-name) in $(.loaded) )
     {
         filename ?= $(module-name).jam ;
-
- # Mark the module loaded so we don't try to load it recursively
+
+ # Mark the module loaded so we don't try to load it recursively.
         .loaded += $(module-name) ;
-
- # suppress tests if any module loads are already in progress.
+
+ # Suppress tests if any module loads are already in progress.
         local suppress-test = $(.loading[1]) ;
-
- # Push this module on the loading stack
+
+ # Push this module on the loading stack.
         .loading += $(module-name) ;
-
- # Remember that it's untested
- .untested += $(module-name) ;
-
- # Insert the new module's __name__ and __file__ globals
+
+ # Remember that it's untested.
+ .untested += $(module-name) ;
+
+ # Insert the new module's __name__ and __file__ globals.
         poke $(module-name) : __name__ : $(module-name) ;
         poke $(module-name) : __file__ : $(filename) ;
-
+
         module $(module-name)
         {
- # Prepare a default behavior, in case no __test__ is defined.
+ # Prepare default behavior, in case no __test__ is defined.
             IMPORT modules : no-test-defined : $(__name__) : __test__ ;
 
- # Add some grist so that the module will have a unique target name
+ # Add some grist so that the module will have a unique target name.
             local module-target = $(__file__:G=module@) ;
-
+
             local search = $(3) ;
             search ?= [ modules.peek : BOOST_BUILD_PATH ] ;
             SEARCH on $(module-target) = $(search) ;
             BINDRULE on $(module-target) = modules.record-binding ;
-
+
             include $(module-target) ;
-
- # Allow the module to see its own names with full qualification
+
+ # Allow the module to see its own names with full qualification.
             local rules = [ RULENAMES $(__name__) ] ;
             IMPORT $(__name__) : $(rules) : $(__name__) : $(__name__).$(rules) ;
         }
@@ -133,40 +139,41 @@
         if $(module-name) != modules && ! [ binding $(module-name) ]
         {
             import errors ;
- errors.error "couldn't find module" $(module-name) in $(search) ;
+ errors.error "Couldn't find module" $(module-name) in $(search) ;
         }
-
- # Pop the loading stack. Must happen before testing or we'll find a circular loading dependency
+
+ # Pop the loading stack. Must happen before testing or we'll run into a
+ # circular loading dependency.
         .loading = $(.loading[1--2]) ;
-
- # Run any pending tests if this is an outer load
+
+ # Run any pending tests if this is an outer load.
         if ! $(suppress-test)
         {
             local argv = [ peek : ARGV ] ;
             for local m in $(.untested)
             {
- if ( ! $(m) in $(.tested) ) # avoid recursive test invocations
- && ( ( --debug in $(argv) ) || ( --debug-module=$(m) in $(argv) ) )
+ if ( ! $(m) in $(.tested) ) # Avoid recursive test invocations.
+ && ( ( --debug in $(argv) ) || ( --debug-module=$(m) in $(argv) ) )
                 {
                     .tested += $(m) ;
                     if ! ( --quiet in $(argv) )
                     {
                         ECHO testing module $(m)... ;
                     }
-
- # Import m's rules into __test-$(m)__ for easy access
+
+ # Import m's rules into __test-$(m)__ for easy access.
                     IMPORT $(m) : [ RULENAMES $(m) ] : __test-$(m)__ : [ RULENAMES $(m) ] ;
-
- # execute the module's __test__ rule in its own module to
- # eliminate the inadvertent effects of testing
- # module dependencies (such as assert) on the module itself.
+
+ # Execute the module's __test__ rule in its own module to
+ # eliminate the inadvertent effects of testing module
+ # dependencies (such as assert) on the module itself.
                     IMPORT $(m) : __test__ : __test-$(m)__ : __test__ : LOCALIZE ;
-
+
                     module __test-$(m)__
                     {
- # set up the name of the module we're testing
- # so that no-test-defined can find it.
- __module__ = $(1) ;
+ # Set up the name of the module we're testing so that
+ # no-test-defined can find it.
+ __module__ = $(1) ;
                         __test__ ;
                     }
                 }
@@ -178,23 +185,24 @@
     {
         import errors ;
         errors.error loading \"$(module-name)\"
- : circular module loading dependency:
- : $(.loading)" ->" $(module-name) ;
+ : circular module loading dependency:
+ : $(.loading)" ->" $(module-name) ;
     }
 }
 
-# This helper is used by load (above) to record the binding (path) of
-# each loaded module.
+
+# This helper is used by load (above) to record the binding (path) of each
+# loaded module.
 rule record-binding ( module-target : binding )
 {
     $(.loading[-1]).__binding__ = $(binding) ;
 }
 
-# Transform each path in the list, with all backslashes converted to
-# forward slashes and all detectable redundancy removed. Something
-# like this is probably needed in path.jam, but I'm not sure of that,
-# I don't understand it, and I'm not ready to move all of path.jam
-# into the kernel.
+
+# Transform each path in the list, with all backslashes converted to forward
+# slashes and all detectable redundancy removed. Something like this is probably
+# needed in path.jam, but I'm not sure of that, I don't understand it, and I'm
+# not ready to move all of path.jam into the kernel.
 local rule normalize-raw-paths ( paths * )
 {
     local result ;
@@ -205,64 +213,62 @@
     return $(result) ;
 }
 
+
 .cwd = [ PWD ] ;
 
 
-# load the indicated module and import rule names into the current
-# module. Any members of rules-opt will be available without
-# qualification in the caller's module. Any members of rename-opt will
-# be taken as the names of the rules in the caller's module, in place
-# of the names they have in the imported module. If rules-opt = '*',
-# all rules from the indicated module are imported into the caller's
-# module. If rename-opt is supplied, it must have the same number of
+# Load the indicated module and import rule names into the current module. Any
+# members of rules-opt will be available without qualification in the caller's
+# module. Any members of rename-opt will be taken as the names of the rules in
+# the caller's module, in place of the names they have in the imported module.
+# If rules-opt = '*', all rules from the indicated module are imported into the
+# caller's module. If rename-opt is supplied, it must have the same number of
 # elements as rules-opt.
 rule import ( module-names + : rules-opt * : rename-opt * )
 {
- if $(rules-opt) = * || ! $(rules-opt)
+ if ( $(rules-opt) = * || ! $(rules-opt) ) && $(rename-opt)
     {
- if $(rename-opt)
- {
- errors.error "rule aliasing is only available for explicit imports." ;
- }
+ errors.error "Rule aliasing is only available for explicit imports." ;
     }
-
+
     if $(module-names[2]) && ( $(rules-opt) || $(rename-opt) )
     {
- errors.error when loading multiple modules, no specific rules or renaming is allowed ;
+ errors.error "When loading multiple modules, no specific rules or"
+ "renaming is allowed" ;
     }
-
- local caller = [ CALLER_MODULE ] ;
-
+
+ local caller = [ CALLER_MODULE ] ;
+
     # Import each specified module
     for local m in $(module-names)
     {
         if ! $(m) in $(.loaded)
- {
- # if the importing module isn't already in the BOOST_BUILD_PATH,
- # prepend it to the path. We don't want to invert the search
- # order of modules that are already there.
-
- local caller-location ;
+ {
+ # If the importing module isn't already in the BOOST_BUILD_PATH,
+ # prepend it to the path. We don't want to invert the search order
+ # of modules that are already there.
+
+ local caller-location ;
             if $(caller)
             {
                 caller-location = [ binding $(caller) ] ;
                 caller-location = $(caller-location:D) ;
                 caller-location = [ normalize-raw-paths $(caller-location:R=$(.cwd)) ] ;
             }
-
+
             local search = [ peek : BOOST_BUILD_PATH ] ;
             search = [ normalize-raw-paths $(search:R=$(.cwd)) ] ;
-
+
             if $(caller-location) && ! $(caller-location) in $(search)
             {
                 search = $(caller-location) $(search) ;
             }
-
+
             load $(m) : : $(search) ;
         }
-
+
         IMPORT_MODULE $(m) : $(caller) ;
-
+
         if $(rules-opt)
         {
             local source-names ;
@@ -282,50 +288,49 @@
     }
 }
 
-# Define exported copies in $(target-module) of all rules exported
-# from $(source-module). Also make them available in the global
-# module with qualification, so that it is just as though the rules
-# were defined originally in $(target-module).
-rule clone-rules (
- source-module
- target-module
- )
+# Define exported copies in $(target-module) of all rules exported from
+# $(source-module). Also make them available in the global module with
+# qualification, so that it is just as though the rules were defined originally
+# in $(target-module).
+rule clone-rules ( source-module target-module )
 {
     local rules = [ RULENAMES $(source-module) ] ;
-
+
     IMPORT $(source-module) : $(rules) : $(target-module) : $(rules) : LOCALIZE ;
     EXPORT $(target-module) : $(rules) ;
     IMPORT $(target-module) : $(rules) : : $(target-module).$(rules) ;
 }
 
-# These rules need to be available in all modules to implement
-# module loading itself and other fundamental operations.
+
+# These rules need to be available in all modules to implement module loading
+# itself and other fundamental operations.
 local globalize = peek poke record-binding ;
 IMPORT modules : $(globalize) : : modules.$(globalize) ;
 
+
 local rule __test__ ( )
 {
     import assert ;
     import modules : normalize-raw-paths ;
-
+
     module modules.__test__
     {
         foo = bar ;
     }
-
+
     assert.result bar : peek modules.__test__ : foo ;
+
     poke modules.__test__ : foo : bar baz ;
     assert.result bar baz : peek modules.__test__ : foo ;
+
     assert.result c:/foo/bar : normalize-raw-paths c:/x/../foo/./xx/yy/../../bar ;
- assert.result . : normalize-raw-paths . ;
- assert.result .. : normalize-raw-paths .. ;
- assert.result ../.. : normalize-raw-paths ../.. ;
- assert.result .. : normalize-raw-paths ./.. ;
- assert.result / / : normalize-raw-paths / \\ ;
- assert.result a : normalize-raw-paths a ;
- assert.result a : normalize-raw-paths a/ ;
- assert.result /a : normalize-raw-paths /a/ ;
- assert.result / : normalize-raw-paths /a/.. ;
+ assert.result . : normalize-raw-paths . ;
+ assert.result .. : normalize-raw-paths .. ;
+ assert.result ../.. : normalize-raw-paths ../.. ;
+ assert.result .. : normalize-raw-paths ./.. ;
+ assert.result / / : normalize-raw-paths / \\ ;
+ assert.result a : normalize-raw-paths a ;
+ assert.result a : normalize-raw-paths a/ ;
+ assert.result /a : normalize-raw-paths /a/ ;
+ assert.result / : normalize-raw-paths /a/.. ;
 }
-
-

Modified: branches/proto/v3/tools/build/v2/notes/build_dir_option.txt
==============================================================================
--- branches/proto/v3/tools/build/v2/notes/build_dir_option.txt (original)
+++ branches/proto/v3/tools/build/v2/notes/build_dir_option.txt 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
-Copyright 2005 Vladimir Prus
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+Copyright 2005 Vladimir Prus
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 
 Summary
@@ -41,15 +41,15 @@
 
    project foo : build-dir /tmp/build/foo/bin.v2 ;
 
-We can't drop "bin.v2" because it's quite possible that the name of build
-dir have specific meaning. For example, it can be used to
-separate Boost.Build V2 and V1 build results.
+We can't drop "bin.v2" because it's quite possible that the name of build dir
+have specific meaning. For example, it can be used to separate Boost.Build V1
+and V2 build results.
 
-The --build-dir option has no effect if Jamroot does not define any project
-id. Dowing otherwise can lead to nasty problems if we're building two distinct
+The --build-dir option has no effect if Jamroot does not define any project id.
+Doing otherwise can lead to nasty problems if we're building two distinct
 projects (that is with two different Jamroot). They'll get the same build
-directory. Most likely, user will see
-the "duplicate target" error, which is generally confusing.
+directory. Most likely, user will see the "duplicate target" error, which is
+generally confusing.
 
 It is expected that any non-trivial project will have top-level "project"
 invocation with non empty id, so the above limitation is not so drastic.
@@ -57,24 +57,21 @@
 is specified.
 
 Here's the exact behavior of the --build-dir option. If we're loading a
-Jamfile (either root or non-root), that declare some project id and some
+Jamfile (either root or non-root), that declare some project id and some
 build-dir attribute, the following table gives the value of build-dir
 that will actually be used.
 
-
-Root? Id Build-dir attribute Resulting build dir
-yes none * --build-dir is ignored, with warning
-yes 'foo' none /tmp/build/foo
-yes 'foo' 'bin.v2' /tmp/build/foo/bin.v2
-yes 'foo' '/tmp/bar' Error [1]
-no * none --build-dir has no effect, inherited build dir is used
-no * non-empty Error [2]
-
+-------------------------------------------------------------------------------
+Root? Id Build-dir attribute Resulting build dir
+-------------------------------------------------------------------------------
+yes none * --build-dir is ignored, with warning
+yes 'foo' none /tmp/build/foo
+yes 'foo' 'bin.v2' /tmp/build/foo/bin.v2
+yes 'foo' '/tmp/bar' Error [1]
+no * none --build-dir has no effect, inherited
+ build dir is used
+no * non-empty Error [2]
+-------------------------------------------------------------------------------
 [1] -- not clear what to do
-[2] -- can be made to work, but non-empty build-dir
+[2] -- can be made to work, but non-empty build-dir
 attribute in non-root Jamfile does not make much sense even without --build-dir
-
-
-
-
-

Modified: branches/proto/v3/tools/build/v2/options/help.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/options/help.jam (original)
+++ branches/proto/v3/tools/build/v2/options/help.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -25,15 +25,16 @@
 
 # The help system options are parsed here and handed off to the doc
 # module to translate into documentation requests and actions. The
-# understood options are::
+# understood options are:
 #
-# --help-all
-# --help-enable-<option>
 # --help-disable-<option>
-# --help-output <type>
-# --help-output-file <file>
+# --help-doc-options
+# --help-enable-<option>
+# --help-internal
 # --help-options
 # --help-usage
+# --help-output <type>
+# --help-output-file <file>
 # --help [<module-or-class>]
 #
 rule process (

Modified: branches/proto/v3/tools/build/v2/roll.sh
==============================================================================
--- branches/proto/v3/tools/build/v2/roll.sh (original)
+++ branches/proto/v3/tools/build/v2/roll.sh 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -23,10 +23,7 @@
 rm -rf example/versioned
 
 # Remove unnecessary top-level files
-find . -maxdepth 1 -type f | egrep -v "timestamp.txt|roll.sh|bootstrap.jam|build-system.jam|boost_build_v2.html|boost_build.png|index.html|hacking.txt|site-config.jam|user-config.jam" | xargs rm -f
-
-# Prepare some more files.
-echo -e "boost-build kernel ;\n" > boost-build.jam
+find . -maxdepth 1 -type f | egrep -v "boost-build.jam|timestamp.txt|roll.sh|bootstrap.jam|build-system.jam|boost_build.png|index.html|hacking.txt|site-config.jam|user-config.jam" | xargs rm -f
 
 # Build the documentation
 touch doc/project-root.jam

Modified: branches/proto/v3/tools/build/v2/test/BoostBuild.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/BoostBuild.py (original)
+++ branches/proto/v3/tools/build/v2/test/BoostBuild.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,29 +6,28 @@
 # http://www.boost.org/LICENSE_1_0.txt)
 
 import TestCmd
-from tree import build_tree, trees_difference
 import copy
 import fnmatch
 import glob
+import math
 import os
 import re
 import shutil
 import string
-import types
-import time
-import tempfile
+import StringIO
 import sys
+import tempfile
+import time
 import traceback
-import math
-from StringIO import StringIO
+import tree
+import types
 
-annotation_func = None
 
 annotations = []
 
+
 def print_annotation(name, value):
- """Writes some named bit of information about test
- run.
+ """Writes some named bits of information about test run.
     """
     print name + " {{{"
     print value
@@ -41,18 +40,23 @@
         print_annotation(ann[0], ann[1])
     annotations = []
 
+
 defer_annotations = 0
 
+
 def set_defer_annotations(n):
     global defer_annotations
     defer_annotations = n
 
+
 def annotation(name, value):
- """Records an annotation about test run."""
+ """Records an annotation about the test run.
+ """
     annotations.append((name, value))
     if not defer_annotations:
         flush_annotations()
 
+
 def get_toolset():
     toolset = None;
     for arg in sys.argv[1:]:
@@ -60,17 +64,22 @@
             toolset = arg
     return toolset or 'gcc'
 
-windows = 0
+
+# Detect the host OS.
+windows = False
 if os.environ.get('OS','').lower().startswith('windows') or \
        os.__dict__.has_key('uname') and \
        os.uname()[0].lower().startswith('cygwin'):
- windows = 1
+ windows = True
+
 
 suffixes = {}
 
+
 # Prepare the map of suffixes
 def prepare_suffix_map(toolset):
- global windows, suffixes
+ global windows
+ global suffixes
     suffixes = {'.exe': '', '.dll': '.so', '.lib': '.a', '.obj': '.o'}
     suffixes['.implib'] = '.no_implib_files_on_this_platform'
     if windows:
@@ -82,7 +91,8 @@
     if os.__dict__.has_key('uname') and os.uname()[0] == 'Darwin':
         suffixes['.dll'] = '.dylib'
 
-def re_remove(sequence,regex):
+
+def re_remove(sequence, regex):
     me = re.compile(regex)
     result = filter( lambda x: me.match(x), sequence )
     if 0 == len(result):
@@ -90,26 +100,29 @@
     for r in result:
         sequence.remove(r)
 
-def glob_remove(sequence,pattern):
+
+def glob_remove(sequence, pattern):
     result = fnmatch.filter(sequence,pattern)
     if 0 == len(result):
         raise ValueError()
     for r in result:
         sequence.remove(r)
 
-lib_prefix = 1
-dll_prefix = 1
+
+# Configuration stating whether Boost Build is expected to automatically prepend
+# prefixes to built library targets.
+lib_prefix = True
+dll_prefix = True
 if windows:
- #~ lib_prefix = 0
- dll_prefix = 0
-
-
+ dll_prefix = False
+
+
 #
 # FIXME: this is copy-pasted from TestSCons.py
 # Should be moved to TestCmd.py?
 #
 if os.name == 'posix':
- def _failed(self, status = 0):
+ def _failed(self, status=0):
         if self.status is None:
             return None
         if os.WIFSIGNALED(status):
@@ -121,7 +134,7 @@
         else:
             return -1
 elif os.name == 'nt':
- def _failed(self, status = 0):
+ def _failed(self, status=0):
         return not self.status is None and self.status != status
     def _status(self):
         return self.status
@@ -129,28 +142,28 @@
 class Tester(TestCmd.TestCmd):
     """Class for testing Boost.Build.
 
- Optional argument `executable` indicates the name of the
- executable to invoke. Set this to "jam" to test Boost.Build v1
- behavior.
+ Optional argument `executable` indicates the name of the executable to
+ invoke. Set this to "jam" to test Boost.Build v1 behavior.
 
- Optional argument `work_dir` indicates an absolute directory,
- where the test will run be run.
+ Optional argument `work_dir` indicates an absolute directory, where the test
+ will run be run.
     """
- def __init__(self, arguments="", executable = 'bjam', match =
- TestCmd.match_exact, boost_build_path = None,
- translate_suffixes = 1, pass_toolset = 1,
- workdir = '',
- **keywords):
+ def __init__(self, arguments="", executable="bjam",
+ match=TestCmd.match_exact, boost_build_path=None,
+ translate_suffixes=True, pass_toolset=True, use_test_config=True,
+ ignore_toolset_requirements=True, workdir="", **keywords):
 
         self.original_workdir = os.getcwd()
         if workdir != '' and not os.path.isabs(workdir):
- raise "Parameter workdir <"+workdir+"> must point to a absolute directory: "
+ raise "Parameter workdir <"+workdir+"> must point to an absolute directory: "
 
         self.last_build_time = 0
         self.translate_suffixes = translate_suffixes
+ self.use_test_config = use_test_config
 
         self.toolset = get_toolset()
         self.pass_toolset = pass_toolset
+ self.ignore_toolset_requirements = ignore_toolset_requirements
 
         prepare_suffix_map(pass_toolset and self.toolset or 'gcc')
 
@@ -183,21 +196,18 @@
                 elif os.uname()[0] == "OSF1":
                     jam_build_dir = "bin.osf"
                 else:
- raise "Don't know directory where jam is build for this system: " + os.name + "/" + os.uname()[0]
+ raise "Don't know directory where Jam is built for this system: " + os.name + "/" + os.uname()[0]
             else:
- raise "Don't know directory where jam is build for this system: " + os.name
-
- # Find there jam_src is located.
- # try for the debug version if it's lying around
+ raise "Don't know directory where Jam is built for this system: " + os.name
 
+ # Find where jam_src is located. Try for the debug version if it's
+ # lying around.
             dirs = [os.path.join('../../../jam/src', jam_build_dir + '.debug'),
                     os.path.join('../../../jam/src', jam_build_dir),
                     os.path.join('../../jam_src', jam_build_dir + '.debug'),
                     os.path.join('../../jam_src', jam_build_dir),
                     os.path.join('../jam_src', jam_build_dir + '.debug'),
- os.path.join('../jam_src', jam_build_dir),
- ]
-
+ os.path.join('../jam_src', jam_build_dir)]
             for d in dirs:
                 if os.path.exists(d):
                     jam_build_dir = d
@@ -215,7 +225,7 @@
             boost_build_path = self.original_workdir
 
         program_list = []
-
+
         if '--default-bjam' in sys.argv:
             program_list.append(executable)
             inpath_bjam = True
@@ -225,7 +235,6 @@
         program_list.append('-sBOOST_BUILD_PATH=' + boost_build_path)
         if verbosity:
             program_list += verbosity
- program_list += ["--ignore-toolset-requirements"]
         if arguments:
             program_list += arguments.split(" ")
 
@@ -233,8 +242,8 @@
             self
             , program=program_list
             , match=match
- , workdir = workdir
- , inpath = inpath_bjam
+ , workdir=workdir
+ , inpath=inpath_bjam
             , **keywords)
 
         os.chdir(self.workdir)
@@ -244,22 +253,22 @@
             TestCmd.TestCmd.cleanup(self)
             os.chdir(self.original_workdir)
         except AttributeError:
- # Whe this is called during by TestCmd.TestCmd.__del__ we can have both
- # 'TestCmd' and 'os' unavailable in our scope. Do nothing in this case.
+ # When this is called during by TestCmd.TestCmd.__del__ we can have
+ # both 'TestCmd' and 'os' unavailable in our scope. Do nothing in
+ # this case.
             pass
-
+
     #
- # Methods that change working directory's content
+ # Methods that change the working directory's content.
     #
     def set_tree(self, tree_location):
- # Seem like it's not possible to remove a directory which is
- # current.
+ # Seems like it's not possible to remove the current a directory.
         d = os.getcwd()
         os.chdir(os.path.dirname(self.workdir))
- shutil.rmtree(self.workdir, ignore_errors=0)
+ shutil.rmtree(self.workdir, ignore_errors=False)
 
         if not os.path.isabs(tree_location):
- tree_location = os.path.join(self.original_workdir, tree_location)
+ tree_location = os.path.join(self.original_workdir, tree_location)
         shutil.copytree(tree_location, self.workdir)
 
         os.chdir(d)
@@ -271,7 +280,6 @@
 
         os.path.walk(".", make_writable, None)
 
-
     def write(self, file, content):
         self.wait_for_time_change()
         nfile = self.native_file_name(file)
@@ -286,12 +294,12 @@
             os.makedirs(os.path.dirname(new))
         except:
             pass
-
+
         try:
             os.remove(new)
         except:
             pass
-
+
         os.rename(old, new)
         self.touch(new);
 
@@ -305,10 +313,10 @@
     def copy_preserving_timestamp(self, src, dst):
         src_name = self.native_file_name(src)
         dst_name = self.native_file_name(dst)
- stats = os.stat(src_name)
+ stats = os.stat(src_name)
         self.write(dst, self.read(src, 1))
         os.utime(dst_name, (stats.st_atime, stats.st_mtime))
-
+
     def touch(self, names):
         self.wait_for_time_change()
         for name in self.adjust_names(names):
@@ -319,7 +327,7 @@
         if not type(names) == types.ListType:
             names = [names]
 
- # Avoid attempts to remove current dir
+ # Avoid attempts to remove the current directory.
         os.chdir(self.original_workdir)
         for name in names:
             n = self.native_file_name(name)
@@ -329,32 +337,32 @@
                 n = self.glob_file(string.replace(name, "$toolset", self.toolset+"*"))
             if n:
                 if os.path.isdir(n):
- shutil.rmtree(n, ignore_errors=0)
+ shutil.rmtree(n, ignore_errors=False)
                 else:
                     os.unlink(n)
 
- # Create working dir root again, in case
- # we've removed it
+ # Create working dir root again, in case we've removed it.
         if not os.path.exists(self.workdir):
             os.mkdir(self.workdir)
         os.chdir(self.workdir)
 
     def expand_toolset(self, name):
- """Expands $toolset in the given file to tested toolset"""
+ """Expands $toolset in the given file to tested toolset.
+ """
         content = self.read(name)
         content = string.replace(content, "$toolset", self.toolset)
         self.write(name, content)
-
+
     def dump_stdio(self):
         annotation("STDOUT", self.stdout())
         annotation("STDERR", self.stderr())
-
+
     #
     # FIXME: Large portion copied from TestSCons.py, should be moved?
     #
- def run_build_system(
- self, extra_args='', subdir='', stdout = None, stderr = '',
- status = 0, match = None, pass_toolset = None, **kw):
+ def run_build_system(self, extra_args="", subdir="", stdout=None, stderr="",
+ status=0, match=None, pass_toolset=None, use_test_config=None,
+ ignore_toolset_requirements=None, **kw):
 
         if os.path.isabs(subdir):
             if stderr:
@@ -362,21 +370,32 @@
             status = 1
             return
 
- self.previous_tree = build_tree(self.workdir)
+ self.previous_tree = tree.build_tree(self.workdir)
 
         if match is None:
             match = self.match
 
         if pass_toolset is None:
- pass_toolset = self.pass_toolset
+ pass_toolset = self.pass_toolset
+
+ if use_test_config is None:
+ use_test_config = self.use_test_config
+
+ if ignore_toolset_requirements is None:
+ ignore_toolset_requirements = self.ignore_toolset_requirements
 
         try:
             kw['program'] = []
             kw['program'] += self.program
             if extra_args:
- kw['program'] += extra_args.split(" ")
+ kw['program'] += extra_args.split(" ")
             if pass_toolset:
- kw['program'].append(self.toolset)
+ kw['program'].append("toolset=" + self.toolset)
+ if use_test_config:
+ kw['program'].append('--test-config="%s"'
+ % os.path.join(self.original_workdir, "test-config.jam"))
+ if ignore_toolset_requirements:
+ kw['program'].append("--ignore-toolset-requirements")
             kw['chdir'] = subdir
             apply(TestCmd.TestCmd.run, [self], kw)
         except:
@@ -388,42 +407,41 @@
             if status != 0:
                 expect = " (expected %d)" % status
 
- annotation("failed command", '"%s" returned %d%s' % (
- kw['program'], _status(self), expect))
+ annotation("failure", '"%s" returned %d%s'
+ % (kw['program'], _status(self), expect))
 
             annotation("reason", "error returned by bjam")
             self.fail_test(1)
 
         if not stdout is None and not match(self.stdout(), stdout):
- annotation("reason", "Unexpected stdout")
+ annotation("failure", "Unexpected stdout")
             annotation("Expected STDOUT", stdout)
             annotation("Actual STDOUT", self.stdout())
             stderr = self.stderr()
             if stderr:
                 annotation("STDERR", stderr)
             self.maybe_do_diff(self.stdout(), stdout)
- self.fail_test(1, dump_stdio = 0)
+ self.fail_test(1, dump_stdio=False)
 
- # Intel tends to produce some message to stderr, which makes tests
- # fail
+ # Intel tends to produce some message to stderr which makes tests fail.
         intel_workaround = re.compile("^xi(link|lib): executing.*\n", re.M)
         actual_stderr = re.sub(intel_workaround, "", self.stderr())
 
         if not stderr is None and not match(actual_stderr, stderr):
- annotation("reason", "Unexpected stderr")
+ annotation("failure", "Unexpected stderr")
             annotation("Expected STDERR", stderr)
             annotation("Actual STDERR", self.stderr())
             annotation("STDOUT", self.stdout())
             self.maybe_do_diff(actual_stderr, stderr)
- self.fail_test(1, dump_stdio = 0)
+ self.fail_test(1, dump_stdio=False)
 
- self.tree = build_tree(self.workdir)
- self.difference = trees_difference(self.previous_tree, self.tree)
+ self.tree = tree.build_tree(self.workdir)
+ self.difference = tree.trees_difference(self.previous_tree, self.tree)
         self.difference.ignore_directories()
         self.unexpected_difference = copy.deepcopy(self.difference)
 
         self.last_build_time = time.time()
-
+
     def glob_file(self, name):
         result = None
         if hasattr(self,'difference'):
@@ -437,7 +455,7 @@
                 result = result[0]
         return result
 
- def read(self, name, binary = 0):
+ def read(self, name, binary=False):
         try:
             if self.toolset:
                 name = string.replace(name, "$toolset", self.toolset+"*")
@@ -449,7 +467,7 @@
                 openMode += "U"
             return open(name, openMode).read()
         except:
- annotation("reason", "Could not open '%s'" % name)
+ annotation("failure", "Could not open '%s'" % name)
             self.fail_test(1)
             return ''
 
@@ -460,68 +478,69 @@
             return result + '\n'
         else:
             return result
-
- def fail_test(self, condition, dump_stdio = 1, *args):
- # If test failed, print the difference
- if condition and hasattr(self, 'difference'):
- f = StringIO()
+
+ def fail_test(self, condition, dump_stdio=True, *args):
+ if not condition:
+ return
+
+ if hasattr(self, 'difference'):
+ f = StringIO.StringIO()
             self.difference.pprint(f)
             annotation("changes caused by the last build command", f.getvalue())
-
- if condition and dump_stdio:
+
+ if dump_stdio:
             self.dump_stdio()
 
- if condition and '--preserve' in sys.argv:
- print
+ if '--preserve' in sys.argv:
+ print
             print "*** Copying the state of working dir into 'failed_test' ***"
- print
+ print
             path = os.path.join(self.original_workdir, "failed_test")
             if os.path.isdir(path):
- shutil.rmtree(path, ignore_errors=0)
+ shutil.rmtree(path, ignore_errors=False)
             elif os.path.exists(path):
- raise "The path " + path + " already exists and is not directory";
+ raise "Path " + path + " already exists and is not a directory";
             shutil.copytree(self.workdir, path)
 
- if condition:
- at = TestCmd.caller(traceback.extract_stack(), 0)
- annotation("stacktrace", at)
- sys.exit(1)
-
+ at = TestCmd.caller(traceback.extract_stack(), 0)
+ annotation("stacktrace", at)
+ sys.exit(1)
+
     # A number of methods below check expectations with actual difference
- # between directory trees before and after build.
- # All the 'expect*' methods require exact names to be passed.
- # All the 'ignore*' methods allow wildcards.
+ # between directory trees before and after a build. All the 'expect*'
+ # methods require exact names to be passed. All the 'ignore*' methods allow
+ # wildcards.
 
- # All names can be lists, which are taken to be directory components
- def expect_addition(self, names):
+ # All names can be lists, which are taken to be directory components.
+ def expect_addition(self, names):
         for name in self.adjust_names(names):
- try:
- glob_remove(self.unexpected_difference.added_files,name)
- except:
- print "File %s not added as expected" % (name,)
- self.fail_test(1)
+ try:
+ glob_remove(self.unexpected_difference.added_files,name)
+ except:
+ print "File %s not added as expected" % name
+ self.fail_test(1)
 
     def ignore_addition(self, wildcard):
         self.ignore_elements(self.unexpected_difference.added_files, wildcard)
 
     def expect_removal(self, names):
         for name in self.adjust_names(names):
- try:
- glob_remove(self.unexpected_difference.removed_files,name)
- except:
- print "File %s not removed as expected" % (name,)
- self.fail_test(1)
+ try:
+ glob_remove(self.unexpected_difference.removed_files,name)
+ except:
+ print "File %s not removed as expected" % name
+ self.fail_test(1)
 
     def ignore_removal(self, wildcard):
         self.ignore_elements(self.unexpected_difference.removed_files, wildcard)
 
     def expect_modification(self, names):
         for name in self.adjust_names(names):
- try:
- glob_remove(self.unexpected_difference.modified_files,name)
- except:
- print "File %s not modified as expected" % (name,)
- self.fail_test(1)
+ try:
+ glob_remove(self.unexpected_difference.modified_files,name)
+ except:
+ print "File %s not modified as expected" % name
+ self.fail_test(1)
 
     def ignore_modification(self, wildcard):
         self.ignore_elements(self.unexpected_difference.modified_files, wildcard)
@@ -529,12 +548,12 @@
     def expect_touch(self, names):
         d = self.unexpected_difference
         for name in self.adjust_names(names):
-
- # We need to check in both touched and modified files.
- # The reason is that:
- # (1) for windows binaries often have slight
- # differences even with identical inputs
- # (2) Intel's compiler for Linux has the same behaviour
+ # We need to check both touched and modified files. The reason is
+ # that:
+ # (1) Windows binaries such as obj, exe or dll files have slight
+ # differences even with identical inputs due to Windows PE
+ # format headers containing an internal timestamp.
+ # (2) Intel's compiler for Linux has the same behaviour.
             filesets = [d.modified_files, d.touched_files]
 
             while filesets:
@@ -545,11 +564,9 @@
                     filesets.pop()
 
             if not filesets:
- annotation("reason",
- "File %s not touched as expected" % (name,))
+ annotation("failure", "File %s not touched as expected" % name)
                 self.fail_test(1)
 
-
     def ignore_touch(self, wildcard):
         self.ignore_elements(self.unexpected_difference.touched_files, wildcard)
 
@@ -562,68 +579,72 @@
     def expect_nothing(self, names):
         for name in self.adjust_names(names):
             if name in self.difference.added_files:
- annotation("reason",
- "File %s is added, but no action was expected" % (name,))
+ annotation("failure",
+ "File %s added, but no action was expected" % name)
                 self.fail_test(1)
             if name in self.difference.removed_files:
- annotation("reason",
- "File %s is removed, but no action was expected" % (name,))
+ annotation("failure",
+ "File %s removed, but no action was expected" % name)
                 self.fail_test(1)
                 pass
             if name in self.difference.modified_files:
- annotation("reason",
- "File %s is modified, but no action was expected" % (name,))
+ annotation("failure",
+ "File %s modified, but no action was expected" % name)
                 self.fail_test(1)
             if name in self.difference.touched_files:
- annotation("reason",
- "File %s is touched, but no action was expected" % (name,))
+ annotation("failure",
+ "File %s touched, but no action was expected" % name)
                 self.fail_test(1)
 
     def expect_nothing_more(self):
-
- # not totally sure about this change, but I don't see a good alternative
+ # Not totally sure about this change, but I don't see a good
+ # alternative.
         if windows:
- self.ignore('*.ilk') # msvc incremental linking files
- self.ignore('*.pdb') # msvc program database files
- self.ignore('*.rsp') # response files
- self.ignore('*.tds') # borland debug symbols
- self.ignore('*.manifest') # msvc DLL manifests
+ self.ignore('*.ilk') # MSVC incremental linking files.
+ self.ignore('*.pdb') # MSVC program database files.
+ self.ignore('*.rsp') # Response files.
+ self.ignore('*.tds') # Borland debug symbols.
+ self.ignore('*.manifest') # MSVC DLL manifests.
 
- # debug builds of bjam built with gcc produce this profiling data
+ # Debug builds of bjam built with gcc produce this profiling data.
         self.ignore('gmon.out')
         self.ignore('*/gmon.out')
-
+
         if not self.unexpected_difference.empty():
- print 'FAILED'
- print '------- The following changes were unexpected ------- '
- self.unexpected_difference.pprint()
- self.fail_test(1)
+ print 'FAILED'
+ print '------- The following changes were unexpected -------'
+ self.unexpected_difference.pprint()
+ self.fail_test(1)
 
- def _expect_line(self, content, expected):
+ def __expect_line(self, content, expected, expected_to_exist):
         expected = expected.strip()
         lines = content.splitlines()
- found = 0
+ found = False
         for line in lines:
             line = line.strip()
             if fnmatch.fnmatch(line, expected):
- found = 1
+ found = True
                 break
 
- if not found:
- print "Did not found expected line in output:"
- print expected
- print "The output was:"
- print content
+ if expected_to_exist and not found:
+ annotation( "failure",
+ "Did not find expected line:\n%s\nin output:\n%s" %
+ (expected, content))
+ self.fail_test(1)
+ if not expected_to_exist and found:
+ annotation( "failure",
+ "Found an unexpected line:\n%s\nin output:\n%s" %
+ (expected, content))
             self.fail_test(1)
 
- def expect_output_line(self, expected):
- self._expect_line(self.stdout(), expected)
+ def expect_output_line(self, line, expected_to_exist=True):
+ self.__expect_line(self.stdout(), line, expected_to_exist)
 
- def expect_content_line(self, name, expected):
- content = self._read_file(name)
- self._expect_line(content, expected)
+ def expect_content_line(self, name, line, expected_to_exist=True):
+ content = self.__read_file(name)
+ self.__expect_line(content, line, expected_to_exist)
 
- def _read_file(self, name, exact=0):
+ def __read_file(self, name, exact=False):
         name = self.adjust_names(name)[0]
         result = ""
         try:
@@ -635,13 +656,12 @@
             print "Note: could not open file", name
             self.fail_test(1)
         return result
-
 
- def expect_content(self, name, content, exact=0):
- actual = self._read_file(name, exact)
+ def expect_content(self, name, content, exact=False):
+ actual = self.__read_file(name, exact)
         content = string.replace(content, "$toolset", self.toolset+"*")
 
- matched = 0
+ matched = False
         if exact:
             matched = fnmatch.fnmatch(actual,content)
         else:
@@ -674,40 +694,39 @@
             if os.system("diff -u " + e + " " + a):
                 print "Unable to compute difference: diff -u %s %s" % (e,a)
             os.unlink(e)
- os.unlink(a)
+ os.unlink(a)
         else:
- print "Set environmental variable 'DO_DIFF' to examine difference."
+ print "Set environmental variable 'DO_DIFF' to examine difference."
 
- # Helpers
+ # Helpers.
     def mul(self, *arguments):
         if len(arguments) == 0:
- return None
- else:
- here = arguments[0]
- if type(here) == type(''):
- here = [here]
-
- if len(arguments) > 1:
- there = apply(self.mul, arguments[1:])
- result = []
- for i in here:
- for j in there:
- result.append(i + j)
- return result
- else:
- return here
+ return None
 
+ here = arguments[0]
+ if type(here) == type(''):
+ here = [here]
+
+ if len(arguments) > 1:
+ there = apply(self.mul, arguments[1:])
+ result = []
+ for i in here:
+ for j in there:
+ result.append(i + j)
+ return result
 
+ return here
 
- # Internal methods
+ # Internal methods.
     def ignore_elements(self, list, wildcard):
- """Removes in-place, element of 'list' that match the given wildcard."""
+ """Removes in-place, element of 'list' that match the given wildcard.
+ """
         list[:] = filter(lambda x, w=wildcard: not fnmatch.fnmatch(x, w), list)
 
     def adjust_lib_name(self, name):
         global lib_prefix
         result = name
-
+
         pos = string.rfind(name, ".")
         if pos != -1:
             suffix = name[pos:]
@@ -721,15 +740,15 @@
                 if dll_prefix:
                     tail = "lib" + tail
                     result = os.path.join(head, tail)
- # If we try to use this name in Jamfile, we better
- # convert \ to /, as otherwise we'd have to quote \.
+ # If we want to use this name in a Jamfile, we better convert \ to /, as
+ # otherwise we'd have to quote \.
         result = string.replace(result, "\\", "/")
         return result
-
+
     def adjust_suffix(self, name):
         if not self.translate_suffixes:
             return name
-
+
         pos = string.rfind(name, ".")
         if pos != -1:
             suffix = name[pos:]
@@ -742,11 +761,11 @@
 
         return name + suffix
 
- # Acceps either string of list of string and returns list of strings
+ # Acceps either a string or a list of strings and returns a list of strings.
     # Adjusts suffixes on all names.
     def adjust_names(self, names):
         if type(names) == types.StringType:
- names = [names]
+ names = [names]
         r = map(self.adjust_lib_name, names)
         r = map(self.adjust_suffix, r)
         r = map(lambda x, t=self.toolset: string.replace(x, "$toolset", t+"*"), r)
@@ -762,29 +781,27 @@
     def wait_for_time_change(self):
         while 1:
             f = time.time();
- # In fact, I'm not sure why "+ 2" as opposed to "+ 1" is
- # needed but empirically, "+ 1" sometimes causes 'touch'
- # and other functions not to bump file time enough for
- # rebuild to happen.
+ # In fact, I'm not sure why "+ 2" as opposed to "+ 1" is needed but
+ # empirically, "+ 1" sometimes causes 'touch' and other functions
+ # not to bump the file time enough for a rebuild to happen.
             if math.floor(f) < math.floor(self.last_build_time) + 2:
                 time.sleep(0.1)
             else:
                 break
-
 
-
+
 class List:
 
     def __init__(self, s=""):
         elements = []
- if isinstance(s, type("")):
- # Have to handle espaced spaces correctly
+ if isinstance(s, type("")):
+ # Have to handle espaced spaces correctly.
             s = string.replace(s, "\ ", '\001')
             elements = string.split(s)
         else:
             elements = s;
-
- self.l = []
+
+ self.l = []
         for e in elements:
             self.l.append(string.replace(e, '\001', ' '))
 
@@ -808,7 +825,7 @@
                  + repr(string.join(self.l, ' '))
                  + ')')
 
- def __mul__(self, other):
+ def __mul__(self, other):
         result = List()
         if not isinstance(other, List):
             other = List(other)
@@ -819,7 +836,7 @@
 
     def __rmul__(self, other):
         if not isinstance(other, List):
- other = List(other)
+ other = List(other)
         return List.__mul__(other, self)
 
     def __add__(self, other):
@@ -827,12 +844,8 @@
         result.l = self.l[:] + other.l[:]
         return result
 
-# quickie tests. Should use doctest instead.
+# Quickie tests. Should use doctest instead.
 if __name__ == '__main__':
     assert str(List("foo bar") * "/baz") == "['foo/baz', 'bar/baz']"
     assert repr("foo/" * List("bar baz")) == "__main__.List('foo/bar foo/baz')"
     print 'tests passed'
-
-
-
-

Modified: branches/proto/v3/tools/build/v2/test/abs_workdir.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/abs_workdir.py (original)
+++ branches/proto/v3/tools/build/v2/test/abs_workdir.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,30 +2,25 @@
 # Testing whether we may run a test in a absolute directories
 # There are no tests for temporary directories as this is implictly tested in a lot of other cases
 
-from BoostBuild import Tester
-import os, string
+import BoostBuild
+import os
+import string
 
-t = Tester(
- executable="jam"
- , workdir = os.getcwd()
- , pass_toolset=0
- )
+t = BoostBuild.Tester(arguments="pwd", executable="jam", workdir=os.getcwd(),
+ pass_toolset=0)
 
-jamfile="""
+t.write("Jamroot.jam", """
 actions print_pwd { pwd ; }
 print_pwd pwd ;
 Always pwd ;
-"""
+""")
 
-t.write("Jamfile", jamfile)
-t.write("project-root.jam", " ")
-
-t.run_build_system(status=0, extra_args = "pwd")
+t.run_build_system(status=0)
 
 if 'TMP' in os.environ:
- tmp_dir =os.environ.get('TMP')
+ tmp_dir = os.environ.get('TMP')
 else:
- tmp_dir ="/tmp"
+ tmp_dir = "/tmp"
 
 if string.rfind(t.stdout(), tmp_dir) != -1:
     t.fail_test(1)
@@ -33,7 +28,7 @@
 if string.rfind(t.stdout(), 'build/v2/test') == -1:
     t.fail_test(1)
 
-t.run_build_system(status=1, extra_args = "pwd", subdir ="/must/fail/with/absolute/path",
- stderr=None)
+t.run_build_system(status=1, subdir="/must/fail/with/absolute/path",
+ stderr=None)
 t.cleanup
 

Modified: branches/proto/v3/tools/build/v2/test/alias.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/alias.py (original)
+++ branches/proto/v3/tools/build/v2/test/alias.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,17 +1,25 @@
 #!/usr/bin/python
 
-# Copyright 2003 Dave Abrahams
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 from BoostBuild import Tester, List
-t = Tester()
 
-# Test that top-level project can affect build dir
-t.write("project-root.jam", "")
-t.write("Jamfile", """
 
+################################################################################
+#
+# test_alias_rule()
+# -----------------
+#
+################################################################################
+
+def test_alias_rule(t):
+ """Basic alias rule test.
+ """
+
+ t.write("Jamroot.jam", """
 exe a : a.cpp ;
 exe b : b.cpp ;
 exe c : c.cpp ;
@@ -21,60 +29,78 @@
 
 alias src : s.cpp ;
 exe hello : hello.cpp src ;
+""")
 
+ t.write("a.cpp", "int main() { return 0; }\n")
+ t.copy("a.cpp", "b.cpp")
+ t.copy("a.cpp", "c.cpp")
+ t.copy("a.cpp", "hello.cpp")
+ t.write("s.cpp", "")
+
+ # Check that targets to which "bin1" refers are updated, and only those.
+ t.run_build_system("bin1")
+ t.expect_addition(List("bin/$toolset/debug/") * "a.exe a.obj")
+ t.expect_nothing_more()
+
+ # Try again with "bin2"
+ t.run_build_system("bin2")
+ t.expect_addition(List("bin/$toolset/debug/") * "b.exe b.obj")
+ t.expect_nothing_more()
+
+ # Try building everything, making sure 'hello' target is created.
+ t.run_build_system()
+ t.expect_addition(List("bin/$toolset/debug/") * "hello.exe hello.obj")
+ t.expect_addition("bin/$toolset/debug/s.obj")
+ t.expect_addition(List("bin/$toolset/debug/") * "c.exe c.obj")
+ t.expect_nothing_more()
+
+
+################################################################################
+#
+# test_alias_source_usage_requirements()
+# --------------------------------------
+#
+################################################################################
+
+def test_alias_source_usage_requirements(t):
+ """Check whether usage requirements are propagated via "alias". In case they
+ are not, linking will fail as there will be no main() function defined
+ anywhere in the source.
+ """
+
+ t.write("Jamroot.jam", """
+lib l : l.cpp : : : <define>WANT_MAIN ;
+alias la : l ;
+exe main : main.cpp la ;
 """)
-t.write("a.cpp", "int main() { return 0; }\n")
-t.copy("a.cpp", "b.cpp")
-t.copy("a.cpp", "c.cpp")
-t.copy("a.cpp", "hello.cpp")
-t.write("s.cpp", "")
-
-# Check that targets to which "bin1" refers are updated,
-# and only those.
-t.run_build_system("bin1")
-t.ignore("*.tds")
-t.expect_addition(List("bin/$toolset/debug/") * "a.exe a.obj")
-t.expect_nothing_more()
-
-# Try again with "bin2"
-t.run_build_system("bin2")
-t.ignore("*.tds")
-t.expect_addition(List("bin/$toolset/debug/") * "b.exe b.obj")
-t.expect_nothing_more()
-
-# Try building everything, making sure 'hello' target is
-# created
-t.run_build_system()
-t.ignore("*.tds")
-t.expect_addition("bin/$toolset/debug/hello.exe")
-
-# Regression test.
-# Check if usage requirements are propagated via "alias"
-
-t.write("l.cpp", """
+
+ t.write("l.cpp", """
 void
 #if defined(_WIN32)
 __declspec(dllexport)
 #endif
 foo() {}
-
 """)
 
-t.write("Jamfile", """
-lib l : l.cpp : : : <define>WANT_MAIN ;
-alias la : l ;
-exe main : main.cpp la ;
-""")
-
-t.write("main.cpp", """
+ t.write("main.cpp", """
 #ifdef WANT_MAIN
 int main() { return 0; }
 #endif
-
 """)
 
-t.write("project-root.jam", "")
+ t.run_build_system()
+
+
+################################################################################
+#
+# main()
+# ------
+#
+################################################################################
+
+t = Tester()
 
-t.run_build_system()
+test_alias_rule(t)
+test_alias_source_usage_requirements(t)
 
 t.cleanup()

Modified: branches/proto/v3/tools/build/v2/test/conditionals.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/conditionals.py (original)
+++ branches/proto/v3/tools/build/v2/test/conditionals.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,55 +1,47 @@
 #!/usr/bin/python
 
-# Copyright 2003 Dave Abrahams
-# Copyright 2002, 2003, 2004 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# Test conditional properties
-
-from BoostBuild import Tester, List
-import os
-from string import strip
-
-t = Tester()
-
-# Arrange a project which will build only if
-# 'a.cpp' is compiled with "STATIC" define.
-t.write("project-root.jam", "import gcc ;")
+# Copyright 2003 Dave Abrahams
+# Copyright 2002, 2003, 2004 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Test conditional properties.
+
+import BoostBuild
+
+t = BoostBuild.Tester()
+
+# Arrange a project which will build only if 'a.cpp' is compiled with "STATIC"
+# define.
 t.write("a.cpp", """
 #ifdef STATIC
-int main() { return 0; }
+int main() { return 0; }
 #endif
 """)
-t.write("Jamfile", "exe a : a.cpp : <link>static:<define>STATIC ;")
+
+# Test conditionals in target requirements.
+t.write("Jamroot.jam", "exe a : a.cpp : <link>static:<define>STATIC ;")
 t.run_build_system("link=static")
 t.expect_addition("bin/$toolset/debug/link-static/a.exe")
+t.rm("bin")
 
-t.write("Jamfile", """
+# Test conditionals in project requirements.
+t.write("Jamroot.jam", """
 project : requirements <link>static:<define>STATIC ;
 exe a : a.cpp ;
 """)
-t.rm("bin")
 t.run_build_system("link=static")
 t.expect_addition("bin/$toolset/debug/link-static/a.exe")
+t.rm("bin")
 
-# Regression test for a bug found by Ali Azarbayejani.
-# Conditionals inside usage requirement were not evaluated.
-# This breaks
-
-t.write("Jamfile", """
+# Regression test for a bug found by Ali Azarbayejani. Conditionals inside usage
+# requirement were not being evaluated.
+t.write("Jamroot.jam", """
 lib l : l.cpp : : : <link>static:<define>STATIC ;
 exe a : a.cpp l ;
 """)
-t.write("l.cpp", "")
-t.write("l.cpp", """
-int i;
-""")
-
-t.rm("bin")
+t.write("l.cpp", "int i;")
 t.run_build_system("link=static")
 t.expect_addition("bin/$toolset/debug/link-static/a.exe")
 
-
-
 t.cleanup()

Modified: branches/proto/v3/tools/build/v2/test/conditionals2.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/conditionals2.py (original)
+++ branches/proto/v3/tools/build/v2/test/conditionals2.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,35 +1,33 @@
 #!/usr/bin/python
 
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Regression test: it was possible that due to evaluation of conditional
 # requirements, two different values of non-free features were present in
 # property set.
 
-from BoostBuild import Tester, List
+import BoostBuild
 
-t = Tester()
-
-t.write("project-root.jam", "")
+t = BoostBuild.Tester()
 
 t.write("a.cpp", "")
 
-t.write("Jamfile", """
-import feature : feature ;
-import common : file-creation-command ;
+t.write("Jamroot.jam", """
+import feature ;
+import common ;
 
-feature the_feature : false true : propagated ;
+feature.feature the_feature : false true : propagated ;
 
 rule maker ( targets * : sources * : properties * )
 {
- if <the_feature>false in $(properties)
- && <the_feature>true in $(properties)
+ if <the_feature>false in $(properties) &&
+ <the_feature>true in $(properties)
     {
         EXIT "Oops, two different values of non-free feature" ;
- }
- CMD on $(targets) = [ file-creation-command ] ;
+ }
+ CMD on $(targets) = [ common.file-creation-command ] ;
 }
 
 actions maker
@@ -37,12 +35,9 @@
     $(CMD) $(<) ;
 }
 
-make a : a.cpp : maker : <variant>debug:<the_feature>true ;
+make a : a.cpp : maker : <variant>debug:<the_feature>true ;
 """)
 
 t.run_build_system()
 
 t.cleanup()
-
-
-

Modified: branches/proto/v3/tools/build/v2/test/conditionals3.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/conditionals3.py (original)
+++ branches/proto/v3/tools/build/v2/test/conditionals3.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,19 +1,17 @@
 #!/usr/bin/python
 
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-# Test that conditional properties work, even if property is free, and
-# value includes colon.
-from BoostBuild import Tester, List
+# Test that conditional properties work, even if property is free, and value
+# includes a colon.
 
+import BoostBuild
 
-t = Tester()
+t = BoostBuild.Tester()
 
-# Create the needed files
-t.write("project-root.jam", "")
-t.write("Jamfile", """
+t.write("Jamroot.jam", """
 exe hello : hello.cpp : <variant>debug:<define>CLASS=Foo::Bar ;
 """)
 t.write("hello.cpp", """
@@ -21,12 +19,11 @@
 int main()
 {
     CLASS c;
+ c; // Disables the unused variable warning.
     return 0;
 }
-
 """)
 
-# Don't check stderr, which can include warning about unused 'c'.
 t.run_build_system(stdout=None, stderr=None)
 t.expect_addition("bin/$toolset/debug/hello.exe")
 

Modified: branches/proto/v3/tools/build/v2/test/double_loading.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/double_loading.py (original)
+++ branches/proto/v3/tools/build/v2/test/double_loading.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,37 +10,22 @@
 t = Tester()
 
 # Regression test for double loading of the same Jamfile.
-t.write("Jamfile", """
-build-project subdir ;
-""")
-
-t.write("project-root.jam", """
-""")
-
-t.write("subdir/Jamfile", """
-ECHO "Loaded subdir" ;
-""")
+t.write("Jamfile.jam", "build-project subdir ;")
+t.write("Jamroot.jam", "" )
+t.write("subdir/Jamfile.jam", 'ECHO "Loaded subdir" ;')
 
 t.run_build_system(subdir="subdir")
-t.fail_test(string.count(t.stdout(), "Loaded subdir") != 1)
+t.expect_output_line("Loaded subdir")
 
-# Regression test for a more contrived case. The top-level
-# jamfile refers to subdir via use-project, while subdir's
-# Jamfile is being loaded. The motivation why use-project
-# referring to subprojects are usefull can be found at
-# http://article.gmane.org/gmane.comp.lib.boost.build/3906/
-t.write("Jamfile", """
-use-project /subdir : subdir ;
-""")
-
-t.write("project-root.jam", """
-""")
-
-t.write("subdir/Jamfile", """
-project subdir ;
-""")
+
+# Regression test for a more contrived case. The top-level Jamfile refers to
+# subdir via use-project, while subdir's Jamfile is being loaded. The motivation
+# why use-project referring to subprojects is useful can be found at
+# http://article.gmane.org/gmane.comp.lib.boost.build/3906/
+t.write("Jamfile.jam", "use-project /subdir : subdir ;")
+t.write("Jamroot.jam", "" )
+t.write("subdir/Jamfile.jam", "project subdir ;")
 
 t.run_build_system(subdir="subdir");
 
 t.cleanup()
-

Modified: branches/proto/v3/tools/build/v2/test/library_property.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/library_property.py (original)
+++ branches/proto/v3/tools/build/v2/test/library_property.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -11,7 +11,7 @@
 # exe a : a.cpp helper ;
 # obj helper : helper.cpp : <optimization>off ;
 #
-# caused 'foo' to be built with with and without optimization.
+# caused 'foo' to be built with and without optimization.
 from BoostBuild import Tester, List
 
 # Create a temporary working directory

Modified: branches/proto/v3/tools/build/v2/test/module-actions/bootstrap.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/test/module-actions/bootstrap.jam (original)
+++ branches/proto/v3/tools/build/v2/test/module-actions/bootstrap.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,35 +1,21 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2006 Rene Rivera
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-
-# Demonstration that module variables have the right effect in actions
-
-# Set a variable which says how to dump a file to stdout
-if $(NT)
-{
- CATENATE = type ;
-}
-else
-{
- CATENATE = cat ;
-}
+# Copyright 2003 Dave Abrahams
+# Copyright 2006 Rene Rivera
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Demonstration that module variables have the right effect in actions.
 
-# invoke the given action rule `act' to build target from sources
-rule do-make ( target : sources * : act )
-{
- DEPENDS $(target) : $(sources) ;
- $(act) $(target) : $(sources) ;
-}
 
-# top-level version of do-make which causes target to be built by
-# default
+# Top-level rule that causes a target to be built by invoking the specified
+# action.
 rule make ( target : sources * : act )
 {
     DEPENDS all : $(target) ;
- do-make $(target) : $(sources) : $(act) ;
+ DEPENDS $(target) : $(sources) ;
+ $(act) $(target) : $(sources) ;
 }
 
+
 X1 = X1-global ;
 X2 = X2-global ;
 X3 = X3-global ;
@@ -37,15 +23,15 @@
 module A
 {
     X1 = X1-A ;
-
+
     rule act ( target )
     {
         NOTFILE $(target) ;
         ALWAYS $(target) ;
     }
-
+
     actions act { echo A.act $(<): $(X1) $(X2) $(X3) }
-
+
     make t1 : : A.act ;
     make t2 : : A.act ;
     make t3 : : A.act ;
@@ -54,9 +40,9 @@
 module B
 {
     X2 = X2-B ;
-
+
     actions act { echo B.act $(<): $(X1) $(X2) $(X3) }
-
+
     make t1 : : B.act ;
     make t2 : : B.act ;
     make t3 : : B.act ;

Modified: branches/proto/v3/tools/build/v2/test/module_actions.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/module_actions.py (original)
+++ branches/proto/v3/tools/build/v2/test/module_actions.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,39 +6,48 @@
 # Distributed under the Boost Software License, Version 1.0.
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-from BoostBuild import Tester, List
+import BoostBuild
 import os
 import re
 
 spaces_re = re.compile("\ \ +")
 trailing_spaces_re = re.compile("\ +\n")
 
-t = Tester(pass_toolset=0)
+t = BoostBuild.Tester("-d+1", pass_toolset=0)
 
 t.set_tree('module-actions')
 
-expected = r'''A.act t1: X1-t1
+# Note that the following string contains some trailing spaces that should not
+# be removed.
+expected_output = """...found 4 targets...
+...updating 3 targets...
+A.act t1
+A.act t1: X1-t1
+B.act t1
 B.act t1: X1-t1 X2-B
+act t1
 act t1: X1-t1 X2-global X3-global
+A.act t2
 A.act t2: X1-A X2-t2
+B.act t2
 B.act t2: X2-t2
+act t2
 act t2: X1-global X2-t2 X3-global
+A.act t3
 A.act t3: X1-A X3-t3
+B.act t3
 B.act t3: X2-B X3-t3
+act t3
 act t3: X1-global X2-global X3-t3
-'''
+...updated 3 targets...
+"""
 
-# On Unixes, call to 'echo 1 2 3' produces '1 2 3' (note spacing)
+# On Unixes, call to 'echo 1 2 3' produces '1 2 3' (note the spacing)
 # Accomodate for that fact.
 if os.name != 'nt':
- expected = re.sub(spaces_re, " ", expected)
- expected = re.sub(trailing_spaces_re, "\n", expected)
-
-# We expect t5 and t7's output to be dumped to stdout
-t.run_build_system(
- stdout = expected
-)
+ expected_output = re.sub(spaces_re, " ", expected_output)
+ expected_output = re.sub(trailing_spaces_re, "\n", expected_output)
 
+t.run_build_system(stdout=expected_output)
 t.expect_nothing_more()
 t.cleanup()
-

Modified: branches/proto/v3/tools/build/v2/test/project_test3.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/project_test3.py (original)
+++ branches/proto/v3/tools/build/v2/test/project_test3.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -16,7 +16,7 @@
 os.remove("project-root.jam")
 t.run_build_system(status=1, stdout=
 """error: Could not find parent for project at '.'
-error: Did not find Jamfile or project-root.jam in any parent directory.
+error: Did not find Jamfile.jam or Jamroot.jam in any parent directory.
 
 """)
 

Modified: branches/proto/v3/tools/build/v2/test/tag.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/tag.py (original)
+++ branches/proto/v3/tools/build/v2/test/tag.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -5,43 +5,70 @@
 # all copies. This software is provided "as is" without express or implied
 # warranty, and with no claim as to its suitability for any purpose.
 
-from BoostBuild import Tester, List
-import string
+import BoostBuild
 
-t = Tester()
 
-t.write("project-root.jam", "")
-t.write("Jamfile", """
+################################################################################
+#
+# test_folder_with_dot_in_name()
+# ------------------------------
+#
+################################################################################
+
+def test_folder_with_dot_in_name(t):
+ """ Regression test: the 'tag' feature did not work in directories that had
+ a dot in their name.
+ """
+
+ t.write("version-1.32.0/Jamroot.jam", """
+project test : requirements <tag>@$(__name__).tag ;
+
+rule tag ( name : type ? : property-set )
+{
+ # Do nothing, just make sure the rule is invoked OK.
+ ECHO "The tag rule was invoked" ;
+}
+exe a : a.cpp ;
+""")
+ t.write("version-1.32.0/a.cpp", "int main() { return 0; }\n")
+
+ t.run_build_system(subdir="version-1.32.0")
+ t.expect_addition("version-1.32.0/bin/$toolset/debug/a.exe")
+ t.expect_output_line("The tag rule was invoked")
+
+
+################################################################################
+#
+# test_tag_property()
+# -------------------
+#
+################################################################################
+
+def test_tag_property(t):
+ """Basic tag property test.
+ """
+
+ t.write("Jamroot.jam", """
 import virtual-target ;
+
 rule tag ( name : type ? : property-set )
 {
     local tags ;
- local v = [ $(property-set).get <variant> ] ;
- if $(v) = debug
- {
- tags += d ;
- }
- else if $(v) = release
- {
- tags += r ;
- }
-
- local l = [ $(property-set).get <link> ] ;
- if $(l) = shared
+ switch [ $(property-set).get <variant> ]
     {
- tags += s ;
+ case debug : tags += d ;
+ case release : tags += r ;
     }
- else if $(l) = static
+ switch [ $(property-set).get <link> ]
     {
- tags += t ;
+ case shared : tags += s ;
+ case static : tags += t ;
     }
-
     if $(tags)
     {
- return [ virtual-target.add-prefix-and-suffix $(name)_$(tags:J="")
+ return [ virtual-target.add-prefix-and-suffix $(name)_$(tags:J="")
             : $(type) : $(property-set) ] ;
     }
-
 }
 
 # Test both fully-qualified and local name of the rule
@@ -50,57 +77,50 @@
 stage c : a ;
 """)
 
-t.write("a.cpp", """
+ t.write("a.cpp", """
 int main()
 {
     return 0;
 }
 
 #ifdef _MSC_VER
-__declspec (dllexport) void x () {}
+__declspec (dllexport) void x () {}
 #endif
 """)
 
-file_list = \
-List("bin/$toolset/debug/a_ds.exe") + \
-List("bin/$toolset/debug/b_ds.dll") + \
-List("c/a_ds.exe") + \
-List("bin/$toolset/release/a_rs.exe") + \
-List("bin/$toolset/release/b_rs.dll") + \
-List("c/a_rs.exe") + \
-List("bin/$toolset/debug/link-static/a_dt.exe") + \
-List("bin/$toolset/debug/link-static/b_dt.lib") + \
-List("c/a_dt.exe") + \
-List("bin/$toolset/release/link-static/a_rt.exe") + \
-List("bin/$toolset/release/link-static/b_rt.lib") + \
-List("c/a_rt.exe")
-
-variants = "debug release link=static,shared"
-
-t.run_build_system(variants)
-t.expect_addition(file_list)
-
-t.run_build_system(variants + " clean")
-t.expect_removal(file_list)
-
-# Regression test: the 'tag' feature did not work in directories that
-# had dot in names.
-t.write("version-1.32.0/Jamroot", """
-project test : requirements <tag>@$(__name__).tag ;
+ file_list = \
+ BoostBuild.List("bin/$toolset/debug/a_ds.exe") + \
+ BoostBuild.List("bin/$toolset/debug/b_ds.dll") + \
+ BoostBuild.List("c/a_ds.exe") + \
+ BoostBuild.List("bin/$toolset/release/a_rs.exe") + \
+ BoostBuild.List("bin/$toolset/release/b_rs.dll") + \
+ BoostBuild.List("c/a_rs.exe") + \
+ BoostBuild.List("bin/$toolset/debug/link-static/a_dt.exe") + \
+ BoostBuild.List("bin/$toolset/debug/link-static/b_dt.lib") + \
+ BoostBuild.List("c/a_dt.exe") + \
+ BoostBuild.List("bin/$toolset/release/link-static/a_rt.exe") + \
+ BoostBuild.List("bin/$toolset/release/link-static/b_rt.lib") + \
+ BoostBuild.List("c/a_rt.exe")
+
+ variants = "debug release link=static,shared"
+
+ t.run_build_system(variants)
+ t.expect_addition(file_list)
+
+ t.run_build_system(variants + " clean")
+ t.expect_removal(file_list)
+
+
+################################################################################
+#
+# main()
+# ------
+#
+################################################################################
 
-rule tag ( name : type ? : property-set )
-{
- # Do nothing, just make sure the rule is invoked OK.
- ECHO "The tag rule was invoked" ;
-}
-exe a : a.cpp ;
-""")
-
-t.write("version-1.32.0/a.cpp", "int main() { return 0; }\n")
+t = BoostBuild.Tester()
 
-t.run_build_system(subdir="version-1.32.0")
-t.expect_addition("version-1.32.0/bin/$toolset/debug/a.exe")
-t.fail_test(string.find(t.stdout(), "The tag rule was invoked") == -1)
+test_tag_property(t)
+test_folder_with_dot_in_name(t)
 
 t.cleanup()
-

Modified: branches/proto/v3/tools/build/v2/test/test_all.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/test_all.py (original)
+++ branches/proto/v3/tools/build/v2/test/test_all.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -104,8 +104,14 @@
           "no_type",
           "chain",
           "default_build",
+ "default_toolset",
           "use_requirements",
           "conditionals",
+ "conditionals2",
+ "conditionals3",
+ "conditionals_multiple",
+ "configuration",
+ "indirect_conditional",
           "stage",
           "prebuilt",
           "project_dependencies",
@@ -124,10 +130,8 @@
           "bad_dirname",
           "c_file",
           "inline",
- "conditionals2",
           "property_expansion",
           "loop",
- "conditionals3",
           "tag",
           "suffix",
           "inherit_toolset",
@@ -154,7 +158,6 @@
           "project_root_rule",
           "resolution",
           "build_file",
- "indirect_conditional",
           "build_no",
           "disambiguation",
           "clean",

Modified: branches/proto/v3/tools/build/v2/test/timedata.py
==============================================================================
--- branches/proto/v3/tools/build/v2/test/timedata.py (original)
+++ branches/proto/v3/tools/build/v2/test/timedata.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,16 +6,18 @@
 # This tests the build step timing facilities.
 
 import BoostBuild
+import re
 
 t = BoostBuild.Tester(pass_toolset=0)
 
-t.write('file.jam', '''
+t.write("file.jam", """
 rule time
 {
     DEPENDS $(<) : $(>) ;
     __TIMING_RULE__ on $(>) = record_time $(<) ;
     DEPENDS all : $(<) ;
 }
+
 actions time
 {
     echo $(>) user: $(__USER_TIME__) system: $(__SYSTEM_TIME__)
@@ -24,7 +26,6 @@
 
 rule record_time ( target : source : start end user system )
 {
- ECHO record_time called: $(target) / $(source) / $(user) / $(system) ;
     __USER_TIME__ on $(target) = $(user) ;
     __SYSTEM_TIME__ on $(target) = $(system) ;
 }
@@ -33,6 +34,7 @@
 {
     DEPENDS $(<) : $(>) ;
 }
+
 actions make
 {
     echo made from $(>) >> $(<)
@@ -41,17 +43,22 @@
 
 time foo : bar ;
 make bar : baz ;
-''')
+""")
 
-import re
-t.write('baz', 'nothing\n')
-t.run_build_system(
- '-ffile.jam',
- stdout=r'bar +user: [0-9\.]+ +system: +[0-9\.]+ *$',
- match = lambda actual,expected: re.search(expected,actual,re.DOTALL)
- )
-t.expect_addition('foo')
-t.expect_addition('bar')
+t.write("baz", "nothing\n")
+
+expected_output = """\.\.\.found 4 targets\.\.\.
+\.\.\.updating 2 targets\.\.\.
+make bar
+time foo
+bar +user: [0-9\.]+ +system: +[0-9\.]+ *
+\.\.\.updated 2 targets\.\.\.$
+"""
+
+t.run_build_system("-ffile.jam -d+1", stdout=expected_output,
+ match=lambda actual, expected: re.search(expected, actual, re.DOTALL))
+t.expect_addition("foo")
+t.expect_addition("bar")
 t.expect_nothing_more()
 
 t.cleanup()

Modified: branches/proto/v3/tools/build/v2/tools/builtin.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/builtin.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/builtin.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,45 +1,47 @@
-# Copyright 2002, 2003, 2004, 2005 Dave Abrahams
-# Copyright 2002, 2005, 2006, 2007 Rene Rivera
-# Copyright 2006 Juergen Hunold
-# Copyright 2005 Toon Knapen
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2002, 2003, 2004, 2005 Dave Abrahams
+# Copyright 2002, 2005, 2006, 2007 Rene Rivera
+# Copyright 2006 Juergen Hunold
+# Copyright 2005 Toon Knapen
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Defines standard features and rules.
 
+import alias ;
 import "class" : new ;
-
 import feature : feature compose ;
 import toolset : flags ;
 import errors : error ;
-import type ;
-import scanner ;
+import generate ;
 import generators ;
-import regex ;
-import virtual-target ;
 import os ;
-import symlink ;
-import alias ;
-import property ;
 import print ;
-import utility ;
 import project ;
-import generate ;
+import property ;
+import regex ;
+import scanner ;
+import stage ;
+import symlink ;
+import type ;
+import utility ;
+import virtual-target ;
+import types/register ;
+
+
+.os-names = amiga aix bsd cygwin darwin dos emx freebsd hpux linux netbsd
+ openbsd osf qnx qnxnto sgi solaris sun sunos svr4 sysv ultrix unix unixware
+ vms windows ;
 
-# This feature is used to determine which OS we're on.
-# In future, this may become <target-os> and <host-os>
-# The future is now...
+
+# Feature used to determine which OS we're on. New <target-os> and <host-os>
+# features should be used instead.
 local os = [ modules.peek : OS ] ;
-feature os : $(os) : propagated link-incompatible ;
+feature.feature os : $(os) : propagated link-incompatible ;
+
 
-.os-names = amiga aix bsd cygwin darwin dos emx freebsd hpux
- linux netbsd openbsd osf qnx qnxnto sgi solaris sun sunos
- svr4 sysv ultrix unix unixware vms windows ;
-
-# Translates from bjam current OS to the os tags used
-# in host-os and target-os. I.e. it returns the
-# running host-os.
+# Translates from bjam current OS to the os tags used in host-os and target-os,
+# i.e. returns the running host-os.
 local rule default-host-os ( )
 {
     local host-os ;
@@ -51,238 +53,230 @@
     {
         switch [ os.name ]
         {
- case NT : host-os = windows ;
- case AS400 : host-os = unix ;
- case MINGW : host-os = windows ;
- case BSDI : host-os = bsd ;
- case COHERENT : host-os = unix ;
- case DRAGONFLYBSD : host-os = bsd ;
- case IRIX : host-os = sgi ;
- case MACOSX : host-os = darwin ;
- case KFREEBSD : host-os = freebsd ;
- case LINUX : host-os = linux ;
- case * : host-os = unix ;
+ case NT : host-os = windows ;
+ case AS400 : host-os = unix ;
+ case MINGW : host-os = windows ;
+ case BSDI : host-os = bsd ;
+ case COHERENT : host-os = unix ;
+ case DRAGONFLYBSD : host-os = bsd ;
+ case IRIX : host-os = sgi ;
+ case MACOSX : host-os = darwin ;
+ case KFREEBSD : host-os = freebsd ;
+ case LINUX : host-os = linux ;
+ case * : host-os = unix ;
         }
     }
     return $(host-os:L) ;
 }
 
-# The two OS features define a known set of abstract OS
-# names. The host-os is the OS under which bjam is running.
-# Even though this should really be a fixed property we need
-# to list all the values to prevent unkown value errors.
-# Both set the default value to the current OS to account for
-# the default use case of building on the target OS.
-feature host-os : $(.os-names) ;
+
+# The two OS features define a known set of abstract OS names. The host-os is
+# the OS under which bjam is running. Even though this should really be a fixed
+# property we need to list all the values to prevent unknown value errors. Both
+# set the default value to the current OS to account for the default use case of
+# building on the target OS.
+feature.feature host-os : $(.os-names) ;
 feature.set-default host-os : [ default-host-os ] ;
 
-feature target-os
- : $(.os-names)
- : propagated link-incompatible ;
+feature.feature target-os : $(.os-names) : propagated link-incompatible ;
 feature.set-default target-os : [ default-host-os ] ;
 
 
-feature toolset : : implicit propagated symmetric ;
-
-feature stdlib : native : propagated composite ;
-
-feature link : shared static : propagated ;
-feature runtime-link : shared static : propagated ;
-feature runtime-debugging : on off : propagated ;
-
-
-feature optimization : off speed space : propagated ;
-feature profiling : off on : propagated ;
-feature inlining : off on full : propagated ;
-
-feature threading : single multi : propagated ;
-feature rtti : on off : propagated ;
-feature exception-handling : on off : propagated ;
-# Whether there is support for asynchronous EH (e.g. catching SEGVs)
-feature asynch-exceptions : off on : propagated ;
-# Whether all extern "C" functions are considered nothrow by default
-feature extern-c-nothrow : off on : propagated ;
-feature debug-symbols : on off : propagated ;
-feature define : : free ;
-feature undef : : free ;
-feature "include" : : free path ; #order-sensitive ;
-feature cflags : : free ;
-feature cxxflags : : free ;
-feature fflags : : free ;
-feature asmflags : : free ;
-feature linkflags : : free ;
-feature archiveflags : : free ;
-feature version : : free ;
-
-# Generic, i.e. non-lanugage specific, flags for tools.
-feature flags : : free ;
+feature.feature toolset : : implicit propagated symmetric ;
+feature.feature stdlib : native : propagated composite ;
+feature.feature link : shared static : propagated ;
+feature.feature runtime-link : shared static : propagated ;
+feature.feature runtime-debugging : on off : propagated ;
+feature.feature optimization : off speed space : propagated ;
+feature.feature profiling : off on : propagated ;
+feature.feature inlining : off on full : propagated ;
+feature.feature threading : single multi : propagated ;
+feature.feature rtti : on off : propagated ;
+feature.feature exception-handling : on off : propagated ;
+
+# Whether there is support for asynchronous EH (e.g. catching SEGVs).
+feature.feature asynch-exceptions : off on : propagated ;
+
+# Whether all extern "C" functions are considered nothrow by default.
+feature.feature extern-c-nothrow : off on : propagated ;
+
+feature.feature debug-symbols : on off : propagated ;
+feature.feature define : : free ;
+feature.feature undef : : free ;
+feature.feature "include" : : free path ; #order-sensitive ;
+feature.feature cflags : : free ;
+feature.feature cxxflags : : free ;
+feature.feature fflags : : free ;
+feature.feature asmflags : : free ;
+feature.feature linkflags : : free ;
+feature.feature archiveflags : : free ;
+feature.feature version : : free ;
 
+# Generic, i.e. non-language specific, flags for tools.
+feature.feature flags : : free ;
 feature.feature location-prefix : : free ;
 
 
-# The following features are incidental, since
-# in themself they have no effect on build products.
-# Not making them incidental will result in problems in corner
-# cases, for example:
-#
+# The following features are incidental since they have no effect on built
+# products. Not making them incidental will result in problems in corner cases,
+# e.g.:
+#
 # unit-test a : a.cpp : <use>b ;
 # lib b : a.cpp b ;
-#
-# Here, if <use> is not incidental, we'll decide we have two
-# targets for a.obj with different properties, and will complain.
 #
-# Note that making feature incidental does not mean it's ignored. It may
-# be ignored when creating the virtual target, but the rest of build process
-# will use them.
-feature use : : free dependency incidental ;
-feature dependency : : free dependency incidental ;
-feature implicit-dependency : : free dependency incidental ;
-
-feature warnings :
- on # enable default/"reasonable" warning level for the tool
- all # enable all possible warnings issued by the tool
- off # disable all warnings issued by the tool
+# Here, if <use> is not incidental, we'll decide we have two targets for a.obj
+# with different properties, and will complain.
+#
+# Note that making feature incidental does not mean it's ignored. It may be
+# ignored when creating the virtual target, but the rest of build process will
+# use them.
+feature.feature use : : free dependency incidental ;
+feature.feature dependency : : free dependency incidental ;
+feature.feature implicit-dependency : : free dependency incidental ;
+
+feature.feature warnings :
+ on # Enable default/"reasonable" warning level for the tool.
+ all # Enable all possible warnings issued by the tool.
+ off # Disable all warnings issued by the tool.
   : incidental propagated ;
 
-feature warnings-as-errors :
- off # do not fail the compilation if there are warnings
- on # fail the compilation if there are warnings
+feature.feature warnings-as-errors :
+ off # Do not fail the compilation if there are warnings.
+ on # Fail the compilation if there are warnings.
   : incidental propagated ;
 
-feature source : : free dependency incidental ;
-feature library : : free dependency incidental ;
-feature file : : free dependency incidental ;
-feature find-shared-library : : free ; #order-sensitive ;
-feature find-static-library : : free ; #order-sensitive ;
-feature library-path : : free path ; #order-sensitive ;
-# Internal feature.
-feature library-file : : free dependency ;
+feature.feature source : : free dependency incidental ;
+feature.feature library : : free dependency incidental ;
+feature.feature file : : free dependency incidental ;
+feature.feature find-shared-library : : free ; #order-sensitive ;
+feature.feature find-static-library : : free ; #order-sensitive ;
+feature.feature library-path : : free path ; #order-sensitive ;
 
-feature name : : free ;
-feature tag : : free ;
-feature search : : free path ; #order-sensitive ;
-feature location : : free path ;
+# Internal feature.
+feature.feature library-file : : free dependency ;
 
-feature dll-path : : free path ;
-feature hardcode-dll-paths : true false : incidental ;
+feature.feature name : : free ;
+feature.feature tag : : free ;
+feature.feature search : : free path ; #order-sensitive ;
+feature.feature location : : free path ;
+feature.feature dll-path : : free path ;
+feature.feature hardcode-dll-paths : true false : incidental ;
 
 
-# An internal feature that holds the paths of all dependency
-# dynamic libraries. On Windows, it's needed so that we can all
-# those paths to PATH when running applications.
-# On Linux, it's needed to add proper -rpath-link command line options.
-feature xdll-path : : free path ;
+# An internal feature that holds the paths of all dependency shared libraries.
+# On Windows, it's needed so that we can add all those paths to PATH when
+# running applications. On Linux, it's needed to add proper -rpath-link command
+# line options.
+feature.feature xdll-path : : free path ;
 
-#provides means to specify def-file for windows dlls.
-feature def-file : : free dependency ;
+# Provides means to specify def-file for windows DLLs.
+feature.feature def-file : : free dependency ;
 
-feature.feature suppress-import-lib : false true : incidental ;
+feature.feature suppress-import-lib : false true : incidental ;
 
-# This is internal feature which is used to store the name of
-# bjam action to call when building a target.
+# Internal feature used to store the name of a bjam action to call when building
+# a target.
 feature.feature action : : free ;
 
-# This feature is used to allow specific generators to run.
-# For example, QT tools can only be invoked when QT library
-# is used. In that case, <allow>qt will be in usage requirement
-# of the library.
-feature allow : : free ;
-
-# The addressing model to generate code for.
-# Currently a limited set only specifying the bit size of pointers.
-feature address-model : 16 32 64
- : propagated optional ;
+# This feature is used to allow specific generators to run. For example, QT
+# tools can only be invoked when QT library is used. In that case, <allow>qt
+# will be in usage requirement of the library.
+feature.feature allow : : free ;
+
+# The addressing model to generate code for. Currently a limited set only
+# specifying the bit size of pointers.
+feature.feature address-model : 16 32 64 : propagated optional ;
 
 # Type of CPU architecture to compile for.
-feature architecture :
+feature.feature architecture :
     # x86 and x86-64
     x86
+
     # ia64
     ia64
+
     # Sparc
     sparc
+
     # RS/6000 & PowerPC
     power
+
     # MIPS/SGI
     mips1 mips2 mips3 mips4 mips32 mips32r2 mips64
+
     # HP/PA-RISC
     parisc
- # Combined architectures for platforms/toolsets that support
- # building for multiple architectures at once. "combined"
- # would be the default multi-arch for the toolset.
- combined
- combined-x86-power
- #
+
+ # Combined architectures for platforms/toolsets that support building for
+ # multiple architectures at once. "combined" would be the default multi-arch
+ # for the toolset.
+ combined
+ combined-x86-power
+
     : propagated optional ;
 
 # The specific instruction set in an architecture to compile.
-feature instruction-set :
+feature.feature instruction-set :
     # x86 and x86-64
- i386 i486 i586 i686
- pentium pentium-mmx pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m
- prescott nocona
- conroe conroe-xe conroe-l allendale mermon mermon-xe kentsfield kentsfield-xe
- penryn wolfdale yorksfield nehalem
- k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp
- k8 opteron athlon64 athlon-fx
- winchip-c6 winchip2
- c3 c3-2
+ i386 i486 i586 i686 pentium pentium-mmx pentiumpro pentium2 pentium3
+ pentium3m pentium-m pentium4 pentium4m prescott nocona conroe conroe-xe
+ conroe-l allendale mermon mermon-xe kentsfield kentsfield-xe penryn wolfdale
+ yorksfield nehalem k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp
+ athlon-mp k8 opteron athlon64 athlon-fx winchip-c6 winchip2 c3 c3-2
+
     # ia64
     itanium itanium1 merced itanium2 mckinley
+
     # Sparc
- v7 cypress v8 supersparc sparclite hypersparc sparclite86x
- f930 f934 sparclet tsc701 v9 ultrasparc ultrasparc3
+ v7 cypress v8 supersparc sparclite hypersparc sparclite86x f930 f934
+ sparclet tsc701 v9 ultrasparc ultrasparc3
+
     # RS/6000 & PowerPC
- 401 403 405 405fp 440 440fp 505
- 601 602 603 603e 604 604e 620 630 740 7400 7450 750
- 801 821 823 860 970 8540
- power-common ec603e g3 g4 g5
- power power2 power3 power4 power5 powerpc powerpc64
- rios rios1 rsc rios2 rs64a
+ 401 403 405 405fp 440 440fp 505 601 602 603 603e 604 604e 620 630 740 7400
+ 7450 750 801 821 823 860 970 8540 power-common ec603e g3 g4 g5 power power2
+ power3 power4 power5 powerpc powerpc64 rios rios1 rsc rios2 rs64a
+
     # MIPS
- 4kc 4kp 5kc 20kc m4k
- r2000 r3000 r3900 r4000 r4100 r4300 r4400 r4600 r4650 r6000 r8000
- rm7000 rm9000 orion sb1
- vr4100 vr4111 vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
+ 4kc 4kp 5kc 20kc m4k r2000 r3000 r3900 r4000 r4100 r4300 r4400 r4600 r4650
+ r6000 r8000 rm7000 rm9000 orion sb1 vr4100 vr4111 vr4120 vr4130 vr4300
+ vr5000 vr5400 vr5500
+
     # HP/PA-RISC
     700 7100 7100lc 7200 7300 8000
- #
+
     : propagated optional ;
-
-
-# Used to select specific variant of C++ ABI is the compiler
-# supports several.
-feature c++abi : : propagated optional ;
-
-
-feature conditional : : incidental free ;
+
+# Used to select a specific variant of C++ ABI if the compiler supports several.
+feature.feature c++abi : : propagated optional ;
+
+feature.feature conditional : : incidental free ;
 
 # The value of 'no' prevents building of a target.
-feature build : yes no : optional ;
+feature.feature build : yes no : optional ;
 
 # Windows-specific features
 
-feature user-interface : console gui wince native auto ;
+feature.feature user-interface : console gui wince native auto ;
+
+feature.feature variant : : implicit composite propagated symmetric ;
 
-feature variant : : implicit composite propagated symmetric ;
 
 # Declares a new variant.
-# First determines explicit properties for this variant, by
-# refining parents' explicit properties with the passed explicit
-# properties. The result is remembered and will be used if
-# this variant is used as parent.
 #
-# Second, determines the full property set for this variant by
-# adding to the explicit properties default values for all properties
-# which neither present nor are symmetric.
+# First determines explicit properties for this variant, by refining parents'
+# explicit properties with the passed explicit properties. The result is
+# remembered and will be used if this variant is used as parent.
+#
+# Second, determines the full property set for this variant by adding to the
+# explicit properties default values for all missing non-symmetric properties.
 #
-# Lastly, makes appropriate value of 'variant' property expand
-# to the full property set.
-rule variant ( name # Name of the variant
- : parents-or-properties * # Specifies parent variants, if
- # 'explicit-properties' are given,
- # and explicit-properties otherwise.
- : explicit-properties * # Explicit properties.
+# Lastly, makes appropriate value of 'variant' property expand to the full
+# property set.
+rule variant ( name # Name of the variant
+ : parents-or-properties * # Specifies parent variants, if
+ # 'explicit-properties' are given, and
+ # explicit-properties or parents otherwise.
+ : explicit-properties * # Explicit properties.
     )
 {
     local parents ;
@@ -302,97 +296,99 @@
         parents = $(parents-or-properties) ;
     }
 
- # The problem is that we have to check for conflicts
- # between base variants.
+ # The problem is that we have to check for conflicts between base variants.
     if $(parents[2])
     {
- error "multiple base variants are not yet supported" ;
+ errors.error "multiple base variants are not yet supported" ;
     }
-
+
     local inherited ;
- # Add explicitly specified properties for parents
+ # Add explicitly specified properties for parents.
     for local p in $(parents)
     {
- # TODO: the check may be sticter
+ # TODO: This check may be made stricter.
         if ! [ feature.is-implicit-value $(p) ]
         {
- error "Invalid base varaint" $(p) ;
+ errors.error "Invalid base variant" $(p) ;
         }
-
+
         inherited += $(.explicit-properties.$(p)) ;
     }
     property.validate $(explicit-properties) ;
- explicit-properties = [ property.refine $(inherited) : $(explicit-properties) ] ;
-
- # Record explicitly specified properties for this variant
- # We do this after inheriting parents' properties, so that
- # they affect other variants, derived from this one.
+ explicit-properties = [ property.refine $(inherited)
+ : $(explicit-properties) ] ;
+
+ # Record explicitly specified properties for this variant. We do this after
+ # inheriting parents' properties so they affect other variants derived from
+ # this one.
     .explicit-properties.$(name) = $(explicit-properties) ;
-
+
     feature.extend variant : $(name) ;
- feature.compose <variant>$(name) : $(explicit-properties) ;
+ feature.compose <variant>$(name) : $(explicit-properties) ;
 }
 IMPORT $(__name__) : variant : : variant ;
 
-variant debug : <optimization>off <debug-symbols>on <inlining>off <runtime-debugging>on ;
-variant release : <optimization>speed <debug-symbols>off <inlining>full
+
+variant debug : <optimization>off <debug-symbols>on <inlining>off
+ <runtime-debugging>on ;
+variant release : <optimization>speed <debug-symbols>off <inlining>full
                   <runtime-debugging>off <define>NDEBUG ;
 variant profile : release : <profiling>on <debug-symbols>on ;
 
+
 class searched-lib-target : abstract-file-target
 {
- rule __init__ ( name
- : project
- : shared ?
+ rule __init__ ( name
+ : project
+ : shared ?
         : search *
         : action
     )
     {
- abstract-file-target.__init__ $(name) : SEARCHED_LIB : $(project)
+ abstract-file-target.__init__ $(name) : SEARCHED_LIB : $(project)
           : $(action) : ;
-
+
         self.shared = $(shared) ;
         self.search = $(search) ;
     }
-
+
     rule shared ( )
     {
         return $(self.shared) ;
     }
-
+
     rule search ( )
     {
         return $(self.search) ;
     }
-
+
     rule actualize-location ( target )
     {
         NOTFILE $(target) ;
- }
-
+ }
+
     rule path ( )
     {
     }
-}
-
-import types/register ;
-import stage ;
+}
 
 
-class c-scanner : scanner
+class c-scanner : scanner
 {
- import regex virtual-target path scanner ;
-
+ import path ;
+ import regex ;
+ import scanner ;
+ import virtual-target ;
+
     rule __init__ ( includes * )
     {
         scanner.__init__ ;
-
+
         for local i in $(includes)
- {
+ {
             self.includes += [ path.native $(i:G=) ] ;
         }
-
- }
+ }
 
     rule pattern ( )
     {
@@ -401,72 +397,70 @@
 
     rule process ( target : matches * : binding )
     {
- local angle = [ regex.transform $(matches) : "<(.*)>" ] ;
+ local angle = [ regex.transform $(matches) : "<(.*)>" ] ;
         local quoted = [ regex.transform $(matches) : "\"(.*)\"" ] ;
 
         # CONSIDER: the new scoping rule seem to defeat "on target" variables.
- local g = [ on $(target) return $(HDRGRIST) ] ;
+ local g = [ on $(target) return $(HDRGRIST) ] ;
         local b = [ NORMALIZE_PATH $(binding:D) ] ;
 
- # Attach binding of including file to included targets.
- # When target is directly created from virtual target
- # this extra information is unnecessary. But in other
- # cases, it allows to distinguish between two headers of the
- # same name included from different places.
- # We don't need this extra information for angle includes,
- # since they should not depend on including file (we can't
- # get literal "." in include path).
+ # Attach binding of including file to included targets. When a target is
+ # directly created from virtual target this extra information is
+ # unnecessary. But in other cases, it allows us to distinguish between
+ # two headers of the same name included from different places. We don't
+ # need this extra information for angle includes, since they should not
+ # depend on including file (we can't get literal "." in include path).
         local g2 = $(g)"#"$(b) ;
-
+
         angle = $(angle:G=$(g)) ;
         quoted = $(quoted:G=$(g2)) ;
-
+
         local all = $(angle) $(quoted) ;
 
         INCLUDES $(target) : $(all) ;
         NOCARE $(all) ;
         SEARCH on $(angle) = $(self.includes:G=) ;
         SEARCH on $(quoted) = $(b) $(self.includes:G=) ;
-
- # Just propagate current scanner to includes, in a hope
- # that includes do not change scanners.
+
+ # Just propagate the current scanner to includes in hope that includes
+ # do not change scanners.
         scanner.propagate $(__name__) : $(angle) $(quoted) : $(target) ;
-
+
         ISFILE $(angle) $(quoted) ;
- }
+ }
 }
 
-scanner.register c-scanner : include ;
 
-type.set-scanner CPP : c-scanner ;
+type.register H : h ;
+type.register HPP : hpp : H ;
+type.register C : c ;
 
+scanner.register c-scanner : include ;
 
-type.register H : h ;
-type.register HPP : hpp : H ;
-type.register C : c ;
+type.set-scanner CPP : c-scanner ;
+type.set-scanner C : c-scanner ;
 
-type.set-scanner C : c-scanner ;
 
-# The generator class for libraries (target type LIB). Depending on properties it will
-# request building of the approapriate specific type -- SHARED_LIB, STATIC_LIB or
-# SHARED_LIB.
+# The generator class for libraries (target type LIB). Depending on properties
+# it will request building of the appropriate specific library type --
+# -- SHARED_LIB, STATIC_LIB or SHARED_LIB.
 class lib-generator : generator
 {
     rule __init__ ( * : * )
     {
         generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
     }
-
+
     rule run ( project name ? : property-set : sources * )
     {
- # The lib generator is composing, and can be only invoked with
+ # The lib generator is composing, and can be only invoked with an
         # explicit name. This check is present in generator.run (and so in
- # builtin.linking-generator), but duplicate it here to avoid doing
- # extra work.
+ # builtin.linking-generator) but duplicated here to avoid doing extra
+ # work.
         if $(name)
- {
+ {
             local properties = [ $(property-set).raw ] ;
- # Determine the needed target type
+ # Determine the needed target type.
             local actual-type ;
                 # <source>files can be generated by <conditional>@rule feature
                 # in which case we don't consider it a SEARCHED_LIB type.
@@ -477,129 +471,129 @@
             }
             else if <file> in $(properties:G)
             {
- # The generator for
                 actual-type = LIB ;
- }
+ }
             else if <link>shared in $(properties)
             {
                 actual-type = SHARED_LIB ;
             }
- else
+ else
             {
                 actual-type = STATIC_LIB ;
             }
             property-set = [ $(property-set).add-raw <main-target-type>LIB ] ;
             # Construct the target.
- return [ generators.construct $(project) $(name) : $(actual-type)
- : $(property-set) : $(sources) ] ;
- }
- }
-
+ return [ generators.construct $(project) $(name) : $(actual-type)
+ : $(property-set) : $(sources) ] ;
+ }
+ }
+
     rule viable-source-types ( )
     {
         return * ;
- }
+ }
 }
 
+
 generators.register [ new lib-generator builtin.lib-generator : : LIB ] ;
 
+
 # The implementation of the 'lib' rule. Beyond standard syntax that rule allows
-# simplified:
-# lib a b c ;
-# so we need to write code to handle that syntax.
-rule lib ( names + : sources * : requirements * : default-build *
+# simplified: "lib a b c ;".
+rule lib ( names + : sources * : requirements * : default-build *
     : usage-requirements * )
 {
- local result ;
- local project = [ project.current ] ;
-
- # This is a circular module dependency, so it must be imported here
- import targets ;
-
     if $(names[2])
     {
         if <name> in $(requirements:G)
         {
             errors.user-error "When several names are given to the 'lib' rule" :
- "it's not allowed to specify the <name> feature. " ;
- }
+ "it's not allowed to specify the <name> feature." ;
+ }
         if $(sources)
         {
             errors.user-error "When several names are given to the 'lib' rule" :
- "it's not allowed to specify sources. " ;
- }
+ "it's not allowed to specify sources." ;
+ }
     }
-
+
+ # This is a circular module dependency so it must be imported here.
+ import targets ;
+
+ local project = [ project.current ] ;
+ local result ;
+
     for local name in $(names)
- {
+ {
         local r = $(requirements) ;
- # Support " lib a ; " and " lib a b c ; " syntaxes.
+ # Support " lib a ; " and " lib a b c ; " syntax.
         if ! $(sources) && ! <name> in $(requirements:G)
                         && ! <file> in $(requirements:G)
         {
             r += <name>$(name) ;
- }
+ }
         result += [ targets.main-target-alternative
- [ new typed-target $(name) : $(project) : LIB
- : [ targets.main-target-sources $(sources) : $(name) ]
- : [ targets.main-target-requirements $(r) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
- : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
- ] ] ;
- }
+ [ new typed-target $(name) : $(project) : LIB
+ : [ targets.main-target-sources $(sources) : $(name) ]
+ : [ targets.main-target-requirements $(r) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
+ ] ] ;
+ }
     return $(result) ;
 }
 IMPORT $(__name__) : lib : : lib ;
 
+
 class searched-lib-generator : generator
 {
     import property-set ;
-
+
     rule __init__ ( )
     {
- # The requirements cause the generators to be tried *only* when we're building
- # lib target and there's 'search' feature. This seems ugly --- all we want
- # is make sure searched-lib-generator is not invoced deep in transformation
- # search.
+ # The requirements cause the generators to be tried *only* when we're
+ # building a lib target with a 'search' feature. This seems ugly --- all
+ # we want is to make sure searched-lib-generator is not invoked deep
+ # inside transformation search to produce intermediate targets.
         generator.__init__ searched-lib-generator : : SEARCHED_LIB ;
     }
-
+
     rule run ( project name ? : property-set : sources * )
     {
         if $(name)
         {
- # If name is empty, it means we're called not from top-level.
- # In this case, we just fail immediately, because searched-lib-generator
- # cannot be used to produce intermediate targets.
-
- local properties = [ $(property-set).raw ] ;
+ # If 'name' is empty, it means we have not been called to build a
+ # top-level target. In this case, we just fail immediately, because
+ # searched-lib-generator cannot be used to produce intermediate
+ # targets.
+
+ local properties = [ $(property-set).raw ] ;
             local shared ;
             if <link>shared in $(properties)
             {
                 shared = true ;
- }
-
+ }
+
             local search = [ feature.get-values <search> : $(properties) ] ;
 
- a = [ new null-action $(property-set) ] ;
+ local a = [ new null-action $(property-set) ] ;
             local lib-name = [ feature.get-values <name> : $(properties) ] ;
             lib-name ?= $(name) ;
- local t = [ new searched-lib-target $(lib-name) : $(project) : $(shared)
- : $(search)
- : $(a)
- ] ;
+ local t = [ new searched-lib-target $(lib-name) : $(project)
+ : $(shared) : $(search) : $(a) ] ;
             # We return sources for a simple reason. If there's
- # lib png : z : <name>png ;
- # the 'z' target should be returned, so that apps linking to
- # 'png' will link to 'z', too.
+ # lib png : z : <name>png ;
+ # the 'z' target should be returned, so that apps linking to 'png'
+ # will link to 'z', too.
             return [ property-set.create <xdll-path>$(search) ]
                    [ virtual-target.register $(t) ] $(sources) ;
         }
- }
+ }
 }
 
 generators.register [ new searched-lib-generator ] ;
 
+
 class prebuilt-lib-generator : generator
 {
     rule __init__ ( * : * )
@@ -611,94 +605,95 @@
     {
         local f = [ $(property-set).get <file> ] ;
         return $(f) $(sources) ;
- }
+ }
 }
 
-generators.register
+generators.register
   [ new prebuilt-lib-generator builtin.prebuilt : : LIB : <file> ] ;
 
 generators.override builtin.prebuilt : builtin.lib-generator ;
 
-
-class compile-action : action
+
+class compile-action : action
 {
     import sequence ;
-
+
     rule __init__ ( targets * : sources * : action-name : properties * )
     {
         action.__init__ $(targets) : $(sources) : $(action-name) : $(properties) ;
     }
-
-
- # For all virtual targets for the same dependency graph as self,
- # i.e. which belong to the same main target, add their directories
- # to include path.
+
+ # For all virtual targets for the same dependency graph as self, i.e. which
+ # belong to the same main target, add their directories to the include path.
     rule adjust-properties ( property-set )
- {
+ {
         local s = [ $(self.targets[1]).creating-subvariant ] ;
- return [ $(property-set).add-raw
+ return [ $(property-set).add-raw
           [ $(s).implicit-includes "include" : H ] ] ;
- }
+ }
 }
 
-# Declare a special compiler generator.
-# The only thing it does is changing the type used to represent
-# 'action' in the constructed dependency graph to 'compile-action'.
-# That class in turn adds additional include paths to handle a case
-# when a source file includes headers which are generated themselfs.
+
+# Declare a special compiler generator. The only thing it does is changing the
+# type used to represent 'action' in the constructed dependency graph to
+# 'compile-action'. That class in turn adds additional include paths to handle
+# cases when a source file includes headers which are generated themselves.
 class C-compiling-generator : generator
 {
- rule __init__ ( id : source-types + : target-types + :
- requirements * : optional-properties * )
+ rule __init__ ( id : source-types + : target-types + : requirements *
+ : optional-properties * )
     {
         generator.__init__ $(id) : $(source-types) : $(target-types) :
- $(requirements) : $(optional-properties) ;
+ $(requirements) : $(optional-properties) ;
     }
-
+
     rule action-class ( )
     {
         return compile-action ;
     }
 }
 
-rule register-c-compiler ( id : source-types + : target-types + :
- requirements * : optional-properties * )
+
+rule register-c-compiler ( id : source-types + : target-types + : requirements *
+ : optional-properties * )
 {
- local g = [ new C-compiling-generator $(id) : $(source-types)
- : $(target-types) : $(requirements) : $(optional-properties) ] ;
- generators.register $(g) ;
+ generators.register [ new C-compiling-generator $(id) : $(source-types)
+ : $(target-types) : $(requirements) : $(optional-properties) ] ;
 }
 
-# FIXME: this is ugly, should find a better way (we'd want client code to
-# register all generators as "generator.some-rule", not with "some-module.some-rule".)
+# FIXME: this is ugly, should find a better way (we'd like client code to
+# register all generators as "generators.some-rule" instead of
+# "some-module.some-rule".)
 IMPORT $(__name__) : register-c-compiler : : generators.register-c-compiler ;
 
+
 # The generator class for handling EXE and SHARED_LIB creation.
 class linking-generator : generator
 {
- import property-set ;
- import type ;
     import path ;
     import project ;
-
- rule __init__ ( id
- composing ? : # Specify if generator is composing. The generator will be
- # composing if non-empty string is passed, or parameter is
- # not given. To make generator non-composing, pass empty
- # string ("")
- source-types + : target-types + :
+ import property-set ;
+ import type ;
+
+ rule __init__ ( id
+ composing ? : # The generator will be composing if a non-empty
+ # string is passed or the parameter is not given. To
+ # make the generator non-composing, pass an empty
+ # string ("").
+ source-types + :
+ target-types + :
         requirements * )
     {
         composing ?= true ;
- generator.__init__ $(id) $(composing) : $(source-types) : $(target-types) :
- $(requirements) ;
+ generator.__init__ $(id) $(composing) : $(source-types)
+ : $(target-types) : $(requirements) ;
     }
-
+
     rule run ( project name ? : property-set : sources + )
- {
- sources += [ $(property-set).get <library> ] ;
-
- # Add <library-path> properties for all searched libraries
+ {
+ sources += [ $(property-set).get <library> ] ;
+
+ # Add <library-path> properties for all searched libraries.
         local extra ;
         for local s in $(sources)
         {
@@ -708,62 +703,60 @@
                 extra += <library-path>$(search) ;
             }
         }
-
- # It's possible that sources include shared libraries that
- # did not came from 'lib' targets. For example, .so files
- # specified as sources.
- # In this case we have
- # - add extra dll-path properties
- # - propagate extra xdll-path properties so that application
- # linking to use will get xdll-path to those libraries.
+
+ # It's possible that sources include shared libraries that did not came
+ # from 'lib' targets, e.g. .so files specified as sources. In this case
+ # we have to add extra dll-path properties and propagate extra xdll-path
+ # properties so that application linking to use will get xdll-path to
+ # those libraries.
         local extra-xdll-paths ;
         for local s in $(sources)
         {
- if [ type.is-derived [ $(s).type ] SHARED_LIB ] && ! [ $(s).action ]
+ if [ type.is-derived [ $(s).type ] SHARED_LIB ] && ! [ $(s).action ]
             {
- # Unfortunately, we don't have a good way to find the path
- # to a file, so use this nasty approach.
+ # Unfortunately, we don't have a good way to find the path to a
+ # file, so use this nasty approach.
                 local p = [ $(s).project ] ;
                 local location = [ path.root [ $(s).name ]
- [ $(p).get source-location ] ] ;
+ [ $(p).get source-location ] ] ;
                 extra-xdll-paths += [ path.parent $(location) ] ;
- }
+ }
         }
-
- # Hardcode dll paths only when linking executables.
+
+ # Hardcode DLL paths only when linking executables.
         # Pros: don't need to relink libraries when installing.
- # Cons: "standalone" libraries (plugins, python extensions)
- # can't hardcode paths to dependent libraries.
+ # Cons: "standalone" libraries (plugins, python extensions) can't
+ # hardcode paths to dependent libraries.
         if [ $(property-set).get <hardcode-dll-paths> ] = true
- && [ type.is-derived $(self.target-types[1]) EXE ]
+ && [ type.is-derived $(self.target-types[1]) EXE ]
         {
             local xdll-path = [ $(property-set).get <xdll-path> ] ;
             extra += <dll-path>$(xdll-path) <dll-path>$(extra-xdll-paths) ;
         }
-
+
         if $(extra)
         {
             property-set = [ $(property-set).add-raw $(extra) ] ;
- }
-
+ }
+
         local result = [ generator.run $(project) $(name) : $(property-set)
- : $(sources) ] ;
-
+ : $(sources) ] ;
+
         local ur ;
         if $(result)
- {
- ur = [ extra-usage-requirements $(result) : $(property-set) ] ;
- ur = [ $(ur).add
- [ property-set.create <xdll-path>$(extra-xdll-paths) ] ] ;
- }
+ {
+ ur = [ extra-usage-requirements $(result) : $(property-set) ] ;
+ ur = [ $(ur).add
+ [ property-set.create <xdll-path>$(extra-xdll-paths) ] ] ;
+ }
         return $(ur) $(result) ;
     }
-
+
     rule extra-usage-requirements ( created-targets * : property-set )
- {
- local result = [ property-set.empty ] ;
+ {
+ local result = [ property-set.empty ] ;
         local extra ;
-
+
         # Add appropricate <xdll-path> usage requirements.
         local raw = [ $(property-set).raw ] ;
         if <link>shared in $(raw)
@@ -772,41 +765,40 @@
             local pwd = [ path.pwd ] ;
             for local t in $(created-targets)
             {
- if [ type.is-derived [ $(t).type ] SHARED_LIB ]
+ if [ type.is-derived [ $(t).type ] SHARED_LIB ]
                 {
                     paths += [ path.root [ path.make [ $(t).path ] ] $(pwd) ] ;
- }
- }
+ }
+ }
             extra += $(paths:G=<xdll-path>) ;
         }
-
+
         # We need to pass <xdll-path> features that we've got from sources,
- # because if shared library is built, exe which uses it must know paths
- # to other shared libraries this one depends on, to be able to find them
- # all at runtime.
-
- # Just pass all features in property-set, it's theorically possible
- # that we'll propagate <xdll-path> features explicitly specified by
- # the user, but then the user's to blaim for using internal feature.
+ # because if a shared library is built, exe using it needs to know paths
+ # to other shared libraries this one depends on in order to be able to
+ # find them all at runtime.
+
+ # Just pass all features in property-set, it's theorically possible that
+ # we'll propagate <xdll-path> features explicitly specified by the user,
+ # but then the user's to blaim for using an internal feature.
         local values = [ $(property-set).get <xdll-path> ] ;
         extra += $(values:G=<xdll-path>) ;
-
+
         if $(extra)
         {
             result = [ property-set.create $(extra) ] ;
         }
         return $(result) ;
     }
-
+
     rule generated-targets ( sources + : property-set : project name ? )
     {
- local sources2 ; # sources to pass to inherited rule
- local properties2 ; # properties to pass to inherited rule
- local libraries ; # sources which are libraries
-
- # Searched libraries are not passed as argument to linker
- # but via some option. So, we pass them to the action
- # via property.
+ local sources2 ; # Sources to pass to inherited rule.
+ local properties2 ; # Properties to pass to inherited rule.
+ local libraries ; # Library sources.
+
+ # Searched libraries are not passed as arguments to the linker but via
+ # some option. So, we pass them to the action using a property.
         properties2 = [ $(property-set).raw ] ;
         local fsa ;
         local fst ;
@@ -815,75 +807,73 @@
             if [ type.is-derived [ $(s).type ] SEARCHED_LIB ]
             {
                 local name = [ $(s).name ] ;
- if [ $(s).shared ]
- {
- fsa += $(name) ;
+ if [ $(s).shared ]
+ {
+ fsa += $(name) ;
                 }
                 else
                 {
                     fst += $(name) ;
- }
+ }
             }
             else
             {
                 sources2 += $(s) ;
             }
         }
- properties2 += <find-shared-library>$(fsa:J=&&)
+ properties2 += <find-shared-library>$(fsa:J=&&)
                        <find-static-library>$(fst:J=&&) ;
-
- local spawn = [ generator.generated-targets $(sources2)
- : [ property-set.create $(properties2) ] : $(project) $(name) ] ;
-
- return $(spawn) ;
- }
-}
-
-rule register-linker ( id composing ? : source-types + : target-types + :
- requirements * )
-{
- local g = [ new linking-generator $(id) $(composing) : $(source-types)
- : $(target-types) : $(requirements) ] ;
- generators.register $(g) ;
+
+ return [ generator.generated-targets $(sources2)
+ : [ property-set.create $(properties2) ] : $(project) $(name) ] ;
+ }
 }
 
+
+rule register-linker ( id composing ? : source-types + : target-types +
+ : requirements * )
+{
+ generators.register [ new linking-generator $(id) $(composing)
+ : $(source-types) : $(target-types) : $(requirements) ] ;
+}
+
+
 # The generator class for handling STATIC_LIB creation.
 class archive-generator : generator
 {
- import property-set ;
+ import property-set ;
 
- rule __init__ ( id composing ? : source-types + : target-types + :
- requirements * )
+ rule __init__ ( id composing ? : source-types + : target-types +
+ : requirements * )
     {
         composing ?= true ;
- generator.__init__ $(id) $(composing) : $(source-types) : $(target-types) :
- $(requirements) ;
+ generator.__init__ $(id) $(composing) : $(source-types)
+ : $(target-types) : $(requirements) ;
     }
-
+
     rule run ( project name ? : property-set : sources + )
- {
- sources += [ $(property-set).get <library> ] ;
-
+ {
+ sources += [ $(property-set).get <library> ] ;
+
         local result = [ generator.run $(project) $(name) : $(property-set)
- : $(sources) ] ;
-
- # For static linking, if we get a library in source, we can't
- # directly link to it. So, we need to cause our dependencies
- # to link to that library. There are two approaches:
+ : $(sources) ] ;
+
+ # For static linking, if we get a library in source, we can't directly
+ # link to it so we need to cause our dependencies to link to that
+ # library. There are two approaches:
         # - adding the library to the list of returned targets.
         # - using the <library> usage requirements.
         # The problem with the first is:
- #
+ #
         # lib a1 : : <file>liba1.a ;
         # lib a2 : a2.cpp a1 : <link>static ;
         # install dist : a2 ;
         #
- # here we'll try to install 'a1', even though it's not necessary in
- # the general case.
- # With the second approaches, even indirect dependents will link to
- # the library, but it should not cause any harm.
- # So, return all LIB sources together with created targets,
- # so that dependents link to them.
+ # here we'll try to install 'a1', even though it's not necessary in the
+ # general case. With the second approach, even indirect dependants will
+ # link to the library, but it should not cause any harm. So, return all
+ # LIB sources together with created targets, so that dependants link to
+ # them.
         local usage-requirements ;
         if [ $(property-set).get <link> ] = static
         {
@@ -892,41 +882,36 @@
                 if [ type.is-derived [ $(t).type ] LIB ]
                 {
                     usage-requirements += <library>$(t) ;
- }
- }
+ }
+ }
         }
-
+
         usage-requirements = [ property-set.create $(usage-requirements) ] ;
-
+
         return $(usage-requirements) $(result) ;
- }
+ }
 }
 
-rule register-archiver ( id composing ? : source-types + : target-types + :
- requirements * )
+
+rule register-archiver ( id composing ? : source-types + : target-types +
+ : requirements * )
 {
- local g = [ new archive-generator $(id) $(composing) : $(source-types)
- : $(target-types) : $(requirements) ] ;
- generators.register $(g) ;
+ generators.register [ new archive-generator $(id) $(composing)
+ : $(source-types) : $(target-types) : $(requirements) ] ;
 }
 
-# Generators that accepts everything, and produces nothing.
-# Usefull as general fallback for toolset-specific actions, like
-# PCH generation.
+
+# Generator that accepts everything and produces nothing. Useful as a general
+# fallback for toolset-specific actions like PCH generation.
 class dummy-generator : generator
 {
     import property-set ;
-
+
     rule run ( project name ? : property-set : sources + )
     {
         return [ property-set.empty ] ;
     }
 }
 
-
-
-IMPORT $(__name__) : register-linker register-archiver
- : : generators.register-linker generators.register-archiver ;
-
-
-
+IMPORT $(__name__) : register-linker register-archiver
+ : : generators.register-linker generators.register-archiver ;

Modified: branches/proto/v3/tools/build/v2/tools/cast.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/cast.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/cast.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -10,7 +10,7 @@
 # This is done with:
 #
 # exe main : main.cpp [ cast _ moccable-cpp : widget.cpp ] ;
-#
+#
 # Boost.Build will assing target type CPP to both main.cpp and widget.cpp.
 # Then, the cast rule will change target type of widget.cpp to
 # MOCCABLE-CPP, and Qt support will run MOC tool as part of build process.
@@ -22,22 +22,25 @@
 # cast, as defining new target type + generator for that type is somewhat
 # simpler then defining main target rule.
 
-import project type targets ;
 import "class" : new ;
 import errors ;
+import project ;
 import property-set ;
+import targets ;
+import type ;
+
 
 class cast-target-class : typed-target
 {
     import type ;
-
- rule __init__ ( name : project : type
- : sources * : requirements * : default-build * : usage-requirements * )
+
+ rule __init__ ( name : project : type : sources * : requirements *
+ : default-build * : usage-requirements * )
     {
- typed-target.__init__ $(name) : $(project) : $(type)
- : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ;
+ typed-target.__init__ $(name) : $(project) : $(type) : $(sources)
+ : $(requirements) : $(default-build) : $(usage-requirements) ;
     }
-
+
     rule construct ( name : source-targets * : property-set )
     {
         local result ;
@@ -47,43 +50,42 @@
             {
                 ECHO "error: source to the 'cast' rule is not a file!" ;
                 EXIT ;
- }
+ }
             if [ $(s).action ]
             {
                 ECHO "error: only non-derived target are allowed for 'cast'." ;
                 ECHO "error: when building " [ full-name ] ;
                 EXIT ;
- }
+ }
             local r = [ $(s).clone-with-different-type $(self.type) ] ;
             result += [ virtual-target.register $(r) ] ;
         }
-
         return [ property-set.empty ] $(result) ;
- }
-
+ }
 }
 
-rule cast ( name type : sources * : requirements * : default-build *
+
+rule cast ( name type : sources * : requirements * : default-build *
     : usage-requirements * )
 {
     local project = [ project.current ] ;
-
+
     local real-type = [ type.type-from-rule-name $(type) ] ;
     if ! $(real-type)
     {
- errors.user-error "No type corresponds to main target rule nam '$(type)'"
- : "Hint: try lowercase name" ;
+ errors.user-error "No type corresponds to main target rule name '$(type)'"
+ : "Hint: try lowercase name" ;
     }
-
-
- # This is a circular module dependency, so it must be imported here
+
+ # This is a circular module dependency so it must be imported here.
     import targets ;
     targets.main-target-alternative
- [ new cast-target-class $(name) : $(project) : $(real-type)
- : [ targets.main-target-sources $(sources) : $(name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
- : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
- ] ;
+ [ new cast-target-class $(name) : $(project) : $(real-type)
+ : [ targets.main-target-sources $(sources) : $(name) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
+ ] ;
 }
+
 IMPORT $(__name__) : cast : : cast ;

Modified: branches/proto/v3/tools/build/v2/tools/common.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/common.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/common.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,9 +1,9 @@
-# Copyright 2003, 2005 Dave Abrahams
-# Copyright 2005, 2006 Rene Rivera
-# Copyright 2005 Toon Knapen
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003, 2005 Dave Abrahams
+# Copyright 2005, 2006 Rene Rivera
+# Copyright 2005 Toon Knapen
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Provides actions common to all toolsets, for as making directoies and
 # removing files.
@@ -31,41 +31,43 @@
 
 # Configurations
 #
-# The following class helps to manage toolset configurations. Each configuration
-# has unique ID and one or more parameters. A typical example of unique ID is
-# a condition generated by 'common.check-init-parameters' rule. Other kinds of
-# ID can be used. Parameters may include any details about the configuration like
-# 'command', 'path', etc.
-#
-# A configuration may be in one of two states:
-#
-# - registered - a toolset configuration is registered (by autodetection code
-# for instance) but is not used. I.e. 'toolset.using' wasn't yet been called
-# for this configuration.
-# - used - once called 'toolset.using' marks the configuration as 'used'.
-#
-# The main difference between the states is that while a configuration is
-# 'registered' its options can be freely changed. This is useful in particular
-# for autodetection code - all detected configurations may be safely overwritten
-# by a user.
+# The following class helps to manage toolset configurations. Each configuration
+# has a unique ID and one or more parameters. A typical example of a unique ID
+# is a condition generated by 'common.check-init-parameters' rule. Other kinds
+# of IDs can be used. Parameters may include any details about the configuration
+# like 'command', 'path', etc.
+#
+# A toolset configuration may be in one of the following states:
+#
+# - registered
+# Configuration has been registered (e.g. by autodetection code) but has
+# not yet been marked as used, i.e. 'toolset.using' rule has not yet been
+# called for it.
+# - used
+# Once called 'toolset.using' rule marks the configuration as 'used'.
+#
+# The main difference between the states above is that while a configuration is
+# 'registered' its options can be freely changed. This is useful in particular
+# for autodetection code - all detected configurations may be safely overwritten
+# by user code.
 
 class configurations
 {
- import errors : error ;
+ import errors ;
 
     rule __init__ ( )
     {
     }
-
- # Registers a configuration.
+
+ # Registers a configuration.
     #
- # Returns 'true' if the configuration has been added and an empty value if
+ # Returns 'true' if the configuration has been added and an empty value if
     # it already exists. Reports an error if the configuration is 'used'.
     rule register ( id )
     {
- if $(id) in $(self.used)
+ if $(id) in $(self.used)
         {
- error "common: the configuration '$(id)' is in use" ;
+ errors.error "common: the configuration '$(id)' is in use" ;
         }
 
         local retval ;
@@ -74,28 +76,28 @@
         {
             self.all += $(id) ;
 
- # indicate that a new configuration has been added
+ # Indicate that a new configuration has been added.
             retval = true ;
         }
 
         return $(retval) ;
     }
 
- # Mark a configuration as 'used'.
+ # Mark a configuration as 'used'.
     #
- # Returns 'true' if the state of the configuration has been changed to
+ # Returns 'true' if the state of the configuration has been changed to
     # 'used' and an empty value if it the state wasn't changed. Reports an error
     # if the configuration isn't known.
     rule use ( id )
     {
         if ! $(id) in $(self.all)
         {
- error "common: the configuration '$(id)' is not known" ;
+ errors.error "common: the configuration '$(id)' is not known" ;
         }
 
         local retval ;
 
- if ! $(id) in $(self.used)
+ if ! $(id) in $(self.used)
         {
             self.used += $(id) ;
 
@@ -117,31 +119,30 @@
     {
         return $(self.used) ;
     }
-
+
     # Returns the value of a configuration parameter.
     rule get ( id : param )
     {
- return $(self.$(param).$(id)) ;
+ return $(self.$(param).$(id)) ;
     }
 
     # Sets the value of a configuration parameter.
     rule set ( id : param : value * )
     {
- self.$(param).$(id) = $(value) ;
+ self.$(param).$(id) = $(value) ;
     }
 }
 
 
-# The rule checks toolset parameters. Each trailing parameter
-# should be a pair of parameter name and parameter value.
-# The rule will check that each parameter either has value in
-# each invocation, or has no value in each invocation. Also,
-# the rule will check that the combination of all parameter values is
-# unique in all invocations.
+# The rule for checking toolset parameters. Trailing parameters should all be
+# parameter name/value pairs. The rule will check that each parameter either has
+# a value in each invocation or has no value in each invocation. Also, the rule
+# will check that the combination of all parameter values is unique in all
+# invocations.
 #
-# Each parameter name corresponds to subfeature. This rule will declare subfeature
-# the first time non-empty parameter value is passed, and will extend it with
-# all the values.
+# Each parameter name corresponds to a subfeature. This rule will declare
+# a subfeature the first time a non-empty parameter value is passed and will
+# extend it with all the values.
 #
 # The return value from this rule is a condition to be used for flags settings.
 rule check-init-parameters ( toolset : * )
@@ -152,8 +153,8 @@
     {
         local name = $($(index)[1]) ;
         local value = $($(index)[2]) ;
-
- if $(value)-is-specified
+
+ if $(value)-is-not-empty
         {
             condition = $(condition)-$(value) ;
             if $(.had-unspecified-value.$(toolset).$(name))
@@ -163,37 +164,36 @@
                 "no value was specified in earlier initialization" :
                 "an explicit value is specified now" ;
             }
- # The below logic is for intel compiler. It calls this rule
- # with 'intel-linux' and 'intel-win' as toolset, so we need to
- # get the base part of toolset name.
- # We can't pass 'intel' as toolset, because it that case it will
- # be impossible to register versionles intel-linux and
- # intel-win of specific version.
+ # The below logic is for intel compiler. It calls this rule with
+ # 'intel-linux' and 'intel-win' as toolset, so we need to get the
+ # base part of toolset name. We can't pass 'intel' as toolset
+ # because in that case it will be impossible to register versionless
+ # intel-linux and intel-win toolsets of a specific version.
             local t = $(toolset) ;
             local m = [ MATCH ([^-]*)- : $(toolset) ] ;
             if $(m)
             {
                 t = $(m[1]) ;
- }
- if ! $(.had-value.$(toolset).$(name))
+ }
+ if ! $(.had-value.$(toolset).$(name))
             {
                 if ! $(.declared-subfeature.$(t).$(name))
                 {
                     feature.subfeature toolset $(t) : $(name) : : propagated ;
                     .declared-subfeature.$(t).$(name) = true ;
- }
+ }
                 .had-value.$(toolset).$(name) = true ;
             }
             feature.extend-subfeature toolset $(t) : $(name) : $(value) ;
         }
         else
         {
- if $(.had-value.$(toolset).$(name))
+ if $(.had-value.$(toolset).$(name))
             {
- errors.user-error
+ errors.user-error
                 "$(toolset) initialization: parameter '$(name)' inconsistent" :
                 "an explicit value was specified in an earlier initialization" :
- "no value is specified now" ;
+ "no value is specified now" ;
             }
             .had-unspecified-value.$(toolset).$(name) = true ;
         }
@@ -201,23 +201,24 @@
     }
     if $(sig) in $(.all-signatures)
     {
- local message =
- "duplicate initialization of $(toolset) with the following parameters: " ;
+ local message =
+ "duplicate initialization of $(toolset) with the following parameters: " ;
         for local index in 2 3 4 5 6 7 8 9
         {
             local p = $($(index)) ;
             if $(p)
             {
                 message += "$(p[1]) = $(p[2]:E=<unspecified>)" ;
- }
+ }
         }
         message += "previous initialization at $(.init-loc.$(sig))" ;
- errors.user-error $(message[1]) : $(message[2]) : $(message[3]) : $(message[4])
- : $(message[5]) : $(message[6]) : $(message[7]) : $(message[8]) ;
- }
+ errors.user-error
+ $(message[1]) : $(message[2]) : $(message[3]) : $(message[4]) :
+ $(message[5]) : $(message[6]) : $(message[7]) : $(message[8]) ;
+ }
     .all-signatures += $(sig) ;
     .init-loc.$(sig) = [ errors.nearest-user-location ] ;
-
+
     if $(.show-configuration)
     {
         ECHO notice: $(condition) ;
@@ -225,18 +226,16 @@
     return $(condition) ;
 }
 
-# A helper rule to get the command to invoke some tool.
-# In 'user-provided-command' is not given, tries to find binary
-# named 'tool' in PATH and in the passed 'additional-path'. Otherwise,
-# verified that the first element of 'user-provided-command' is an
-# existing program.
-#
+
+# A helper rule to get the command to invoke some tool. If
+# 'user-provided-command' is not given, tries to find binary named 'tool' in
+# PATH and in the passed 'additional-path'. Otherwise, verifies that the first
+# element of 'user-provided-command' is an existing program.
 #
 # This rule returns the command to be used when invoking the tool. If we can't
-# find the tool, a warning is issued.
-# If 'path-last' is specified, PATH is checked after 'additional-paths' when
-# searching to 'tool'.
-rule get-invocation-command-nodefault (
+# find the tool, a warning is issued. If 'path-last' is specified, PATH is
+# checked after 'additional-paths' when searching for 'tool'.
+rule get-invocation-command-nodefault (
     toolset : tool : user-provided-command * : additional-paths * : path-last ? )
 {
     local command ;
@@ -251,7 +250,7 @@
     }
     else
     {
- command = [ common.check-tool $(user-provided-command) ] ;
+ command = [ common.check-tool $(user-provided-command) ] ;
         if ! $(command) && $(.debug-configuration)
         {
             ECHO "warning: toolset $(toolset) initialization: " ;
@@ -263,15 +262,15 @@
     return $(command) ;
 }
 
-# Same as get-invocation-command-nodefault, except that if no tool
-# if found, returns either the user-provided-command, if present,
-# or the 'tool' parameter.
-rule get-invocation-command (
+
+# Same as get-invocation-command-nodefault, except that if no tool is found,
+# returns either the user-provided-command, if present, or the 'tool' parameter.
+rule get-invocation-command (
     toolset : tool : user-provided-command * : additional-paths * : path-last ? )
 {
     local result = [ get-invocation-command-nodefault $(toolset) : $(tool)
- : $(user-provided-command) : $(additional-paths) : $(path-last) ] ;
-
+ : $(user-provided-command) : $(additional-paths) : $(path-last) ] ;
+
     if ! $(result)
     {
         if $(user-provided-command)
@@ -281,14 +280,14 @@
         else
         {
             result = $(tool) ;
- }
+ }
     }
- return $(result) ;
+ return $(result) ;
 }
-
-# Given an invocation command,
-# return the absolute path to the command. This works even if commnad
-# has not path element and is present in PATH.
+
+
+# Given an invocation command return the absolute path to the command. This
+# works even if command has no path element and was found on the PATH.
 rule get-absolute-tool-path ( command )
 {
     if $(command:D)
@@ -299,22 +298,20 @@
     {
         local m = [ GLOB [ modules.peek : PATH Path path ] : $(command) $(command).exe ] ;
         return $(m[1]:D) ;
- }
+ }
 }
 
 
-
 # Attempts to find tool (binary) named 'name' in PATH and in 'additional-paths'.
-# If found in PATH, returns 'name'.
-# If found in additional paths, returns absolute name. If the tool is found
-# in several directories, return all paths.
-# Otherwise, returns empty string.
-# If 'path-last' is specified, PATH is searched after 'additional-paths'.
+# If found in PATH, returns 'name' and if found in additional paths, returns
+# absolute name. If the tool is found in several directories, returns all paths.
+# Otherwise, returns an empty string. If 'path-last' is specified, PATH is
+# searched after 'additional-paths'.
 rule find-tool ( name : additional-paths * : path-last ? )
 {
     local path = [ path.programs-path ] ;
     local match = [ path.glob $(path) : $(name) $(name).exe ] ;
- local additional-match = [ path.glob $(additional-paths) : $(name) $(name).exe ] ;
+ local additional-match = [ path.glob $(additional-paths) : $(name) $(name).exe ] ;
 
     local result ;
     if $(path-last)
@@ -337,65 +334,65 @@
         }
     }
     if $(result)
- {
+ {
         return [ path.native $(result[1]) ] ;
- }
+ }
 }
 
-# Checks if 'command' can be found either in path
-# or is a full name to an existing file.
+
+# Checks if 'command' can be found either in path or is a full name to an
+# existing file.
 rule check-tool-aux ( command )
 {
     if $(command:D)
     {
         if [ path.exists $(command) ]
- # Both NT and Cygwin will run .exe files by their unqualified names
- || [ os.on-windows ] && [ path.exists $(command).exe ]
- # Only NT will run .bat files by their unqualified names
+ # Both NT and Cygwin will run .exe files by their unqualified names.
+ || [ os.on-windows ] && [ path.exists $(command).exe ]
+ # Only NT will run .bat files by their unqualified names.
             || [ os.name ] = NT && [ path.exists $(command).bat ]
         {
             return $(command) ;
- }
+ }
     }
     else
     {
         if [ GLOB [ modules.peek : PATH Path path ] : $(command) ]
         {
             return $(command) ;
- }
- }
+ }
+ }
 }
 
 
-# Checks that a tool can be invoked by 'command'.
-# If command is not an absolute path, checks if it can be found in 'path'.
-# If comand is absolute path, check that it exists. Returns 'command'
-# if ok and empty string otherwise.
+# Checks that a tool can be invoked by 'command'. If command is not an absolute
+# path, checks if it can be found in 'path'. If comand is an absolute path,
+# check that it exists. Returns 'command' if ok or empty string otherwise.
 rule check-tool ( xcommand + )
 {
- if [ check-tool-aux $(xcommand[1]) ]
- || [ check-tool-aux $(xcommand[-1]) ]
+ if [ check-tool-aux $(xcommand[1]) ] ||
+ [ check-tool-aux $(xcommand[-1]) ]
     {
         return $(xcommand) ;
     }
 }
 
-# Handle common options for toolset, specifically sets the following
-# flag variables:
+
+# Handle common options for toolset, specifically sets the following flag
+# variables:
 # - CONFIG_COMMAND to 'command'
-# - OPTIONS for compile.c to the value of <cflags> in options
-# - OPTIONS for compile.c++ to the value of <cxxflags> in options
-# - OPTIOns for compile to the value of <compileflags> in options
-# - OPTIONs for link to the value of <linkflags> in options
+# - OPTIONS for compile.c to the value of <cflags> in options
+# - OPTIONS for compile.c++ to the value of <cxxflags> in options
+# - OPTIOns for compile to the value of <compileflags> in options
+# - OPTIONs for link to the value of <linkflags> in options
 rule handle-options ( toolset : condition * : command * : options * )
 {
     if $(.debug-configuration)
     {
         ECHO "notice: will use '$(command)' for $(toolset), condition $(condition:E=(empty))" ;
     }
-
- # The last parameter ('true') says it's OK to set flags for another
- # module,
+
+ # The last parameter ('true') says it's OK to set flags for another module.
     toolset.flags $(toolset) CONFIG_COMMAND $(condition) : $(command) : unchecked ;
     toolset.flags $(toolset).compile OPTIONS $(condition) :
       [ feature.get-values <compileflags> : $(options) ] : unchecked ;
@@ -406,12 +403,11 @@
     toolset.flags $(toolset).compile.fortran OPTIONS $(condition) :
       [ feature.get-values <fflags> : $(options) ] : unchecked ;
     toolset.flags $(toolset).link OPTIONS $(condition) :
- [ feature.get-values <linkflags> : $(options) ] : unchecked ;
+ [ feature.get-values <linkflags> : $(options) ] : unchecked ;
 }
 
 
-# returns the location of the "program files" directory on a windows
-# platform
+# Returns the location of the "program files" directory on a windows platform.
 rule get-program-files-dir ( )
 {
     local ProgramFiles = [ modules.peek : ProgramFiles ] ;
@@ -426,12 +422,13 @@
     return $(ProgramFiles) ;
 }
 
+
 if [ os.name ] = NT
 {
     RM = del /f /q ;
     CP = copy ;
     IGNORE = "2>nul >nul & setlocal" ;
- LN ?= $(CP) ;
+ LN ?= $(CP) ;
 }
 else
 {
@@ -440,28 +437,29 @@
     LN = ln ;
 }
 
-nl = "
-" ;
 
-rule rm-command ( )
+rule rm-command ( )
 {
- return $(RM) ;
+ return $(RM) ;
 }
 
+
 rule copy-command ( )
 {
     return $(CP) ;
 }
 
 
-# Returns the command needed to set the environment variable on the
-# current platform. The variable setting persists through all
-# following commands and is visible in the environment seen by
-# subsequently executed commands. In other words, on Unix systems,
-# the variable is exported, which is consistent with the only possible
-# behavior on Windows systems.
+# Returns the command needed to set an environment variable on the current
+# platform. The variable setting persists through all following commands and is
+# visible in the environment seen by subsequently executed commands. In other
+# words, on Unix systems, the variable is exported, which is consistent with the
+# only possible behavior on Windows systems.
 rule variable-setting-command ( variable : value )
-{
+{
+ local nl = "
+" ;
+
     if [ os.name ] = NT
     {
         return "set $(variable)=$(value)$(nl)" ;
@@ -472,30 +470,28 @@
     }
 }
 
-# Returns a command that sets the named shell path variable to the
-# given NATIVE paths to on the current platform.
+
+# Returns a command to sets a named shell path variable to the given NATIVE
+# paths on the current platform.
 rule path-variable-setting-command ( variable : paths * )
-{
+{
     local sep = [ os.path-separator ] ;
     return [ variable-setting-command $(variable) : $(paths:J=$(sep)) ] ;
 }
 
-# Returns a command that prepends the given paths to the named path
-# variable on the current platform.
+
+# Returns a command that prepends the given paths to the named path variable on
+# the current platform.
 rule prepend-path-variable-command ( variable : paths * )
-{
- return [
- path-variable-setting-command $(variable)
- : $(paths) [ os.expand-variable $(variable) ]
- ] ;
+{
+ return [ path-variable-setting-command $(variable)
+ : $(paths) [ os.expand-variable $(variable) ] ] ;
 }
 
 
-# Return a command which can create a file. If 'r' is result of invocation,
-# then
-# r foobar
-# will create foobar with unspecified content. What happens if file already
-# exists is unspecified.
+# Return a command which can create a file. If 'r' is result of invocation, then
+# 'r foobar' will create foobar with unspecified content. What happens if file
+# already exists is unspecified.
 rule file-creation-command ( )
 {
     if [ modules.peek : NT ]
@@ -508,10 +504,10 @@
     }
 }
 
-
-# Returns a command that may be used for 'touching' files.
-# It is not a real 'touch' command on NT because it adds an empty line at
-# the end of file but it works with source files
+
+# Returns a command that may be used for 'touching' files. It is not a real
+# 'touch' command on NT because it adds an empty line at the end of file but it
+# works with source files.
 rule file-touch-command ( )
 {
     if [ os.name ] in NT
@@ -527,18 +523,14 @@
 
 rule MkDir
 {
- # If dir exists, don't update it
- # Do this even for $(DOT).
-
+ # If dir exists, don't update it. Do this even for $(DOT).
     NOUPDATE $(<) ;
 
     if $(<) != $(DOT) && ! $($(<)-mkdir)
     {
- local s ;
-
- # Cheesy gate to prevent multiple invocations on same dir
- # MkDir1 has the actions
- # Arrange for jam dirs
+ # Cheesy gate to prevent multiple invocations on same dir.
+ # MkDir1 has the actions.
+ # Arrange for jam dirs.
 
         $(<)-mkdir = true ;
         MkDir1 $(<) ;
@@ -547,7 +539,7 @@
         # Recursively make parent directories.
         # $(<:P) = $(<)'s parent, & we recurse until root
 
- s = $(<:P) ;
+ local s = $(<:P) ;
 
         if $(NT)
         {
@@ -557,7 +549,7 @@
                 case *:\\ : s = ;
             }
         }
-
+
         if $(s) && $(s) != $(<)
         {
             Depends $(<) : $(s) ;
@@ -570,18 +562,21 @@
     }
 }
 
+
 actions MkDir1
 {
     mkdir "$(<)"
 }
 
+
 actions piecemeal together existing Clean
 {
     $(RM) "$(>)"
 }
 
-rule copy
-{
+
+rule copy
+{
 }
 
 
@@ -590,28 +585,32 @@
     $(CP) "$(>)" "$(<)"
 }
 
+
 rule RmTemps
 {
 }
+
+
 actions quietly updated piecemeal together RmTemps
 {
     $(RM) "$(>)" $(IGNORE)
 }
 
+
 actions hard-link
 {
     $(RM) "$(<)" 2$(NULL_OUT) $(NULL_OUT)
- $(LN) "$(>)" "$(<)" $(NULL_OUT)
+ $(LN) "$(>)" "$(<)" $(NULL_OUT)
 }
 
 
 # Given a target, as given to a custom tag rule, returns a string formatted
 # according to the passed format. Format is a list of properties that is
-# represented in the result. For each element of format the corresponding
-# target information is obtained and added to the result string.
-# For all, but the literal, the format value is taken as the as string to
-# prepend to the output to join the item to the rest of the result. If not
-# given "-" is used as a joiner.
+# represented in the result. For each element of format the corresponding target
+# information is obtained and added to the result string. For all, but the
+# literal, the format value is taken as the as string to prepend to the output
+# to join the item to the rest of the result. If not given "-" is used as a
+# joiner.
 #
 # The format options can be:
 #
@@ -642,8 +641,8 @@
 # boost_thread-vc80-mt-gd-1_33.dll, or
 # boost_regex-vc80-gd-1_33.dll
 #
-# The returned name also has the target type specific prefix and suffix
-# which puts it in a ready form to use as the value from a custom tag rule.
+# The returned name also has the target type specific prefix and suffix which
+# puts it in a ready form to use as the value from a custom tag rule.
 #
 rule format-name ( format * : name : type ? : property-set )
 {
@@ -656,19 +655,19 @@
             {
                 case <base> :
                 result += $(name:B) ;
-
+
                 case <toolset> :
                 result += [ join-tag $(f:G=) :
                     [ toolset-tag $(name) : $(type) : $(property-set) ] ] ;
-
+
                 case <threading> :
                 result += [ join-tag $(f:G=) :
                     [ threading-tag $(name) : $(type) : $(property-set) ] ] ;
-
+
                 case <runtime> :
                 result += [ join-tag $(f:G=) :
                     [ runtime-tag $(name) : $(type) : $(property-set) ] ] ;
-
+
                 case <version:*> :
                 local key = [ MATCH <version:(.*)> : $(f:G) ] ;
                 local version = [ $(property-set).get <$(key)> ] ;
@@ -676,7 +675,7 @@
                 version = [ MATCH "^([^.]+)[.]([^.]+)[.]?([^.]*)"
                     : $(version) ] ;
                 result += [ join-tag $(f:G=) : $(version[1])_$(version[2]) ] ;
-
+
                 case <property:*> :
                 local key = [ MATCH <property:(.*)> : $(f:G) ] ;
                 local p = [ $(property-set).get [ MATCH <property:(.*)> : $(f:G) ] ] ;
@@ -684,7 +683,7 @@
                 {
                     result += [ join-tag $(f:G=) : $(p) ] ;
                 }
-
+
                 case * :
                 result += $(f:G=) ;
             }
@@ -695,16 +694,18 @@
     }
 }
 
+
 local rule join-tag ( joiner ? : tag ? )
 {
     if ! $(joinder) { joiner = - ; }
     return $(joiner)$(tag) ;
 }
 
+
 local rule toolset-tag ( name : type ? : property-set )
 {
     local tag = ;
-
+
     local properties = [ $(property-set).raw ] ;
     switch [ $(property-set).get <toolset> ]
     {
@@ -721,7 +722,7 @@
                 case * : tag += gcc ;
             }
         }
- case intel :
+ case intel :
         if [ $(property-set).get <toolset-intel:platform> ] = win
         {
             tag += iw ;
@@ -742,8 +743,7 @@
     }
     local version = [ MATCH "<toolset.*version>([0123456789]+)[.]([0123456789]*)"
         : $(properties) ] ;
- # For historical reasons, vc6.0 and vc7.0 use different
- # naming.
+ # For historical reasons, vc6.0 and vc7.0 use different naming.
     if $(tag) = vc
     {
         if $(version[1]) = 6
@@ -756,88 +756,88 @@
             version = 7 ;
         }
     }
- # On intel, version is not added, because it does not
- # matter and it's the version of vc used as backend
- # that matters. Ideally, we'd encode the backend
- # version but that will break compatibility with
- # V1.
+ # On intel, version is not added, because it does not matter and it's the
+ # version of vc used as backend that matters. Ideally, we'd encode the
+ # backend version but that would break compatibility with V1.
     if $(tag) = iw
     {
         version = ;
     }
-
- # On borland, version is not added for compatibility
- # with V1.
+
+ # On borland, version is not added for compatibility with V1.
     if $(tag) = bcb
     {
         version = ;
     }
-
+
     tag += $(version) ;
-
+
     return $(tag:J=) ;
 }
 
+
 local rule threading-tag ( name : type ? : property-set )
 {
     local tag = ;
     local properties = [ $(property-set).raw ] ;
     if <threading>multi in $(properties) { tag = mt ; }
-
+
     return $(tag:J=) ;
 }
 
+
 local rule runtime-tag ( name : type ? : property-set )
 {
     local tag = ;
-
+
     local properties = [ $(property-set).raw ] ;
     if <runtime-link>static in $(properties) { tag += s ; }
-
- # This is ugly thing. In V1, there's a code to automatically
- # detect which properties affect a target. So, if
- # <runtime-debugging> does not affect gcc toolset, the
- # tag rules won't even see <runtime-debugging>.
- # Similar functionality in V2 is not implemented yet, so we just
- # check for toolsets which are know to care about runtime debug
- if <toolset>msvc in $(properties)
+
+ # This is an ugly thing. In V1, there's a code to automatically detect which
+ # properties affect a target. So, if <runtime-debugging> does not affect gcc
+ # toolset, the tag rules won't even see <runtime-debugging>. Similar
+ # functionality in V2 is not implemented yet, so we just check for toolsets
+ # which are known to care about runtime debug.
+ if <toolset>msvc in $(properties)
       || <stdlib>stlport in $(properties)
+ || <toolset-intel:platform>win in $(properties)
     {
- if <runtime-debugging>on in $(properties) { tag += g ; }
+ if <runtime-debugging>on in $(properties) { tag += g ; }
     }
-
+
     if <python-debugging>on in $(properties) { tag += y ; }
     if <variant>debug in $(properties) { tag += d ; }
     if <stdlib>stlport in $(properties) { tag += p ; }
     if <stdlib-stlport:iostream>hostios in $(properties) { tag += n ; }
-
+
     return $(tag:J=) ;
 }
 
-rule __test__ ( ) {
 
+rule __test__ ( )
+{
     import assert ;
-
- local save-os = [ modules.peek os : name ] ;
-
- modules.poke os : .name : LINUX ;
-
+
     local nl = "
 " ;
-
+
+ local save-os = [ modules.peek os : name ] ;
+
+ modules.poke os : .name : LINUX ;
+
     assert.result "PATH=foo:bar:baz$(nl)export PATH$(nl)"
- : path-variable-setting-command PATH : foo bar baz ;
-
+ : path-variable-setting-command PATH : foo bar baz ;
+
     assert.result "PATH=foo:bar:$PATH$(nl)export PATH$(nl)"
- : prepend-path-variable-command PATH : foo bar ;
-
+ : prepend-path-variable-command PATH : foo bar ;
+
     modules.poke os : .name : NT ;
-
+
     assert.result "set PATH=foo;bar;baz$(nl)"
- : path-variable-setting-command PATH : foo bar baz ;
-
+ : path-variable-setting-command PATH : foo bar baz ;
+
     assert.result "set PATH=foo;bar;%PATH%$(nl)"
- : prepend-path-variable-command PATH : foo bar ;
+ : prepend-path-variable-command PATH : foo bar ;
 
- modules.poke os : .name : $(save-os) ;
-}
+ modules.poke os : .name : $(save-os) ;
+}

Modified: branches/proto/v3/tools/build/v2/tools/darwin.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/darwin.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/darwin.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -171,9 +171,17 @@
 # set up the -F option to include the paths to any frameworks used.
 local rule prepare-framework-path ( target + )
 {
+ # The -framework option only takes basename of the framework.
+ # The -F option specifies the directories where a framework
+ # is searched for. So, if we find <framework> feature
+ # with some path, we need to generate property -F option.
     local framework-path = [ on $(target) return $(FRAMEWORK:D) ] ;
-
- FRAMEWORK_PATH on $(target) += -F$(framework-path) ;
+
+ # Be sure to generate no -F if there's no path.
+ if $(framework-path) != ""
+ {
+ FRAMEWORK_PATH on $(target) += -F$(framework-path) ;
+ }
 }
 
 rule link

Modified: branches/proto/v3/tools/build/v2/tools/docutils.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/docutils.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/docutils.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -12,6 +12,7 @@
 import toolset ;
 import path ;
 import feature : feature ;
+import property ;
 
 .initialized = ;
 
@@ -58,10 +59,10 @@
 
 rule html ( target : source : properties * )
 {
- local command-prefix = "python "$(.docutils-dir)/tools/ ;
     if ! [ on $(target) return $(RST2XXX) ]
     {
- RST2XXX on $(target) = $(command-prefix:E="")rst2html.py ;
+ local python-cmd = [ property.select <python.interpreter> : $(properties) ] ;
+ RST2XXX on $(target) = $(python-cmd:G=:E="python") $(.docutils-dir)/tools/rst2html.py ;
     }
 }
 
@@ -76,6 +77,6 @@
 actions html
 {
     $(.setup)
- $(RST2XXX) $(COMMON-FLAGS) $(HTML-FLAGS) $(>) $(<)
+ "$(RST2XXX)" $(COMMON-FLAGS) $(HTML-FLAGS) $(>) $(<)
 }
 

Modified: branches/proto/v3/tools/build/v2/tools/doxygen.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/doxygen.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/doxygen.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -352,7 +352,7 @@
         # Build an HTML directory from the sources.
         local html-location = [ feature.get-values <location> : $(requirements) ] ;
         local output-dir = [ path.root
- [ path.join $(html-location:E=html) [ $(project).get build-dir ] ]
+ [ path.join [ $(project).get build-dir ] $(html-location:E=html) ]
             [ path.pwd ]
             ] ;
         local output-dir-native = [ path.native $(output-dir) ] ;

Modified: branches/proto/v3/tools/build/v2/tools/gcc.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/gcc.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/gcc.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -56,7 +56,7 @@
 # libxxx.a static library
 # xxx.dll DLL
 # libxxx.dll.a import library
-#
+#
 # Note: user can always override by using the <tag>@rule
 # This settings have been choosen, so that mingw
 # is in line with msvc naming conventions. For
@@ -72,13 +72,12 @@
 
 import rc ;
 
-# Initializes the gcc toolset for the given version.
-# If necessary, command may be used to specify where the compiler
-# is located.
-# The parameter 'options' is a space-delimited list of options, each
-# one being specified as <option-name>option-value. Valid option names
-# are: cxxflags, linkflags and linker-type. Accepted values for linker-type
-# are gnu and sun, gnu being the default.
+# Initializes the gcc toolset for the given version. If necessary, command may
+# be used to specify where the compiler is located. The parameter 'options' is a
+# space-delimited list of options, each one specified as
+# <option-name>option-value. Valid option names are: cxxflags, linkflags and
+# linker-type. Accepted linker-type values are gnu, darwin, osf, hpux or sun
+# and the default value will be selected based on the current OS.
 # Example:
 # using gcc : 3.4 : : <cxxflags>foo <linkflags>bar <linker-type>sun ;
 rule init ( version ? : command * : options * )
@@ -128,12 +127,12 @@
             : version $(version)
             ] ;
     }
-
+
     common.handle-options gcc : $(condition) : $(command) : $(options) ;
-
+
     local linker = [ feature.get-values <linker-type> : $(options) ] ;
- if ! $(linker) {
-
+ if ! $(linker)
+ {
         if [ os.name ] = OSF
         {
             linker = osf ;
@@ -143,36 +142,35 @@
             linker = hpux ;
         }
         else
- {
+ {
             linker = gnu ;
- }
+ }
     }
     init-link-flags gcc $(linker) $(condition) ;
-
-
- # If gcc is installed in non-standard location, we'd need to
- # add LD_LIBRARY_PATH when running programs created with it
- # (for unit-test/run rules).
+
+
+ # If gcc is installed in non-standard location, we'd need to add
+ # LD_LIBRARY_PATH when running programs created with it (for unit-test/run
+ # rules).
     if $(command)
     {
- # On multilib 64-bit boxes, there are both 32-bit and 64-bit
- # libraries and all must be added to LD_LIBRARY_PATH. The linker
- # will pick the right onces.
- # Note that we don't provide a clean way to build 32-bit binary
- # with 64-bit compiler, but user can always pass -m32 manually.
+ # On multilib 64-bit boxes, there are both 32-bit and 64-bit libraries
+ # and all must be added to LD_LIBRARY_PATH. The linker will pick the
+ # right onces. Note that we don't provide a clean way to build 32-bit
+ # binary with 64-bit compiler, but user can always pass -m32 manually.
         local lib_path = $(root)/bin $(root)/lib $(root)/lib32 $(root)/lib64 ;
         if $(.debug-configuration)
         {
             ECHO notice: using gcc libraries :: $(condition) :: $(lib_path) ;
         }
         flags gcc.link RUN_PATH $(condition) : $(lib_path) ;
- }
+ }
+
+ # If it's not a system gcc install we should adjust the various programs as
+ # needed to prefer using the install specific versions. This is essential
+ # for correct use of MinGW and for cross-compiling.
 
- #~ If it's not a system gcc install we should adjust the various
- #~ programs as needed to prefer using the install specific versions.
- #~ This is essential for correct use of MinGW and for cross-compiling.
-
- #~ - The archive builder.
+ # - The archive builder.
     local archiver =
         [ common.get-invocation-command gcc
             : ar : [ feature.get-values <archiver> : $(options) ] : $(bin) : search-path ] ;
@@ -181,8 +179,8 @@
     {
         ECHO notice: using gcc archiver :: $(condition) :: $(archiver[1]) ;
     }
-
- #~ - The resource compiler.
+
+ # - The resource compiler.
     local rc =
         [ common.get-invocation-command-nodefault gcc
             : windres : [ feature.get-values <rc> : $(options) ] : $(bin) : search-path ] ;
@@ -191,13 +189,11 @@
     rc-type ?= windres ;
     if ! $(rc)
     {
- #~ If we can't find an RC compiler we fallback to a null RC compiler
- #~ that creates empty object files. This allows the same Jamfiles
- #~ to work across the board. The null RC uses the assembler to create
- #~ the empty objects, so configure that.
- rc =
- [ common.get-invocation-command gcc
- : as : : $(bin) : search-path ] ;
+ # If we can't find an RC compiler we fallback to a null RC compiler that
+ # creates empty object files. This allows the same Jamfiles to work
+ # across the board. The null RC uses the assembler to create the empty
+ # objects, so configure that.
+ rc = [ common.get-invocation-command gcc : as : : $(bin) : search-path ] ;
         rc-type = null ;
     }
     rc.configure $(rc) : $(condition) : <rc-type>$(rc-type) ;
@@ -205,23 +201,22 @@
 
 if [ os.name ] = NT
 {
- # This causes single-line command invocation to not go through
- # .bat files, thus avoiding command-line length limitations
- JAMSHELL = % ;
+ # This causes single-line command invocation to not go through .bat files,
+ # thus avoiding command-line length limitations.
+ JAMSHELL = % ;
 }
 
 generators.register-c-compiler gcc.compile.c++ : CPP : OBJ : <toolset>gcc ;
-generators.register-c-compiler gcc.compile.c : C : OBJ : <toolset>gcc ;
+generators.register-c-compiler gcc.compile.c : C : OBJ : <toolset>gcc ;
 generators.register-c-compiler gcc.compile.asm : ASM : OBJ : <toolset>gcc ;
 
 # pch support
 
-# The compiler looks for a precompiled header in each directory just
-# before it looks for the include file in that directory.
-# The name searched for is the name specified in the #include directive
-# with ".gch" suffix appended.
-# The logic in gcc-pch-generator will make sure that BASE_PCH suffix is
-# appended to full name of the header.
+# The compiler looks for a precompiled header in each directory just before it
+# looks for the include file in that directory. The name searched for is the
+# name specified in the #include directive with ".gch" suffix appended. The
+# logic in gcc-pch-generator will make sure that BASE_PCH suffix is appended to
+# full name of the header.
 
 type.set-generated-target-suffix PCH : <toolset>gcc : gch ;
 
@@ -238,15 +233,14 @@
         local header ;
         for local s in $(sources)
         {
- if [ type.is-derived [ $(s).type ] H ]
+ if [ type.is-derived [ $(s).type ] H ]
             {
                 header = $(s) ;
- }
+ }
         }
-
- # error handling
- # base name of header file should be the same as the base name
- # of precompiled header.
+
+ # Error handling: Base header file name should be the same as the base
+ # precompiled header name.
         local header-name = [ $(header).name ] ;
         local header-basename = $(header-name:B) ;
         if $(header-basename) != $(name)
@@ -255,13 +249,8 @@
             errors.user-error "in" $(location)": pch target name `"$(name)"' should be the same as the base name of header file `"$(header-name)"'" ;
         }
 
- local pch-file =
- [
- generator.run $(project) $(name)
- : $(property-set)
- : $(header)
- ]
- ;
+ local pch-file = [ generator.run $(project) $(name) : $(property-set)
+ : $(header) ] ;
 
         # return result of base class and pch-file property as usage-requirements
         return
@@ -269,21 +258,21 @@
             $(pch-file)
           ;
     }
-
- # Calls the base version specifying source's name as the
- # name of the created target. As result, the PCH will be named
- # whatever.hpp.gch, and not whatever.gch.
+
+ # Calls the base version specifying source's name as the name of the created
+ # target. As result, the PCH will be named whatever.hpp.gch, and not
+ # whatever.gch.
     rule generated-targets ( sources + : property-set : project name ? )
     {
         name = [ $(sources[1]).name ] ;
- return [ generator.generated-targets $(sources)
+ return [ generator.generated-targets $(sources)
           : $(property-set) : $(project) $(name) ] ;
- }
+ }
 }
 
-# Note: the 'H' source type will catch both '.h' header and '.hpp' header. The latter
-# have HPP type, but HPP type is derived from H. The type of compilation is determined
-# entirely by the destination type.
+# Note: the 'H' source type will catch both '.h' header and '.hpp' header. The
+# latter have HPP type, but HPP type is derived from H. The type of compilation
+# is determined entirely by the destination type.
 generators.register [ new gcc-pch-generator gcc.compile.c.pch : H : C_PCH : <pch>on <toolset>gcc ] ;
 generators.register [ new gcc-pch-generator gcc.compile.c++.pch : H : CPP_PCH : <pch>on <toolset>gcc ] ;
 
@@ -294,60 +283,59 @@
 flags gcc.compile PCH_FILE <pch>on : <pch-file> ;
 
 # Declare flags and action for compilation
-flags gcc.compile OPTIONS <optimization>off : -O0 ;
+flags gcc.compile OPTIONS <optimization>off : -O0 ;
 flags gcc.compile OPTIONS <optimization>speed : -O3 ;
 flags gcc.compile OPTIONS <optimization>space : -Os ;
 
-flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
-flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
+flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
+flags gcc.compile OPTIONS <inlining>on : -Wno-inline ;
 flags gcc.compile OPTIONS <inlining>full : -finline-functions -Wno-inline ;
 
 flags gcc.compile OPTIONS <warnings>off : -w ;
-flags gcc.compile OPTIONS <warnings>on : -Wall ;
+flags gcc.compile OPTIONS <warnings>on : -Wall ;
 flags gcc.compile OPTIONS <warnings>all : -Wall -pedantic ;
 flags gcc.compile OPTIONS <warnings-as-errors>on : -Werror ;
 
 flags gcc.compile OPTIONS <debug-symbols>on : -g ;
 flags gcc.compile OPTIONS <profiling>on : -pg ;
-# On cygwin and mingw, gcc generates position independent code by default,
-# and warns if -fPIC is specified. This might not be the right way
-# of checking if we're using cygwin. For example, it's possible
-# to run cygwin gcc from NT shell, or using crosscompiling.
-# But we'll solve that problem when it's time. In that case
-# we'll just add another parameter to 'init' and move this login
+flags gcc.compile OPTIONS <rtti>off : -fno-rtti ;
+
+# On cygwin and mingw, gcc generates position independent code by default, and
+# warns if -fPIC is specified. This might not be the right way of checking if
+# we're using cygwin. For example, it's possible to run cygwin gcc from NT
+# shell, or using crosscompiling. But we'll solve that problem when it's time.
+# In that case we'll just add another parameter to 'init' and move this login
 # inside 'init'.
 if [ os.name ] != CYGWIN && [ os.name ] != NT
-{
+{
     # This logic will add -fPIC for all compilations:
     #
     # lib a : a.cpp b ;
     # obj b : b.cpp ;
     # exe c : c.cpp a d ;
     # obj d : d.cpp ;
- #
- # This all is fine, except that 'd' will be compiled with
- # -fPIC even though it's not needed, as 'd' is used only in
- # exe. However, it's hard to detect where a target is going to
- # be used. Alternative, we can set -fPIC only when main target type
- # is LIB but than 'b' will be compiled without -fPIC. In x86-64 that
- # will lead to link errors. So, compile everything with -fPIC.
     #
- # Yet another alternative would be to create propagated <sharedable>
- # feature, and set it when building shared libraries, but that's hard
- # to implement and will increase target path length even more.
+ # This all is fine, except that 'd' will be compiled with -fPIC even though
+ # it's not needed, as 'd' is used only in exe. However, it's hard to detect
+ # where a target is going to be used. Alternative, we can set -fPIC only
+ # when main target type is LIB but than 'b' will be compiled without -fPIC.
+ # In x86-64 that will lead to link errors. So, compile everything with
+ # -fPIC.
+ #
+ # Yet another alternative would be to create propagated <sharedable>
+ # feature, and set it when building shared libraries, but that's hard to
+ # implement and will increase target path length even more.
     flags gcc.compile OPTIONS <link>shared : -fPIC ;
-}
+}
 if [ os.name ] != NT && [ os.name ] != OSF && [ os.name ] != HPUX
 {
     # OSF does have an option called -soname but it doesn't seem to work as
     # expected, therefore it has been disabled.
-
     HAVE_SONAME = "" ;
     SONAME_OPTION = -h ;
 }
 
 
-
 flags gcc.compile USER_OPTIONS <cflags> ;
 flags gcc.compile.c++ USER_OPTIONS <cxxflags> ;
 flags gcc.compile DEFINES <define> ;
@@ -355,35 +343,34 @@
 
 actions compile.c++.pch
 {
- "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+ "$(CONFIG_COMMAND)" -x c++-header $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
 actions compile.c.pch
 {
- "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+ "$(CONFIG_COMMAND)" -x c-header $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
 rule compile.c++
 {
- # Some extensions are compiled as C++ by default. For others, we need
- # to pass -x c++.
- # We could always pass -x c++ but distcc does not work with it.
+ # Some extensions are compiled as C++ by default. For others, we need to
+ # pass -x c++. We could always pass -x c++ but distcc does not work with it.
     if ! $(>:S) in .cc .cp .cxx .cpp .c++ .C
     {
         LANG on $(<) = "-x c++" ;
- }
+ }
     DEPENDS $(<) : [ on $(<) return $(PCH_FILE) ] ;
 }
 
 rule compile.c
 {
- # If we use the name g++ then default file suffix -> language mapping
- # does not work. So have to pass -x option. Maybe, we can work around this
- # by allowing the user to specify both C and C++ compiler names.
+ # If we use the name g++ then default file suffix -> language mapping does
+ # not work. So have to pass -x option. Maybe, we can work around this by
+ # allowing the user to specify both C and C++ compiler names.
     #if $(>:S) != .c
     #{
         LANG on $(<) = "-x c" ;
- #}
+ #}
     DEPENDS $(<) : [ on $(<) return $(PCH_FILE) ] ;
 }
 
@@ -394,7 +381,7 @@
 
 actions compile.c bind PCH_FILE
 {
- "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
 rule compile.asm
@@ -404,17 +391,17 @@
 
 actions compile.asm
 {
- "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
 }
 
-# The class which check that we don't try to use
-# the <runtime-link>static property while creating or using shared library,
-# since it's not supported by gcc/libc.
+# The class which check that we don't try to use the <runtime-link>static
+# property while creating or using shared library, since it's not supported by
+# gcc/libc.
 class gcc-linking-generator : unix-linking-generator
 {
     rule run ( project name ? : property-set : sources + )
     {
- #~ TODO: Replace this with the use of a target-os property.
+ # TODO: Replace this with the use of a target-os property.
         local no-static-link = ;
         if [ modules.peek : UNIX ]
         {
@@ -452,15 +439,14 @@
             ECHO warning:
                 $(reason) ;
             ECHO warning:
- "It's suggested to use '<runtime-link>static' together"
- "with the '<link>static'." ;
+ "It is suggested to use '<runtime-link>static' together"
+ "with '<link>static'." ;
             return ;
         }
         else
         {
- local generated-targets = [ unix-linking-generator.run $(project) $(name)
- : $(property-set) : $(sources) ] ;
-
+ local generated-targets = [ unix-linking-generator.run $(project)
+ $(name) : $(property-set) : $(sources) ] ;
             return $(generated-targets) ;
         }
     }
@@ -495,8 +481,8 @@
             : <toolset>gcc ] ;
 }
 
-# Declare flags for linking
-# First, the common flags
+# Declare flags for linking.
+# First, the common flags.
 flags gcc.link OPTIONS <debug-symbols>on : -g ;
 flags gcc.link OPTIONS <profiling>on : -pg ;
 flags gcc.link USER_OPTIONS <linkflags> ;
@@ -505,39 +491,37 @@
 flags gcc.link FINDLIBS-SA <find-shared-library> ;
 flags gcc.link LIBRARIES <library-file> ;
 
-# For <runtime-link>static we made sure there are no dynamic libraries
-# in the link.
-# On HP-UX not all system libraries exist as archived libraries (for example,
-# there is no libunwind.a), so, on this platform, the -static option cannot
-# be specified.
-
+# For <runtime-link>static we made sure there are no dynamic libraries in the
+# link. On HP-UX not all system libraries exist as archived libraries (for
+# example, there is no libunwind.a), so, on this platform, the -static option
+# cannot be specified.
 if [ os.name ] != HPUX
 {
     flags gcc.link OPTIONS <runtime-link>static : -static ;
 }
 
-# Now, the vendor specific flags
-# The parameter linker can be either gnu or sun
+# Now, the vendor specific flags.
+# The parameter linker can be either gnu, darwin, osf, hpux or sun.
 rule init-link-flags ( toolset linker condition )
 {
     switch $(linker)
     {
     case gnu :
         {
- # Strip the binary when no debugging is needed.
- # We use --strip-all flag as opposed to -s since icc
- # (intel's compiler) is generally option-compatible with
- # and inherits from gcc toolset, but does not support -s
- flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,--strip-all
- : unchecked ;
- flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
- flags $(toolset).link RPATH_LINK $(condition) : <xdll-path> : unchecked ;
- flags $(toolset).link START-GROUP $(condition) : -Wl,--start-group : unchecked ;
- flags $(toolset).link END-GROUP $(condition) : -Wl,--end-group : unchecked ;
-
- # gnu ld has the ability to change the search behaviour for libraries referenced
- # by -l switch. These modifiers are -Bstatic and -Bdynamic and change search
- # for -l switches that follow them. The following list shows the tried variants.
+ # Strip the binary when no debugging is needed. We use --strip-all flag
+ # as opposed to -s since icc (intel's compiler) is generally
+ # option-compatible with and inherits from the gcc toolset, but does not
+ # support -s.
+ flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,--strip-all : unchecked ;
+ flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
+ flags $(toolset).link RPATH_LINK $(condition) : <xdll-path> : unchecked ;
+ flags $(toolset).link START-GROUP $(condition) : -Wl,--start-group : unchecked ;
+ flags $(toolset).link END-GROUP $(condition) : -Wl,--end-group : unchecked ;
+
+ # gnu ld has the ability to change the search behaviour for libraries
+ # referenced by -l switch. These modifiers are -Bstatic and -Bdynamic
+ # and change search for -l switches that follow them. The following list
+ # shows the tried variants.
         # The search stops at the first variant that has a match.
         # *nix: -Bstatic -lxxx
         # libxxx.a
@@ -561,72 +545,71 @@
         # libxxx.a
         #
         # (*) This is for cygwin
- # Please note that -Bstatic and -Bdynamic are not a guarantee that a static
- # or dynamic lib indeed gets linked in. The switches only change search
- # patterns!
-
+ # Please note that -Bstatic and -Bdynamic are not a guarantee that a
+ # static or dynamic lib indeed gets linked in. The switches only change
+ # search patterns!
+
         # On *nix mixing shared libs with static runtime is not a good idea.
- flags $(toolset).link FINDLIBS-ST-PFX $(condition)/<runtime-link>shared
+ flags $(toolset).link FINDLIBS-ST-PFX $(condition)/<runtime-link>shared
             : -Wl,-Bstatic : unchecked ;
- flags $(toolset).link FINDLIBS-SA-PFX $(condition)/<runtime-link>shared
+ flags $(toolset).link FINDLIBS-SA-PFX $(condition)/<runtime-link>shared
             : -Wl,-Bdynamic : unchecked ;
-
- # On windows allow mixing of static and dynamic libs with static runtime
+
+ # On windows allow mixing of static and dynamic libs with static
+ # runtime.
         flags $(toolset).link FINDLIBS-ST-PFX $(condition)/<runtime-link>static/<target-os>windows
             : -Wl,-Bstatic : unchecked ;
- flags $(toolset).link FINDLIBS-SA-PFX $(condition)/<runtime-link>static/<target-os>windows
+ flags $(toolset).link FINDLIBS-SA-PFX $(condition)/<runtime-link>static/<target-os>windows
             : -Wl,-Bdynamic : unchecked ;
- flags $(toolset).link OPTIONS $(condition)/<runtime-link>static/<target-os>windows
+ flags $(toolset).link OPTIONS $(condition)/<runtime-link>static/<target-os>windows
             : -Wl,-Bstatic : unchecked ;
         }
+
     case darwin :
         {
- # On Darwin, the -s option to ld does not work unless we pass
- # -static, and passing -static unconditionally is a bad idea.
- # So, don't pass -s at all, darwin.jam will use separate 'strip'
- # invocation.
+ # On Darwin, the -s option to ld does not work unless we pass -static,
+ # and passing -static unconditionally is a bad idea. So, don't pass -s.
+ # at all, darwin.jam will use separate 'strip' invocation.
         flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
         flags $(toolset).link RPATH_LINK $(condition) : <xdll-path> : unchecked ;
         }
-
+
     case osf :
         {
- # No --strip-all, just -s
- flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,-s
+ # No --strip-all, just -s.
+ flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,-s
               : unchecked ;
-
             flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
- # This does not supports -R
+ # This does not supports -R.
             flags $(toolset).link RPATH_OPTION $(condition) : -rpath : unchecked ;
             # -rpath-link is not supported at all.
         }
-
 
     case sun :
         {
- flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,-s
+ flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,-s
             : unchecked ;
         flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
- # Solaris linker does not have a separate -rpath-link, but
- # allows to use -L for the same purpose.
+ # Solaris linker does not have a separate -rpath-link, but allows to use
+ # -L for the same purpose.
         flags $(toolset).link LINKPATH $(condition) : <xdll-path> : unchecked ;
 
- # This permits shared libraries with non-PIC code on Solaris
- # VP, 2004/09/07: Now that we have -fPIC hardcode in link.dll,
- # the following is not needed. Whether -fPIC should be hardcoded,
- # is a separate question.
- # AH, 2004/10/16: it is still necessary because some tests link
- # against static libraries that were compiled without PIC.
- flags $(toolset).link OPTIONS $(condition)/<link>shared : -mimpure-text
- : unchecked ;
+ # This permits shared libraries with non-PIC code on Solaris.
+ # VP, 2004/09/07: Now that we have -fPIC hardcode in link.dll, the
+ # following is not needed. Whether -fPIC should be hardcoded, is a
+ # separate question.
+ # AH, 2004/10/16: it is still necessary because some tests link against
+ # static libraries that were compiled without PIC.
+ flags $(toolset).link OPTIONS $(condition)/<link>shared : -mimpure-text
+ : unchecked ;
         }
 
     case hpux :
         {
- flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,-s
- : unchecked ;
- flags $(toolset).link OPTIONS $(condition)/<link>shared : -fPIC
- : unchecked ;
+ flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off
+ : -Wl,-s : unchecked ;
+ flags $(toolset).link OPTIONS $(condition)/<link>shared
+ : -fPIC : unchecked ;
         }
 
     case * :
@@ -634,19 +617,18 @@
             errors.user-error
             "$(toolset) initialization: invalid linker '$(linker)'" :
             "The value '$(linker)' specified for <linker> is not recognized." :
- "Possible values are 'sun', 'gnu'" ;
+ "Possible values are 'gnu', 'darwin', 'osf', 'hpux' or 'sun'" ;
         }
     }
 }
 
-# Declare actions for linking
+# Declare actions for linking.
 rule link ( targets * : sources * : properties * )
 {
- SPACE on $(targets) = " " ;
- # Serialize execution of the 'link' action, since
- # running N links in parallel is just slower.
- # For now, serialize only gcc links, it might be a good
- # idea to serialize all links.
+ SPACE on $(targets) = " " ;
+ # Serialize execution of the 'link' action, since running N links in
+ # parallel is just slower. For now, serialize only gcc links, it might be a
+ # good idea to serialize all links.
     JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
 }
 
@@ -656,12 +638,11 @@
 
 }
 
-# Default value. Mostly for the sake of intel-linux
-# that inherits from gcc, but does not has the same
-# logic to set the .AR variable. We can put the same
-# logic in intel-linux, but that's hardly worth the trouble
-# as on Linux, 'ar' is always available.
-.AR = ar ;
+# Default value. Mostly for the sake of intel-linux that inherits from gcc, but
+# does not have the same logic to set the .AR variable. We can put the same
+# logic in intel-linux, but that's hardly worth the trouble as on Linux, 'ar' is
+# always available.
+.AR = ar ;
 
 flags gcc.archive AROPTIONS <archiveflags> ;
 
@@ -671,20 +652,18 @@
     #
     # Andre Hentz:
     #
- # I had a file, say a1.c, that was included into liba.a.
- # I moved a1.c to a2.c, updated my Jamfiles and rebuilt.
- # My program was crashing with absurd errors.
- # After some debugging I traced it back to the fact that a1.o was *still*
- # in liba.a
+ # I had a file, say a1.c, that was included into liba.a. I moved a1.c to
+ # a2.c, updated my Jamfiles and rebuilt. My program was crashing with absurd
+ # errors. After some debugging I traced it back to the fact that a1.o was
+ # *still* in liba.a
     #
     # Rene Rivera:
     #
- # Originally removing the archive was done by splicing an RM
- # onto the archive action. That makes archives fail to build on NT
- # when they have many files because it will no longer execute the
- # action directly and blow the line length limit. Instead we
- # remove the file in a different action, just before the building
- # of the archive.
+ # Originally removing the archive was done by splicing an RM onto the
+ # archive action. That makes archives fail to build on NT when they have
+ # many files because it will no longer execute the action directly and blow
+ # the line length limit. Instead we remove the file in a different action,
+ # just before building the archive.
     #
     local clean.a = $(targets[1])(clean) ;
     TEMPORARY $(clean.a) ;
@@ -695,14 +674,13 @@
     common.RmTemps $(clean.a) : $(targets) ;
 }
 
-# Declare action for creating static libraries
-# The 'r' letter means to add files to the archive with replacement
-# Since we remove archive, we don't care about replacement, but
-# there's no option "add without replacement".
-# The 'c' letter means suppresses warning in case the archive
-# does not exists yet. That warning is produced only on
-# some platforms, for whatever reasons.
-actions piecemeal archive
+# Declare action for creating static libraries.
+# The letter 'r' means to add files to the archive with replacement. Since we
+# remove archive, we don't care about replacement, but there's no option "add
+# without replacement".
+# The letter 'c' suppresses the warning in case the archive does not exists yet.
+# That warning is produced only on some platforms, for whatever reasons.
+actions piecemeal archive
 {
     "$(.AR)" $(AROPTIONS) rc "$(<)" "$(>)"
 }
@@ -710,7 +688,7 @@
 
 rule link.dll ( targets * : sources * : properties * )
 {
- SPACE on $(targets) = " " ;
+ SPACE on $(targets) = " " ;
     JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
 }
 
@@ -723,11 +701,11 @@
 # Set up threading support. It's somewhat contrived, so perform it at the end,
 # to avoid cluttering other code.
 
-if [ os.on-windows ]
+if [ os.on-windows ]
 {
     flags gcc OPTIONS <threading>multi : -mthreads ;
 }
-else if [ modules.peek : UNIX ]
+else if [ modules.peek : UNIX ]
 {
     switch [ modules.peek : JAMUNAME ]
     {

Modified: branches/proto/v3/tools/build/v2/tools/generate.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/generate.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/generate.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,6 +1,6 @@
-# Copyright 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Declares main target 'generate' that can be used to produce targets
 # by calling a user-provides rule, that takes virtual target and produces
@@ -9,13 +9,13 @@
 import targets ;
 import "class" : new ;
 import property ;
-import errors : error ;
-import type : type ;
+import errors ;
 import regex ;
 import property-set ;
 import project ;
 import feature ;
 
+
 feature.feature generating-rule : : free ;
 
 
@@ -24,28 +24,28 @@
     import errors ;
     import indirect ;
     import virtual-target ;
-
+
     rule __init__ ( name : project : sources * : requirements *
         : default-build * : usage-requirements * )
- {
- basic-target.__init__ $(name) : $(project) : $(sources)
- : $(requirements) : $(default-build) : $(usage-requirements) ;
-
+ {
+ basic-target.__init__ $(name) : $(project) : $(sources)
+ : $(requirements) : $(default-build) : $(usage-requirements) ;
+
         local r = [ $(self.requirements).get <generating-rule> ] ;
         if ! $(r)
         {
- errors.user-error
- "The generate rule requires <generating-rule> property to be set" ;
- }
+ errors.user-error
+ "The generate rule requires <generating-rule> property to be set" ;
+ }
     }
-
+
     rule construct ( name : sources * : property-set )
     {
         local result ;
         local gr = [ $(property-set).get <generating-rule> ] ;
-
+
         # FIXME: this is copy-paste from virtual-target.jam. Must
- # have an utilty rule to call a rule like this.
+ # have n utilty rule to call a rule like this.
         local rule-name = [ MATCH ^@(.*) : $(gr) ] ;
         if $(rule-name)
         {
@@ -53,22 +53,21 @@
             {
                 errors.error "<tag>@rulename is present but is not the only <tag> feature" ;
             }
-
-
- result = [ indirect.call $(rule-name) $(self.project) $(name)
- : $(property-set) : $(sources) ] ;
-
+
+ result = [ indirect.call $(rule-name) $(self.project) $(name)
+ : $(property-set) : $(sources) ] ;
+
             if ! $(result)
             {
                 ECHO "warning: Unable to construct" [ full-name ] ;
- }
- }
-
+ }
+ }
+
         local ur ;
         local targets ;
 
         if $(result)
- {
+ {
             if [ class.is-a $(result[1]) : property-set ]
             {
                 ur = $(result[1]) ;
@@ -78,31 +77,30 @@
             {
                 ur = [ property-set.empty ] ;
                 targets = $(result) ;
- }
- }
+ }
+ }
         local rt ;
         for t in $(targets)
         {
             rt += [ virtual-target.register $(t) ] ;
         }
         return $(ur) $(rt) ;
- }
+ }
 }
 
-rule generate ( name : sources * : requirements * : default-build *
+
+rule generate ( name : sources * : requirements * : default-build *
     : usage-requirements * )
 {
     local project = [ project.current ] ;
-
+
     targets.main-target-alternative
- [ new generated-target-class $(name) : $(project)
- : [ targets.main-target-sources $(sources) : $(name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
- : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
- ] ;
+ [ new generated-target-class $(name) : $(project)
+ : [ targets.main-target-sources $(sources) : $(name) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-usage-requirements $(usage-requirements) : $(project) ]
+ ] ;
 }
 
 IMPORT $(__name__) : generate : : generate ;
-
-

Modified: branches/proto/v3/tools/build/v2/tools/gettext.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/gettext.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/gettext.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,47 +1,47 @@
-# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # This module support GNU gettext internationalization utilities.
-#
+#
 # It provides two main target rules: 'gettext.catalog', used for
 # creating machine-readable catalogs from translations files, and
 # 'gettext.update', used for update translation files from modified
 # sources.
-#
+#
 # To add i18n support to your application you should follow these
 # steps.
-#
+#
 # - Decide on a file name which will contain translations and
 # what main target name will be used to update it. For example::
-#
+#
 # gettext.update update-russian : russian.po a.cpp my_app ;
-#
+#
 # - Create the initial translation file by running::
 #
 # bjam update-russian
 #
 # - Edit russian.po. For example, you might change fields like LastTranslator.
-#
+#
 # - Create a main target for final message catalog::
 #
 # gettext.catalog russian : russian.po ;
 #
-# The machine-readable catalog will be updated whenever you update
+# The machine-readable catalog will be updated whenever you update
 # "russian.po". The "russian.po" file will be updated only on explicit
 # request. When you're ready to update translations, you should
-#
+#
 # - Run::
-#
+#
 # bjam update-russian
 #
 # - Edit "russian.po" in appropriate editor.
-#
+#
 # The next bjam run will convert "russian.po" into machine-readable form.
 #
 # By default, translations are marked by 'i18n' call. The 'gettext.keyword'
 # feature can be used to alter this.
-
+
 
 import targets ;
 import property-set ;
@@ -59,7 +59,7 @@
 
 # Initializes the gettext module.
 rule init ( path ? # Path where all tools are located. If not specified,
- # they should be in PATH.
+ # they should be in PATH.
           )
 {
     if $(.initialized) && $(.path) != $(path)
@@ -68,9 +68,9 @@
     }
     .initialized = true ;
     if $(path)
- {
+ {
         .path = $(path)/ ;
- }
+ }
 }
 
 # Creates a main target 'name', which, when updated, will cause
@@ -80,36 +80,36 @@
 # of those main targets will be scanned, provided they are of
 # appropricate type. The 'gettext.types' feature can be used to
 # control the types.
-#
+#
 # The target will be updated only if explicitly requested on the
 # command line.
 rule update ( name : existing-translation sources + : requirements * )
 {
     local project = [ project.current ] ;
-
+
     targets.main-target-alternative
       [ new typed-target $(name) : $(project) : gettext.UPDATE :
         $(existing-translation) $(sources)
- : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
       ] ;
     $(project).mark-target-as-explicit $(name) ;
 }
 
 
 # The human editable source, containing translation.
-type.register gettext.PO : po ;
+type.register gettext.PO : po ;
 # The machine readable message catalog.
 type.register gettext.catalog : mo ;
 # Intermediate type produce by extracting translations from
 # sources.
-type.register gettext.POT : pot ;
+type.register gettext.POT : pot ;
 # Pseudo type used to invoke update-translations generator
 type.register gettext.UPDATE ;
 
 # Identifies the keyword that should be used when scanning sources.
 # Default: i18n
 feature gettext.keyword : : free ;
-# Contains space-separated list of sources types which should be scanned.
+# Contains space-separated list of sources types which should be scanned.
 # Default: "C CPP"
 feature gettext.types : : free ;
 
@@ -119,7 +119,7 @@
 {
     import regex : split ;
     import property-set ;
-
+
     rule __init__ ( * : * )
     {
         generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
@@ -135,11 +135,11 @@
         local types = [ $(property-set).get <gettext.types> ] ;
         types ?= "C CPP" ;
         types = [ regex.split $(types) " " ] ;
-
+
         local keywords = [ $(property-set).get <gettext.keyword> ] ;
         property-set = [ property-set.create $(keywords:G=<gettext.keyword>) ] ;
 
- # First deterime the list of sources that must be scanned for
+ # First deterime the list of sources that must be scanned for
         # messages.
         local all-sources ;
         # CONSIDER: I'm not sure if the logic should be the same as for 'stage':
@@ -154,22 +154,22 @@
             if [ $(s).type ] in $(types)
             {
                 right-sources += $(s) ;
- }
+ }
         }
-
+
         local .constructed ;
         if $(right-sources)
- {
+ {
             # Create the POT file, which will contain list of messages extracted
             # from the sources.
- local extract =
+ local extract =
               [ new action $(right-sources) : gettext.extract : $(property-set) ] ;
- local new-messages = [ new file-target $(name) : gettext.POT
+ local new-messages = [ new file-target $(name) : gettext.POT
               : $(project) : $(extract) ] ;
-
+
             # Create a notfile target which will update the existing translation file
- # with new messages.
- local a = [ new action $(sources[1]) $(new-messages)
+ # with new messages.
+ local a = [ new action $(sources[1]) $(new-messages)
               : gettext.update-po-dispatch ] ;
             local r = [ new notfile-target $(name) : $(project) : $(a) ] ;
             .constructed = [ virtual-target.register $(r) ] ;
@@ -177,9 +177,9 @@
         else
         {
             errors.error "No source could be scanned by gettext tools" ;
- }
- return $(.constructed) ;
- }
+ }
+ return $(.constructed) ;
+ }
 }
 generators.register [ new update-translations-generator gettext.update : : gettext.UPDATE ] ;
 
@@ -199,23 +199,22 @@
 # first run), we need to copy the file created from sources.
 # In all other cases, we need to update the file.
 rule update-po-dispatch
-{
+{
     NOCARE $(>[1]) ;
     gettext.create-po $(<) : $(>) ;
     gettext.update-po $(<) : $(>) ;
- _ on $(<) = " " ;
+ _ on $(<) = " " ;
     ok on $(<) = "" ;
     EXISTING_PO on $(<) = $(>[1]) ;
 }
 
-# Due to fancy interaction of existing and updated, this rule
-# can be called with with one source, in which case we copy
-# the lonely source into EXISTING_PO, or with two sources,
-# in which case the action body expands to nothing.
-# I'd really like to have "missing" action modifier.
+# Due to fancy interaction of existing and updated, this rule can be called with
+# one source, in which case we copy the lonely source into EXISTING_PO, or with
+# two sources, in which case the action body expands to nothing. I'd really like
+# to have "missing" action modifier.
 actions quietly existing updated create-po bind EXISTING_PO
 {
- cp$(_)"$(>[1])"$(_)"$(EXISTING_PO)"$($(>[2]:E=ok))
+ cp$(_)"$(>[1])"$(_)"$(EXISTING_PO)"$($(>[2]:E=ok))
 }
 
 actions updated update-po bind EXISTING_PO
@@ -223,12 +222,9 @@
     $(.path)msgmerge$(_)-U$(_)"$(EXISTING_PO)"$(_)"$(>[1])"
 }
 
-actions gettext.compile
+actions gettext.compile
 {
- $(.path)msgfmt -o $(<) $(>)
+ $(.path)msgfmt -o $(<) $(>)
 }
 
 IMPORT $(__name__) : update : : gettext.update ;
-
-
-

Modified: branches/proto/v3/tools/build/v2/tools/intel-darwin.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/intel-darwin.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/intel-darwin.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -85,14 +85,7 @@
 
     local major = $(m) ;
     
- if $(major) = "8" {
- flags intel-darwin.compile OPTIONS $(condition)/<inlining>off : -Ob0 ;
- flags intel-darwin.compile OPTIONS $(condition)/<inlining>on : -Ob1 ;
- flags intel-darwin.compile OPTIONS $(condition)/<inlining>full : -Ob2 ;
- flags intel-darwin.link OPTIONS $(condition)/<runtime-link>static : -static -static-libcxa -lstdc++ -lpthread ;
- flags intel-darwin.link OPTIONS $(condition)/<runtime-link>shared : -shared-libcxa -lstdc++ -lpthread ;
- }
- else if $(major) = "9" {
+ if $(major) = "9" {
       flags intel-darwin.compile OPTIONS $(condition)/<inlining>off : -Ob0 ;
       flags intel-darwin.compile OPTIONS $(condition)/<inlining>on : -Ob1 ;
       flags intel-darwin.compile OPTIONS $(condition)/<inlining>full : -Ob2 ;
@@ -207,5 +200,5 @@
 
 actions link.dll bind LIBRARIES
 {
- "$(CONFIG_COMMAND)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" -Wl,-soname$(SPACE)-Wl,$(<[1]:D=) -shared "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS)
+ "$(CONFIG_COMMAND)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" -single_module -dynamiclib -install_name "$(<[1]:D=)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(OPTIONS)
 }

Modified: branches/proto/v3/tools/build/v2/tools/intel-win.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/intel-win.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/intel-win.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -78,6 +78,10 @@
 
     # Enable ADL
     C++FLAGS += -Qoption,c,--arg_dep_lookup ; #"c" works for C++, too
+
+ # Disable Microsoft "secure" overloads in Dinkumware libraries
+ # since they cause compile errors with Intel versions 9 and 10
+ C++FLAGS += -D_SECURE_SCL=0 ;
 
     if $(major) > 5
     {

Modified: branches/proto/v3/tools/build/v2/tools/intel.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/intel.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/intel.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -30,6 +30,5 @@
     {
         toolset.using intel-win :
           $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
-
     }
 }

Modified: branches/proto/v3/tools/build/v2/tools/mpi.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/mpi.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/mpi.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -271,6 +271,12 @@
       command = [ common.get-invocation-command mpi : mpiCC ] ;
     }
 
+ if ! $(mpicxx) && ! $(command)
+ {
+ # Try "mpicxx", which is used by OpenMPI and MPICH2
+ command = [ common.get-invocation-command mpi : mpicxx ] ;
+ }
+
     local result ;
     local compile_flags ;
     local link_flags ;

Modified: branches/proto/v3/tools/build/v2/tools/msvc.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/msvc.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/msvc.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,17 +9,16 @@
 # License Version 1.0. (See accompanying file LICENSE_1_0.txt or
 # http://www.boost.org/LICENSE_1_0.txt)
 
+import "class" : new ;
 import property ;
 import generators ;
 import os ;
 import type ;
 import toolset : flags ;
-import errors : error ;
-import feature : feature get-values ;
+import errors ;
+import feature ;
 import path ;
-import sequence : unique ;
 import common ;
-import "class" : new ;
 import rc ;
 import midl ;
 import mc ;
@@ -51,15 +50,14 @@
 # Dynamic runtime comes only in MT flavour.
 toolset.add-requirements <toolset>msvc,<runtime-link>shared:<threading>multi ;
 
-
-RM = [ common.rm-command ] ;
+RM = [ common.rm-command ] ;
 nl = "
 " ;
 
 
-# Initialize the toolset for a specific version. As the result, path to
-# compiler and, possible, program names are set up, and will be used when
-# that version of compiler is requested. For example, you might have:
+# Initialize the toolset for a specific version. As the result, path to compiler
+# and, possible, program names are set up, and will be used when that version of
+# compiler is requested. For example, you might have:
 #
 # using msvc : 6.5 : cl.exe ;
 # using msvc : 7.0 : Y:/foo/bar/cl.exe ;
@@ -72,36 +70,36 @@
 # - all - all detected versions will be registered;
 # - default - this is an equivalent to an empty version.
 #
-# Depending on a supplied version, detected configurations and presence
-# 'cl.exe' in the path different results may be achieved. The following
-# table describes all possible cases:
+# Depending on a supplied version, detected configurations and presence 'cl.exe'
+# in the path different results may be achieved. The following table describes
+# all possible cases:
 #
 # Nothing "x.y"
 # Passed Nothing "x.y" detected, detected,
 # version detected detected cl.exe in path cl.exe in path
-#
+#
 # default Error Use "x.y" Create "default" Use "x.y"
 # all None Use all None Use all
 # x.y - Use "x.y" - Use "x.y"
 # a.b Error Error Create "a.b" Create "a.b"
-#
+#
 # "x.y" - refers to a detected version;
 # "a.b" - refers to an undetected version.
 #
 # Note: for free VC7.1 tools, we don't correctly find vcvars32.bar when user
 # explicitly provides a path.
-rule init (
+rule init (
     version ? # the msvc version which is being configured. When omitted
             # the tools invoked when no explicit version is given will be configured.
- : command *
+ : command *
     # the command to invoke the compiler. If not specified:
     # - if version is given, default location for that version will be searched
- #
- # - if version is not given, default locations for 7.1, 7.0 and 6.* will
- # be searched
- #
- # - if compiler is not found in default locations, PATH will be searched.
- : options *
+ #
+ # - if version is not given, default locations for 7.1, 7.0 and 6.* will
+ # be searched
+ #
+ # - if compiler is not found in default locations, PATH will be searched.
+ : options *
     # options can include <setup>, <compiler>, <assembler>, <linker> and <resource-compiler>
     #
     # <compiler-filter>
@@ -118,22 +116,19 @@
 }
 
 
-# 'configure' is a newer version of 'init'. The parameter 'command' is passed as
+# 'configure' is a newer version of 'init'. The parameter 'command' is passed as
 # a part of the 'options' list.
-rule configure (
- version ? :
- options *
- )
+rule configure ( version ? : options * )
 {
     switch $(version)
     {
         case all :
             if $(options)
             {
- error "msvc: options should be empty when 'all' is specified" ;
+ errors.error "msvc: options should be empty when 'all' is specified" ;
             }
 
- # use all detected versions
+ # Use all detected versions.
             for local v in [ $(.versions).all ]
             {
                 configure-really $(v) ;
@@ -149,27 +144,24 @@
 
 
 # Supported CPU architectures
-cpu-arch-i386 =
+cpu-arch-i386 =
     <architecture>/<address-model>
     <architecture>/<address-model>32
- <architecture>x86/<address-model>
+ <architecture>x86/<address-model>
     <architecture>x86/<address-model>32 ;
 
-cpu-arch-amd64 =
- <architecture>/<address-model>64
+cpu-arch-amd64 =
+ <architecture>/<address-model>64
     <architecture>x86/<address-model>64 ;
 
 cpu-arch-ia64 =
- <architecture>ia64/<address-model>
+ <architecture>ia64/<address-model>
     <architecture>ia64/<address-model>64 ;
 
 
-local rule configure-really (
- version ? :
- options *
- )
+local rule configure-really ( version ? : options * )
 {
- # If no version supplied use the default configuration. Note that condition
+ # If no version supplied use the default configuration. Note that condition
     # remains versionless.
     local v = $(version) ;
     if ! $(v)
@@ -179,7 +171,7 @@
         version = $(version[1]) ;
         v = $(version) ;
 
- # Note: 'version' can still be empty at this point if no versions were
+ # Note: 'version' can still be empty at this point if no versions were
         # detected.
         version ?= "default" ;
     }
@@ -194,15 +186,15 @@
     if $(version) in [ $(.versions).used ]
     {
         # Allow multiple 'toolset.usage' calls for the same configuration
- # if the identical sets of options are used
+ # if the identical sets of options are used
         if $(options) && ( $(options) != [ $(.versions).get $(version) : options ] )
         {
- error "msvc: the toolset version '$(version)' is configured already" ;
+ errors.error "msvc: the toolset version '$(version)' is configured already" ;
         }
     }
     else
     {
- # Register a new configuration
+ # Register a new configuration
         $(.versions).register $(version) ;
 
         # Add user-supplied to auto-detected options
@@ -212,26 +204,23 @@
         $(.versions).use $(version) ;
 
         # Generate condition and save it
- local condition = [ common.check-init-parameters msvc :
- version $(v) ] ;
+ local condition = [ common.check-init-parameters msvc : version $(v) ] ;
 
         $(.versions).set $(version) : condition : $(condition) ;
 
+ local command = [ feature.get-values <command> : $(options) ] ;
 
- local command = [ get-values <command> : $(options) ] ;
-
- # If version is specified, we try to search first in default paths,
- # and only then in PATH.
+ # If version is specified, we try to search first in default paths, and
+ # only then in PATH.
         command = [ common.get-invocation-command msvc : cl.exe : $(command)
           : [ default-paths $(version) ] : $(version) ] ;
 
         common.handle-options msvc : $(condition) : $(command) : $(options) ;
-
 
- if ! $(version)
+ if ! $(version)
         {
- # Even if version is not explicitly specified, try to detect the version
- # from the path.
+ # Even if version is not explicitly specified, try to detect the
+ # version from the path.
             if [ MATCH "(Microsoft Visual Studio 9)" : $(command) ]
             {
                 version = 9.0 ;
@@ -239,7 +228,7 @@
             if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ]
             {
                 version = 8.0 ;
- }
+ }
             else if [ MATCH "(NET 2003[\/\\]VC7)" : $(command) ]
             {
                 version = 7.1 ;
@@ -255,11 +244,10 @@
             else
             {
                 version = 6.0 ;
- }
+ }
         }
 
-
- # Generate and register setup command
+ # Generate and register setup command.
 
         local below-8.0 = [ MATCH ^([67]\\.) : $(version) ] ;
 
@@ -276,9 +264,9 @@
             parent = [ path.parent $(parent) ] ;
             parent = [ path.native $(parent) ] ;
 
- # setup will be used if the script name has been specified.
- # If setup is not specified, a default script will be used instead.
- setup = [ get-values <setup> : $(options) ] ;
+ # Setup will be used if the script name has been specified. If setup
+ # is not specified, a default script will be used instead.
+ setup = [ feature.get-values <setup> : $(options) ] ;
 
             if ! $(setup)
             {
@@ -291,14 +279,14 @@
                     setup ?= vcvarsall.bat ;
                 }
 
- # The vccars32.bat is actually in "bin" directory.
- # (except for free VC7.1 tools)
+ # The vccars32.bat is actually in "bin" directory except for
+ # free VC7.1 tools.
                 setup = [ GLOB $(command) $(parent) : $(setup) ] ;
             }
 
             if $(setup)
             {
- # Note Cygwin to Windows translation
+ # Note Cygwin to Windows translation.
                 setup = "\""$(setup[1]:W)"\"" ;
 
                 if ! $(below-8.0)
@@ -309,16 +297,14 @@
                     # say about x86_IPF, that seem to be doc bug,
                     # and x86_ia64 is right one.
                     setup-option = x86 x86_amd64 x86_ia64 ;
-
- # When using 64-bit Windows, and targeting 64-bit,
- # it's possible to use native 64-bit compiler, which is
- # selected by the "amd64" parameter to vcvarsall.bat.
- # There are two variables we can use --
- # PROCESSOR_ARCHITECTURE and PROCESSOR_IDENTIFIER.
- # The first is 'x86' when running 32-bit windows,
- # no matter what processor is, and 'AMD64' on 64-bit
- # windows on x86 (either AMD64 or EM64T).
- # windows.
+
+ # When using 64-bit Windows, and targeting 64-bit, it's
+ # possible to use native 64-bit compiler, which is selected
+ # by the "amd64" parameter to vcvarsall.bat. There are two
+ # variables we can use -- PROCESSOR_ARCHITECTURE and
+ # PROCESSOR_IDENTIFIER. The first is 'x86' when running
+ # 32-bit windows, no matter what processor is, and 'AMD64'
+ # on 64-bit windows on x86 (either AMD64 or EM64T) windows.
                     if [ MATCH ^(AMD64) : [ os.environ PROCESSOR_ARCHITECTURE ] ]
                     {
                         setup-option = x86 amd64 x86_ia64 ;
@@ -338,32 +324,32 @@
 
         command = $(prefix)$(setup)" "$(setup-option:E="")$(suffix) ;
 
- # Setup script is not required in some configurations
+ # Setup script is not required in some configurations.
         command ?= "" ;
 
- # Get tool names (if any) and finish setup
+ # Get tool names (if any) and finish setup.
 
- compiler = [ get-values <compiler> : $(options) ] ;
+ compiler = [ feature.get-values <compiler> : $(options) ] ;
         compiler ?= cl ;
 
- linker = [ get-values <linker> : $(options) ] ;
+ linker = [ feature.get-values <linker> : $(options) ] ;
         linker ?= link ;
 
- resource-compiler = [ get-values <resource-compiler> : $(options) ] ;
+ resource-compiler = [ feature.get-values <resource-compiler> : $(options) ] ;
         resource-compiler ?= rc ;
 
- assembler = [ get-values <assembler> : $(options) ] ;
+ assembler = [ feature.get-values <assembler> : $(options) ] ;
         assembler ?= ml ;
 
- idl-compiler = [ get-values <idl-compiler> : $(options) ] ;
+ idl-compiler = [ feature.get-values <idl-compiler> : $(options) ] ;
         idl-compiler ?= midl ;
 
- mc-compiler = [ get-values <mc-compiler> : $(options) ] ;
+ mc-compiler = [ feature.get-values <mc-compiler> : $(options) ] ;
         mc-compiler ?= mc ;
 
         manifest-tool = mt ;
-
- local cc-filter = [ get-values <compiler-filter> : $(options) ] ;
+
+ local cc-filter = [ feature.get-values <compiler-filter> : $(options) ] ;
 
         for local i in 1 2 3
         {
@@ -378,31 +364,31 @@
                     ECHO "msvc: condition: '$(cond)', "
                         "command: '$(command[$(i)])'" ;
                 }
-
- flags msvc.compile .CC $(cond) : $(command[$(i)])$(compiler) /Zm800 -nologo ;
- flags msvc.compile .RC $(cond) : $(command[$(i)])$(resource-compiler) ;
- flags msvc.compile .ASM $(cond) : $(command[$(i)])$(assembler) ;
- flags msvc.link .LD $(cond) : $(command[$(i)])$(linker) /NOLOGO /INCREMENTAL:NO ;
- flags msvc.archive .LD $(cond) : $(command[$(i)])$(linker) /lib /NOLOGO ;
- flags msvc.compile .IDL $(cond) : $(command[$(i)])$(idl-compiler) ;
- flags msvc.compile .MC $(cond) : $(command[$(i)])$(mc-compiler) ;
+
+ toolset.flags msvc.compile .CC $(cond) : $(command[$(i)])$(compiler) /Zm800 -nologo ;
+ toolset.flags msvc.compile .RC $(cond) : $(command[$(i)])$(resource-compiler) ;
+ toolset.flags msvc.compile .ASM $(cond) : $(command[$(i)])$(assembler) ;
+ toolset.flags msvc.link .LD $(cond) : $(command[$(i)])$(linker) /NOLOGO /INCREMENTAL:NO ;
+ toolset.flags msvc.archive .LD $(cond) : $(command[$(i)])$(linker) /lib /NOLOGO ;
+ toolset.flags msvc.compile .IDL $(cond) : $(command[$(i)])$(idl-compiler) ;
+ toolset.flags msvc.compile .MC $(cond) : $(command[$(i)])$(mc-compiler) ;
 
                 if ! [ os.name ] in NT
                 {
- flags msvc.link .MT $(cond) : $(command[$(i)])$(manifest-tool) -nologo ;
+ toolset.flags msvc.link .MT $(cond) : $(command[$(i)])$(manifest-tool) -nologo ;
                 }
                 else
                 {
- flags msvc.link .MT $(cond) : $(manifest-tool) -nologo ;
+ toolset.flags msvc.link .MT $(cond) : $(manifest-tool) -nologo ;
                 }
-
+
                 if $(cc-filter)
                 {
- flags msvc .CC.FILTER $(cond) : "|" $(cc-filter) ;
+ toolset.flags msvc .CC.FILTER $(cond) : "|" $(cc-filter) ;
                 }
             }
         }
- # Set version-specific flags
+ # Set version-specific flags.
         configure-version-specific msvc : $(version) : $(condition) ;
     }
 }
@@ -411,95 +397,94 @@
 # Supported CPU types (only Itanium optimization options are supported from
 # VC++ 2005 on). See http://msdn2.microsoft.com/en-us/library/h66s5s0e(vs.90).aspx
 cpu-type-g5 = i586 pentium pentium-mmx ;
-cpu-type-g6 =
- i686 pentiumpro pentium2 pentium3 pentium3m pentium-m k6 k6-2 k6-3
+cpu-type-g6 =
+ i686 pentiumpro pentium2 pentium3 pentium3m pentium-m k6 k6-2 k6-3
     winchip-c6 winchip2 c3 c3-2 ;
 
-cpu-type-em64t = prescott nocona
+cpu-type-em64t = prescott nocona
     conroe conroe-xe conroe-l allendale mermon mermon-xe kentsfield kentsfield-xe
     penryn wolfdale yorksfield nehalem ;
 cpu-type-amd64 = k8 opteron athlon64 athlon-fx ;
 
-cpu-type-g7 =
- pentium4 pentium4m athlon athlon-tbird athlon-4 athlon-xp athlon-mp
+cpu-type-g7 =
+ pentium4 pentium4m athlon athlon-tbird athlon-4 athlon-xp athlon-mp
     $(cpu-type-em64t) $(cpu-type-amd64) ;
 
 cpu-type-itanium = itanium itanium1 merced ;
 cpu-type-itanium2 = itanium2 mckinley ;
 
-# Sets up flag definitions that are dependent on the version ot
-# compiler.
+
+# Sets up flag definitions dependent on the compiler version used.
 # - 'version' is the version of compiler in N.M format.
-# - 'condition' is the property set to be used as condition for flag
-# - 'toolset' is the toolset for which flag settings are to be defined
+# - 'condition' is the property set to be used as condition for flag.
+# - 'toolset' is the toolset for which flag settings are to be defined.
 # This makes the rule reusable for other msvc-option-compatible compilers.
 rule configure-version-specific ( toolset : version : condition )
 {
     toolset.push-checking-for-flags-module unchecked ;
- # Starting with versions 7.0, the msvc compiler have the /Zc:forScope
- # and /Zc:wchar_t options that improve C++ standard conformance, but
- # those options are off by default.
- # If we're sure that msvc version is at 7.*, add those options explicitly.
- # We can be sure either if user specified version 7.* explicitly,
- # or if the installation path contain 7.* (this is checked above).
+ # Starting with versions 7.0, the msvc compiler have the /Zc:forScope and
+ # /Zc:wchar_t options that improve C++ standard conformance, but those
+ # options are off by default. If we're sure that msvc version is at 7.*, add
+ # those options explicitly. We can be sure either if user specified version
+ # 7.* explicitly, or if the installation path contain 7.* (checked above).
     if ! [ MATCH ^(6\\.) : $(version) ]
     {
- flags $(toolset).compile CFLAGS $(condition) : /Zc:forScope /Zc:wchar_t ;
- flags $(toolset).compile.c++ C++FLAGS $(condition) : /wd4675 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition) : /Zc:forScope /Zc:wchar_t ;
+ toolset.flags $(toolset).compile.c++ C++FLAGS $(condition) : /wd4675 ;
         # disable the function is deprecated warning
         # Some version of msvc have a bug, that cause deprecation
         # warning to be emitted even with /W0
- flags $(toolset).compile CFLAGS $(condition)/<warnings>off : /wd4996 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<warnings>off : /wd4996 ;
         # 64-bit compatibility warning
- flags $(toolset).compile CFLAGS $(condition)/<warnings>all : /Wp64 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<warnings>all : /Wp64 ;
     }
-
+
     #
     # Processor-specific optimization
     #
 
     if [ MATCH ^([67]) : $(version) ]
     {
- # 8.0 deprecates some of the options
- flags $(toolset).compile CFLAGS $(condition)/<optimization>speed $(condition)/<optimization>space : /Ogiy /Gs ;
- flags $(toolset).compile CFLAGS $(condition)/<optimization>speed : /Ot ;
- flags $(toolset).compile CFLAGS $(condition)/<optimization>space : /Os ;
-
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set> : /GB ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i386 : /G3 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i486 : /G4 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g5) : /G5 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g6) : /G6 ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g7) : /G7 ;
-
- # Improve floating-point accuracy. Otherwise, some of C++ Boost's
- # "math" tests will fail.
- flags $(toolset).compile CFLAGS $(condition) : /Op ;
-
- # 7.1 and below have single-threaded static RTL
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
+ # 8.0 deprecates some of the options.
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>speed $(condition)/<optimization>space : /Ogiy /Gs ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>speed : /Ot ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<optimization>space : /Os ;
+
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set> : /GB ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i386 : /G3 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>i486 : /G4 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g5) : /G5 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g6) : /G6 ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-i386)/<instruction-set>$(cpu-type-g7) : /G7 ;
+
+ # Improve floating-point accuracy. Otherwise, some of C++ Boost's "math"
+ # tests will fail.
+ toolset.flags $(toolset).compile CFLAGS $(condition) : /Op ;
+
+ # 7.1 and below have single-threaded static RTL.
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
     }
     else
     {
- # 8.0 and above adds some more options
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set> : /favor:blend ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-em64t) : /favor:EM64T ;
- flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-amd64) : /favor:AMD64 ;
-
- # 8.0 and above only has multi-threaded static RTL
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
- flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
+ # 8.0 and above adds some more options.
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set> : /favor:blend ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-em64t) : /favor:EM64T ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/$(cpu-arch-amd64)/<instruction-set>$(cpu-type-amd64) : /favor:AMD64 ;
+
+ # 8.0 and above only has multi-threaded static RTL.
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
+ toolset.flags $(toolset).compile CFLAGS $(condition)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
     }
     toolset.pop-checking-for-flags-module ;
 }
 
 
-# Returns the default installation path for the given version.
+# Returns the default installation path for the given version.
 local rule default-path ( version )
 {
- # Use auto-detected path if possible
- local path = [ get-values <command> :
+ # Use auto-detected path if possible
+ local path = [ feature.get-values <command> :
         [ $(.versions).get $(version) : options ] ] ;
 
     if $(path)
@@ -532,12 +517,13 @@
     return $(path) ;
 }
 
-# Returns either the default installation path (if 'version' is not empty) or list of all
-# known default paths (if no version is given)
+
+# Returns either the default installation path (if 'version' is not empty) or
+# list of all known default paths (if no version is given)
 rule default-paths ( version ? )
 {
     local possible-paths ;
-
+
     if $(version)
     {
         possible-paths += [ default-path $(version) ] ;
@@ -554,14 +540,13 @@
 }
 
 
-# Declare generators
+# Declare generators.
 
-# is it possible to combine these?
-# make the generators non-composing, so that they don't convert each source
-# into separate rsp file.
+# Is it possible to combine these? Make the generators non-composing so that
+# they don't convert each source into a separate rsp file.
 generators.register-linker msvc.link : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB : EXE : <toolset>msvc ;
 generators.register-linker msvc.link.dll : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB : SHARED_LIB IMPORT_LIB : <toolset>msvc ;
-
+
 generators.register-archiver msvc.archive : OBJ : STATIC_LIB : <toolset>msvc ;
 generators.register-c-compiler msvc.compile.c++ : CPP : OBJ : <toolset>msvc ;
 generators.register-c-compiler msvc.compile.c : C : OBJ : <toolset>msvc ;
@@ -579,14 +564,14 @@
 
 # pch support
 
-feature pch-source : : free dependency ;
+feature.feature pch-source : : free dependency ;
 
 class msvc-pch-generator : pch-generator
 {
     import property-set ;
 
     rule run-pch ( project name ? : property-set : sources * )
- {
+ {
         # searching header and source file in the sources
         local pch-header ;
         local pch-source ;
@@ -603,30 +588,24 @@
                 pch-source = $(s) ;
             }
         }
-
+
         if ! $(pch-header)
         {
             errors.user-error "can't build pch without pch-header" ;
         }
 
- # If we don't have PCH source, it's fine, we'll
- # create temporary .cpp file in the action.
+ # If we don't have PCH source - that's fine. We'll just create a
+ # temporary .cpp file in the action.
 
- local generated =
- [
- # Passing of <pch-source> is a dirty trick,
- # needed because non-composing generators
- # with multiple inputs are subtly broken:
- # https://zigzag.cs.msu.su:7813/boost.build/ticket/111
- generator.run $(project) $(name)
- : [
- property-set.create
- <pch-source>$(pch-source)
- [ $(property-set).raw ]
- ]
- : $(pch-header)
- ]
- ;
+ local generated = [ generator.run $(project) $(name)
+ : [ property-set.create
+ # Passing of <pch-source> is a dirty trick, needed because
+ # non-composing generators with multiple inputs are subtly
+ # broken. For more detailed information see:
+ # https://zigzag.cs.msu.su:7813/boost.build/ticket/111
+ <pch-source>$(pch-source)
+ [ $(property-set).raw ] ]
+ : $(pch-header) ] ;
 
         local pch-file ;
         for local g in $(generated)
@@ -637,29 +616,24 @@
             }
         }
 
- return
- [
- property-set.create
- <pch-header>$(pch-header)
- <pch-file>$(pch-file)
- ]
- $(generated)
- ;
+ return [ property-set.create <pch-header>$(pch-header)
+ <pch-file>$(pch-file) ] $(generated) ;
     }
 }
 
-# Note: the 'H' source type will catch both '.h' header and '.hpp' header. The latter
-# have HPP type, but HPP type is derived from H. The type of compilation is determined
-# entirely by the destination type.
+
+# Note: the 'H' source type will catch both '.h' header and '.hpp' header. The
+# latter have HPP type, but HPP type is derived from H. The type of compilation
+# is determined entirely by the destination type.
 generators.register [ new msvc-pch-generator msvc.compile.c.pch : H : C_PCH OBJ : <pch>on <toolset>msvc ] ;
 generators.register [ new msvc-pch-generator msvc.compile.c++.pch : H : CPP_PCH OBJ : <pch>on <toolset>msvc ] ;
 
 generators.override msvc.compile.c.pch : pch.default-c-pch-generator ;
 generators.override msvc.compile.c++.pch : pch.default-cpp-pch-generator ;
 
-flags msvc.compile PCH_FILE <pch>on : <pch-file> ;
-flags msvc.compile PCH_SOURCE <pch>on : <pch-source> ;
-flags msvc.compile PCH_HEADER <pch>on : <pch-header> ;
+flags msvc.compile PCH_FILE <pch>on : <pch-file> ;
+flags msvc.compile PCH_SOURCE <pch>on : <pch-source> ;
+flags msvc.compile PCH_HEADER <pch>on : <pch-header> ;
 
 #
 # Declare flags and action for compilation
@@ -689,7 +663,11 @@
 flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>on/<extern-c-nothrow>off : /EHa ;
 flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>on/<extern-c-nothrow>on : /EHac ;
 
+# By default 8.0 enables rtti support while prior versions disabled it. We
+# simply enable or disable it expliclty so we do not have to depend on this
+# default behaviour.
 flags msvc.compile CFLAGS <rtti>on : /GR ;
+flags msvc.compile CFLAGS <rtti>off : /GR- ;
 flags msvc.compile CFLAGS <runtime-debugging>off/<runtime-link>shared : /MD ;
 flags msvc.compile CFLAGS <runtime-debugging>on/<runtime-link>shared : /MDd ;
 
@@ -705,22 +683,26 @@
 flags msvc.compile UNDEFS <undef> ;
 flags msvc.compile INCLUDES <include> ;
 
+
 rule get-rspline ( target : lang-opt )
 {
     CC_RSPLINE on $(target) = [ on $(target) return $(lang-opt) -U$(UNDEFS) $(CFLAGS) $(C++FLAGS) $(OPTIONS) -c $(nl)-D$(DEFINES) $(nl)\"-I$(INCLUDES)\" ] ;
 }
 
+
 rule compile-c-c++ ( targets + : sources * )
 {
     DEPENDS $(<[1]) : [ on $(<[1]) return $(PCH_HEADER) ] ;
     DEPENDS $(<[1]) : [ on $(<[1]) return $(PCH_FILE) ] ;
 }
 
+
 actions compile-c-c++
 {
     $(.CC) @"@($(<[1]:W).rsp:E="$(>[1]:W)" -Fo"$(<[1]:W)" -Yu"$(>[3]:D=)" -Fp"$(>[2]:W)" $(CC_RSPLINE))" $(.CC.FILTER)
 }
 
+
 rule compile.c ( targets + : sources * : properties * )
 {
     C++FLAGS on $(targets[1]) = ;
@@ -728,19 +710,22 @@
     compile-c-c++ $(<) : $(>) [ on $(<) return $(PCH_FILE) ] [ on $(<) return $(PCH_HEADER) ] ;
 }
 
+
 rule compile.c++ ( targets + : sources * : properties * )
 {
     get-rspline $(targets) : -TP ;
     compile-c-c++ $(<) : $(>) [ on $(<) return $(PCH_FILE) ] [ on $(<) return $(PCH_HEADER) ] ;
 }
 
+
 actions compile-c-c++-pch-s
 {
     $(.CC) @"@($(<[1]:W).rsp:E="$(>[2]:W)" -Fo"$(<[2]:W)" -Yc"$(>[1]:D=)" -Yl"__bjam_pch_symbol_$(>[1]:D=)" -Fp"$(<[1]:W)" $(CC_RSPLINE))" $(.CC.FILTER)
 }
 
-# Needed only to avoid messing up Emacs syntax highlighting in
-# the messing N-quoted code below.
+
+# Needed only to avoid messing up Emacs syntax highlighting in the messy
+# N-quoted code below.
 quote = "\"" ;
 
 actions compile-c-c++-pch
@@ -748,6 +733,7 @@
     $(.CC) @"@($(<[1]:W).rsp:E="$(>[2]:W)" -Fo"$(<[2]:W)" -Yc"$(>[1]:D=)" -Yl"__bjam_pch_symbol_$(>[1]:D=)" -Fp"$(<[1]:W)" $(CC_RSPLINE))" "@($(<[1]:W).cpp:E=#include $(quote)$(>[1]:D=)$(quote))" $(.CC.FILTER)
 }
 
+
 rule compile.c.pch ( targets + : sources * : properties * )
 {
     C++FLAGS on $(targets[1]) = ;
@@ -755,47 +741,52 @@
     get-rspline $(targets[2]) : -TC ;
     local pch-source = [ on $(<) return $(PCH_SOURCE) ] ;
     if $(pch-source)
- {
+ {
         DEPENDS $(<) : $(pch-source) ;
         compile-c-c++-pch-s $(targets) : $(sources) $(pch-source) ;
     }
     else
     {
         compile-c-c++-pch $(targets) : $(sources) ;
- }
+ }
 }
 
+
 rule compile.c++.pch ( targets + : sources * : properties * )
 {
     get-rspline $(targets[1]) : -TP ;
     get-rspline $(targets[2]) : -TP ;
     local pch-source = [ on $(<) return $(PCH_SOURCE) ] ;
     if $(pch-source)
- {
+ {
         DEPENDS $(<) : $(pch-source) ;
         compile-c-c++-pch-s $(targets) : $(sources) $(pch-source) ;
     }
     else
     {
         compile-c-c++-pch $(targets) : $(sources) ;
- }
+ }
 }
 
+
 actions compile.rc
 {
     $(.RC) -l 0x409 -U$(UNDEFS) -D$(DEFINES) -I"$(INCLUDES)" -fo "$(<:W)" "$(>:W)"
 }
 
+
 # See midl.jam for details
 TOUCH_FILE = [ common.file-touch-command ] ;
 
+
 actions compile.idl
 {
     $(.IDL) /nologo @"@($(<[1]:W).rsp:E=$(nl)"$(>:W)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)" $(nl)-U$(UNDEFS) $(nl)$(MIDLFLAGS) $(nl)/tlb "$(<[1]:W)" $(nl)/h "$(<[2]:W)" $(nl)/iid "$(<[3]:W)" $(nl)/proxy "$(<[4]:W)" $(nl)/dlldata "$(<[5]:W)")"
- $(TOUCH_FILE) "$(<[4]:W)"
- $(TOUCH_FILE) "$(<[5]:W)"
+ $(TOUCH_FILE) "$(<[4]:W)"
+ $(TOUCH_FILE) "$(<[5]:W)"
 }
 
+
 # Declare flags and action for the assembler
 
 flags msvc.compile.asm USER_ASMFLAGS <asmflags> : ;
@@ -813,12 +804,13 @@
     $(.ASM) -nologo -c -coff -Zp4 -Cp -Cx $(USER_ASMFLAGS) -Fo "$(<:W)" "$(>:W)"
 }
 
+
 # Declare flags and action for linking
-flags msvc.link PDB_LINKFLAG <debug-symbols>on/<debug-store>database : /PDB: ; # not used yet
+flags msvc.link PDB_LINKFLAG <debug-symbols>on/<debug-store>database : /PDB: ; # not used yet
 flags msvc.link LINKFLAGS <debug-symbols>on : /DEBUG ;
 flags msvc.link DEF_FILE <def-file> ;
-# The linker disables the default optimizations when using /DEBUG. Whe have
-# to enable them manually for release builds with debug symbols.
+# The linker disables the default optimizations when using /DEBUG. Whe have to
+# enable them manually for release builds with debug symbols.
 flags msvc LINKFLAGS <debug-symbols>on/<runtime-debugging>off : /OPT:REF,ICF ;
 
 flags msvc LINKFLAGS <user-interface>console : /subsystem:console ;
@@ -830,7 +822,6 @@
 flags msvc.link OPTIONS <linkflags> ;
 flags msvc.link LINKPATH <library-path> ;
 
-
 flags msvc.link FINDLIBS_ST <find-static-library> ;
 flags msvc.link FINDLIBS_SA <find-shared-library> ;
 flags msvc.link LIBRARY_OPTION <toolset>msvc : "" : unchecked ;
@@ -844,44 +835,42 @@
     DEPENDS $(<) : [ on $(<) return $(DEF_FILE) ] ;
 }
 
-# Declare action for creating static libraries
-# If library exists, remove it before adding files. See
-# http://article.gmane.org/gmane.comp.lib.boost.build/4241
-# for rationale.
+# Declare action for creating static libraries. If library exists, remove it
+# before adding files. See
+# http://article.gmane.org/gmane.comp.lib.boost.build/4241 for rationale.
 if [ os.name ] in NT
-{
- # The 'DEL' command would issue a message to stdout
- # if the file does not exist, so need a check.
+{
+ # The 'DEL' command would issue a message to stdout if the file does not
+ # exist, so need a check.
     actions archive
- {
- if exist "$(<[1])" DEL "$(<[1])"
+ {
+ if exist "$(<[1])" DEL "$(<[1])"
         $(.LD) $(AROPTIONS) /out:"$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
     }
 }
 else
 {
     actions archive
- {
+ {
         $(RM) "$(<[1])"
         $(.LD) $(AROPTIONS) /out:"$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
     }
 }
-
-# incremental linking a DLL causes no end of problems: if the
-# actual exports don't change, the import .lib file is never
-# updated. Therefore, the .lib is always out-of-date and gets
-# rebuilt every time. I'm not sure that incremental linking is
-# such a great idea in general, but in this case I'm sure we
-# don't want it.
-
-# Windows Manifests is a new way to specify dependencies
-# on managed DotNet assemblies and Windows native DLLs. The
-# manifests are embedded as resources and are useful in
-# any PE targets (both DLL and EXE)
+
+
+# Incremental linking a DLL causes no end of problems: if the actual exports
+# don't change, the import .lib file is never updated. Therefore, the .lib is
+# always out-of-date and gets rebuilt every time. I'm not sure that incremental
+# linking is such a great idea in general, but in this case I'm sure we don't
+# want it.
+
+# Windows manifest is a new way to specify dependencies on managed DotNet
+# assemblies and Windows native DLLs. The manifests are embedded as resources
+# and are useful in any PE target (both DLL and EXE).
 
 if [ os.name ] in NT
 {
- actions link bind DEF_FILE
+ actions link bind DEF_FILE LIBRARIES_MENTIONED_BY_FILE
     {
         $(.LD) $(LINKFLAGS) /out:"$(<[1]:W)" /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
         if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
@@ -890,7 +879,7 @@
         )
     }
 
- actions link.dll bind DEF_FILE
+ actions link.dll bind DEF_FILE LIBRARIES_MENTIONED_BY_FILE
     {
         $(.LD) /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:"$(DEF_FILE)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
         if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
@@ -901,7 +890,7 @@
 }
 else
 {
- actions link bind DEF_FILE
+ actions link bind DEF_FILE LIBRARIES_MENTIONED_BY_FILE
     {
         $(.LD) $(LINKFLAGS) /out:"$(<[1]:W)" /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
         if test -e "$(<[1]).manifest"; then
@@ -909,7 +898,7 @@
         fi
     }
 
- actions link.dll bind DEF_FILE
+ actions link.dll bind DEF_FILE LIBRARIES_MENTIONED_BY_FILE
     {
         $(.LD) /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:"$(DEF_FILE)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST).lib" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA).lib")"
         if test -e "$(<[1]).manifest"; then
@@ -927,7 +916,7 @@
 
 #
 # Autodetection code
-# detects versions listed as '.known-versions' using registry, environment
+# detects versions listed as '.known-versions' using registry, environment
 # and checking default paths. Supports both native Windows and Cygwin.
 #
 
@@ -941,7 +930,7 @@
 .version-alias-7 = 7.0 ;
 .version-alias-8 = 8.0 ;
 .version-alias-9 = 9.0 ;
-
+
 # Name of the registry key that contains Visual C++ installation path
 # (relative to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft"
 .version-6.0-reg = "VisualStudio\\6.0\\Setup\\Microsoft Visual C++" ;
@@ -953,18 +942,18 @@
 .version-9.0express-reg = "VCExpress\\9.0\\Setup\\VC" ;
 
 # Visual C++ Toolkit 2003 do not store its installation path in the registry.
-# The environment variable 'VCToolkitInstallDir' and the default installation
+# The environment variable 'VCToolkitInstallDir' and the default installation
 # path will be checked instead.
 .version-7.1toolkit-path = "Microsoft Visual C++ Toolkit 2003" "bin" ;
 .version-7.1toolkit-env = VCToolkitInstallDir ;
 
-# Path to the folder containing "cl.exe" relative to the value of the corresponding
-# environment variable
+# Path to the folder containing "cl.exe" relative to the value of the
+# corresponding environment variable.
 .version-7.1toolkit-envpath = "bin" ;
 
 
-# Validates given path, registers found configuration and prints debug information
-# about it.
+# Validates given path, registers found configuration and prints debug
+# information about it.
 local rule register-configuration ( version : path ? )
 {
     if $(path)
@@ -986,8 +975,7 @@
 
 if [ os.name ] in NT CYGWIN
 {
- # Get installation paths from the registry
-
+ # Get installation paths from the registry.
     for local i in $(.known-versions)
     {
         if $(.version-$(i)-reg)
@@ -999,7 +987,7 @@
                 "HKEY_LOCAL_MACHINE\\SOFTWARE\\"$(x)"\\Microsoft\\"$(.version-$(i)-reg)
                 : "ProductDir" ] ;
             }
-
+
             if $(vc-path)
             {
                 vc-path = [ path.native [ path.join [ path.make-NT $(vc-path[1]) ] "bin" ] ] ;
@@ -1010,7 +998,7 @@
 }
 
 
-# Check environment and default installation paths
+# Check environment and default installation paths.
 
 for local i in $(.known-versions)
 {
@@ -1019,4 +1007,3 @@
         register-configuration $(i) : [ default-path $(i) ] ;
     }
 }
-

Modified: branches/proto/v3/tools/build/v2/tools/notfile.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/notfile.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/notfile.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,47 +4,52 @@
 # License Version 1.0. (See accompanying file LICENSE_1_0.txt or
 # http://www.boost.org/LICENSE_1_0.txt)
 
+import "class" : new ;
 import generators ;
-import type ;
-import feature ;
 import project ;
 import targets ;
 import toolset ;
-import "class" : new ;
+import type ;
+
 
 type.register NOTFILE_MAIN ;
 
+
 class notfile-generator : generator
 {
     rule __init__ ( * : * )
     {
         generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
     }
-
+
     rule run ( project name ? : property-set : sources * : multiple ? )
     {
         local action ;
         local action-name = [ $(property-set).get <action> ] ;
-
+
         local m = [ MATCH ^@(.*) : $(action-name) ] ;
-
- if $(m)
+
+ if $(m)
         {
- action = [ new action $(sources) : $(m[1])
- : $(property-set) ] ;
+ action = [ new action $(sources) : $(m[1])
+ : $(property-set) ] ;
         }
         else
         {
- action = [ new action $(sources) : notfile.run
- : $(property-set) ] ;
- }
+ action = [ new action $(sources) : notfile.run
+ : $(property-set) ] ;
+ }
         return [ new notfile-target $(name) : $(project) : $(action) ] ;
- }
+ }
 }
 
+
 generators.register [ new notfile-generator notfile.main : : NOTFILE_MAIN ] ;
 
+
 toolset.flags notfile.run ACTION : <action> ;
+
+
 actions run
 {
     $(ACTION)
@@ -52,20 +57,17 @@
 
 
 rule notfile ( target-name : action + : sources * : requirements * : default-build * )
-{
+{
     local project = [ project.current ] ;
-
+
     requirements += <action>$(action) ;
 
-
- targets.main-target-alternative
+ targets.main-target-alternative
         [ new typed-target $(target-name) : $(project) : NOTFILE_MAIN
- : [ targets.main-target-sources $(sources) : $(target-name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-sources $(sources) : $(target-name) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
         ] ;
 }
 
 IMPORT $(__name__) : notfile : : notfile ;
-
-

Modified: branches/proto/v3/tools/build/v2/tools/package.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/package.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/package.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,7 +34,6 @@
 import targets ;
 import "class" : new ;
 import option ;
-import errors ;
 import stage ;
 import property ;
 
@@ -77,7 +76,6 @@
     # source header files
     local include-locate = [ option.get includedir : $(prefix)/include ] ;
 
-
     stage.install $(name)-bin : $(binaries) : $(requirements) <location>$(bin-locate) ;
     stage.install $(name)-lib :
         $(binaries) $(libraries)

Modified: branches/proto/v3/tools/build/v2/tools/pch.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/pch.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/pch.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -34,19 +34,18 @@
 type.register C_PCH : : PCH ;
 type.register CPP_PCH : : PCH ;
 
-# control precompiled header (PCH) generation
+# Control precompiled header (PCH) generation.
 feature.feature pch :
- on
- off
- : propagated
- ;
+ on
+ off
+ : propagated ;
+
 
 feature.feature pch-header : : free dependency ;
 feature.feature pch-file : : free dependency ;
 
-# Base PCH generator. The 'run' method has the logic to
-# prevent this generator from being run unless it's used
-# in top-level PCH target.
+# Base PCH generator. The 'run' method has the logic to prevent this generator
+# from being run unless it's being used for a top-level PCH target.
 class pch-generator : generator
 {
     import property-set ;
@@ -60,38 +59,37 @@
     {
         if ! $(name)
         {
- # Unless this generator is invoked as the top-most
- # generator for a main target, fail. This allows using
- # 'H' type as input type for this generator, while
- # preventing Boost.Build to try this generator when not
- # explicitly asked for.
+ # Unless this generator is invoked as the top-most generator for a
+ # main target, fail. This allows using 'H' type as input type for
+ # this generator, while preventing Boost.Build to try this generator
+ # when not explicitly asked for.
             #
- # One bad example is msvc, where pch generator produces
- # both PCH target and OBJ target, so if there's any
- # header generated (like by bison, or by msidl), we'd
- # try to use pch generator to get OBJ from that H, which
- # is completely wrong. By restricting this generator
+ # One bad example is msvc, where pch generator produces both PCH
+ # target and OBJ target, so if there's any header generated (like by
+ # bison, or by msidl), we'd try to use pch generator to get OBJ from
+ # that H, which is completely wrong. By restricting this generator
             # only to pch main target, such problem is solved.
         }
         else
         {
- local r = [ run-pch $(project) $(name)
+ local r = [ run-pch $(project) $(name)
               : [ $(property-set).add-raw <define>BOOST_BUILD_PCH_ENABLED ]
               : $(sources) ] ;
             return [ generators.add-usage-requirements $(r)
               : <define>BOOST_BUILD_PCH_ENABLED ] ;
- }
+ }
     }
-
+
     # This rule must be overridden by the derived classes.
     rule run-pch ( project name ? : property-set : sources + )
- {
- }
+ {
+ }
 }
 
-# NOTE: requiremetns are empty,
-# default pch generator can be applied when pch=off
-generators.register [
- new dummy-generator pch.default-c-pch-generator : : C_PCH ] ;
-generators.register [
- new dummy-generator pch.default-cpp-pch-generator : : CPP_PCH ] ;
+
+# NOTE: requirements are empty, default pch generator can be applied when
+# pch=off.
+generators.register
+ [ new dummy-generator pch.default-c-pch-generator : : C_PCH ] ;
+generators.register
+ [ new dummy-generator pch.default-cpp-pch-generator : : CPP_PCH ] ;

Modified: branches/proto/v3/tools/build/v2/tools/pgi.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/pgi.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/pgi.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -133,7 +133,7 @@
 
 actions link.dll bind LIBRARIES
 {
- "$(CONFIG_COMMAND)" $(OPTIONS) -shared -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" -Wl,-h -Wl,$(<[1]:D=) "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
+ "$(CONFIG_COMMAND)" $(OPTIONS) -shared -L"$(LINKPATH)" -R"$(RPATH)" -o "$(<)" "$(>)" -Wl,-h -Wl,$(<[1]:D=) "$(LIBRARIES)" -Bdynamic -l$(FINDLIBS-SA) -Bstatic -l$(FINDLIBS-ST) -B$(LINK-RUNTIME)
 }
 
 actions updated together piecemeal pgi.archive

Modified: branches/proto/v3/tools/build/v2/tools/python.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/python.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/python.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -94,8 +94,8 @@
 #
 # using python 2.3 ;
 # using python 2.3 : /usr/local/bin/python ;
-#
-rule init ( version ? : cmd-or-prefix ? : includes * : libraries ?
+#
+rule init ( version ? : cmd-or-prefix ? : includes * : libraries ?
     : condition * : extension-suffix ? )
 {
     project.push-current $(.project) ;
@@ -108,7 +108,7 @@
             debug-message " user-specified "$(v): \"$($(v))\" ;
         }
     }
-
+
     configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) ;
 
     project.pop-current ;
@@ -617,7 +617,7 @@
             # For example, on my installation, adding -ldl causes at
             # least one test to fail because the library can't be
             # found and removing it causes no failures.
-
+
             # Apparently, though, we need to add -lrt for gcc.
             return <toolset>gcc:<library>rt ;
 
@@ -664,7 +664,7 @@
 }
 
 # implementation of init
-local rule configure (
+local rule configure (
   version ? : cmd-or-prefix ? : includes * : libraries ? : condition * : extension-suffix ? )
 {
     local prefix ;
@@ -675,13 +675,13 @@
     local target-os = [ feature.get-values target-os : $(condition) ] ;
     target-os ?= [ feature.defaults target-os ] ;
     target-os = $(target-os:G=) ;
-
- if $(target-os) = windows && <python-debugging>on in $(condition)
+
+ if $(target-os) = windows && <python-debugging>on in $(condition)
     {
         extension-suffix ?= _d ;
     }
     extension-suffix ?= "" ;
-
+
     # Normalize and dissect any version number
     local major-minor ;
     if $(version)
@@ -715,7 +715,7 @@
     # Values to use in case we can't really find anything in the system.
     local fallback-cmd = $(cmds-to-try[1]) ;
     local fallback-version ;
-
+
     # Anything left to find or check?
     if ! ( $(interpreter-cmd) && $(includes) && $(libraries) )
     {
@@ -734,7 +734,7 @@
             case windows : platform = win32 ;
             case cygwin : platform = cygwin ;
         }
-
+
         while $(cmds-to-try)
         {
             # pop top command
@@ -780,7 +780,7 @@
             }
         }
     }
-
+
     # Anything left to compute?
     if $(includes) && $(libraries)
     {
@@ -858,13 +858,13 @@
     }
 
     local dll-path = $(libraries) ;
-
+
     # Make sure that we can find the Python DLL on windows
     if $(target-os) = windows && $(exec-prefix)
     {
         dll-path += $(exec-prefix) ;
     }
-
+
     #
     # prepare usage requirements
     #
@@ -883,10 +883,15 @@
             usage-requirements += <define>Py_DEBUG ;
         }
     }
+
+ # Global, but conditional, requirements to give access to the interpreter
+ # for general utilities, like other toolsets, that run Python scripts.
+ toolset.add-requirements
+ $(target-requirements:J=,):<python.interpreter>$(interpreter-cmd) ;
 
- # Register the right suffix for extensions
+ # Register the right suffix for extensions.
     register-extension-suffix $(extension-suffix) : $(target-requirements) ;
-
+
     #
     # Declare the "python" target. This should really be called
     # python_for_embedding
@@ -911,7 +916,7 @@
         # (http://article.gmane.org/gmane.comp.python.general/544986). The
         # evil here, aside from the workaround necessitated by
         # Python's bug, is that:
- #
+ #
         # a. we're guessing the location of the python standard
         # library from the location of pythonXX.lib
         #
@@ -924,7 +929,7 @@
             set-PYTHONPATH =
               [ common.prepend-path-variable-command PYTHONPATH : $(libraries:D)/Lib ] ;
         }
-
+
         alias python
           :
           : $(target-requirements)
@@ -933,8 +938,8 @@
             # the system libs is a mystery, but if we don't do it, on
             # cygwin, -lpythonX.Y never appears in the command line
             # (although it does on linux).
- : $(usage-requirements)
- <testing.launcher>$(set-PYTHONPATH)
+ : $(usage-requirements)
+ <testing.launcher>$(set-PYTHONPATH)
               <library-path>$(libraries) <dll-path>$(dll-path) <library>python.lib
           ;
     }
@@ -987,12 +992,12 @@
 local rule register-extension-suffix ( root : condition * )
 {
     local suffix ;
-
+
     switch [ feature.get-values target-os : $(condition) ]
     {
       case windows : suffix = pyd ;
       case cygwin : suffix = dll ;
- case hpux :
+ case hpux :
       {
           if [ feature.get-values python : $(condition) ] in 1.5 1.6 2.0 2.1 2.2 2.3 2.4
           {
@@ -1005,7 +1010,7 @@
       }
       case * : suffix = so ;
     }
-
+
     type.set-generated-target-suffix PYTHON_EXTENSION : $(condition) : <$(root).$(suffix)> ;
 }
 
@@ -1023,23 +1028,23 @@
 
     local project = [ project.current ] ;
 
-
     targets.main-target-alternative
- [ new typed-target $(name) : $(project) : PYTHON_EXTENSION
- : [ targets.main-target-sources $(sources) : $(name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
- ] ;
+ [ new typed-target $(name) : $(project) : PYTHON_EXTENSION
+ : [ targets.main-target-sources $(sources) : $(name) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
+ ] ;
 }
 
 IMPORT python : python-extension : : python-extension ;
 
+
 # Support for testing
 type.register PY : py ;
 type.register RUN_PYD_OUTPUT ;
-#type.set-generated-target-suffix RUN_PYD : : run ;
 type.register RUN_PYD : : TEST ;
 
+
 class python-test-generator : generator
 {
     import set ;

Modified: branches/proto/v3/tools/build/v2/tools/qt4.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/qt4.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/qt4.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -492,17 +492,18 @@
         
         local r = [ virtual-target.register $(target) ] ;
  
- # Since this generator will return H target, the linking generator
- # won't use it at all, and won't set any dependency on it.
- # However, we need to target to be seen by bjam, so that dependency
- # from sources to this generated header is detected -- if jam does
- # not know about this target, it won't do anything.
+ # Since this generator will return a H target, the linking generator
+ # won't use it at all, and won't set any dependency on it. However, we
+ # need the target to be seen by bjam, so that dependency from sources to
+ # this generated header is detected -- if jam does not know about this
+ # target, it won't do anything.
         DEPENDS all : [ $(r).actualize ] ;
         
         return $(r) ;
     }
 }
 
+
 class moc-h-generator : generator
 {
     rule __init__ ( * : * )
@@ -525,17 +526,19 @@
             
             local r = [ virtual-target.register $(target) ] ;
             
- # Since this generator will return H target, the linking generator
- # won't use it at all, and won't set any dependency on it.
- # However, we need to target to be seen by bjam, so that dependency
- # from sources to this generated header is detected -- if jam does
- # not know about this target, it won't do anything.
+ # Since this generator will return a H target, the linking generator
+ # won't use it at all, and won't set any dependency on it. However,
+ # we need the target to be seen by bjam, so that dependency from
+ # sources to this generated header is detected -- if jam does not
+ # know about this target, it won't do anything.
             DEPENDS all : [ $(r).actualize ] ;
             
             return $(r) ;
         }
     }
 }
+
+
 class moc-inc-generator : generator
 {
     rule __init__ ( * : * )
@@ -556,11 +559,11 @@
             local target = [
               new file-target moc_$(name) : CPP : $(project) : $(a) ] ;
             
- # Since this generator will return H target, the linking generator
- # won't use it at all, and won't set any dependency on it.
- # However, we need to target to be seen by bjam, so that dependency
- # from sources to this generated header is detected -- if jam does
- # not know about this target, it won't do anything.
+ # Since this generator will return a H target, the linking generator
+ # won't use it at all, and won't set any dependency on it. However,
+ # we need the target to be seen by bjam, so that dependency from
+ # sources to this generated header is detected -- if jam does not
+ # know about this target, it won't do anything.
             DEPENDS all : [ $(target).actualize ] ;
             
             return [ virtual-target.register $(target) ] ;
@@ -568,18 +571,20 @@
     }
 }
 
-# Query the installation directory
-# This is needed in at least two scenarios
-# First, when re-using sources from the Qt-Tree.
-# Second, to "install" custom Qt plugins to the Qt-Tree.
+
+# Query the installation directory. This is needed in at least two scenarios.
+# First, when re-using sources from the Qt-Tree. Second, to "install" custom Qt
+# plugins to the Qt-Tree.
 rule directory
 {
     return $(.prefix) ;
 }
 
+
 # Get <include> and <defines> from current toolset
 flags qt4.moc INCLUDES <include> ;
-flags qt4.moc DEFINES <define> ;
+flags qt4.moc DEFINES <define> ;
+
 
 # Processes headers to create Qt MetaObject information
 # Qt4-moc has its c++-parser, so pass INCLUDES and DEFINES.
@@ -588,6 +593,7 @@
     $(.binprefix)/moc -I$(INCLUDES) -D$(DEFINES) -f $(>) -o $(<)
 }
 
+
 # When moccing files for include only, we don't need -f,
 # otherwise the generated code will include the .cpp
 # and we'll get duplicated symbols.
@@ -603,12 +609,14 @@
     $(.binprefix)/rcc $(>) -name $(>:B) -o $(<)
 }
 
+
 # Generates user-interface source from .ui files
 actions uic-h
 {
     $(.binprefix)/uic $(>) -o $(<)
 }
 
+
 # Scanner for .qrc files.
 # Look for the CDATA section of the <file> tag.
 # Ignore the "alias" attribute.

Modified: branches/proto/v3/tools/build/v2/tools/quickbook.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/quickbook.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/quickbook.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -253,7 +253,8 @@
     rule pattern ( )
     {
         return "\\[[ \t]*include[ \t]+([^]]+)\\]"
- "\\[[ \t]*include:[a-zA-Z0-9_]+[ \t]+([^]]+)\\]" ;
+ "\\[[ \t]*include:[a-zA-Z0-9_]+[ \t]+([^]]+)\\]"
+ "\\[[ \t]*import[ \t]+([^]]+)\\]" ;
     }
 }
 

Modified: branches/proto/v3/tools/build/v2/tools/stage.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/stage.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/stage.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,42 +1,50 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2005, 2006 Rene Rivera
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2005, 2006 Rene Rivera
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-# This module defines the 'install' rule, used to copy a set of targets to
-# a single location
+# This module defines the 'install' rule, used to copy a set of targets to a
+# single location
 
 import targets ;
 import "class" : new ;
-import property ;
-import errors : error ;
-import type : type ;
+import errors ;
 import type ;
-import regex ;
 import generators ;
 import feature ;
 import project ;
-import property-set ;
 import virtual-target ;
 import path ;
+import types/register ;
 
-feature.feature <install-dependencies> : off on : incidental ;
-feature.feature <install-type> : : free incidental ;
-feature.feature <install-source-root> : : free path ;
-# If 'on', version symblinks for shared libraries won't be created
-# This feature has effect only on Unix.
+
+feature.feature <install-dependencies> : off on : incidental ;
+feature.feature <install-type> : : free incidental ;
+feature.feature <install-source-root> : : free path ;
+feature.feature <so-version> : : free incidental ;
+
+# If 'on', version symlinks for shared libraries won't be created. Affects Unix
+# builds only.
 feature.feature <install-no-version-symlinks> : on : optional incidental ;
-feature.feature <so-version> : : free incidental ;
+
 
 class install-target-class : basic-target
 {
- import feature project type errors generators path stage ;
+ import feature ;
+ import project ;
+ import type ;
+ import errors ;
+ import generators ;
+ import path ;
+ import stage ;
     import "class" : new ;
-
+ import property ;
+ import property-set ;
+
     rule __init__ ( name-and-dir : project : sources * : requirements * : default-build * )
     {
- basic-target.__init__ $(name-and-dir) : $(project) : $(sources) : $(requirements)
+ basic-target.__init__ $(name-and-dir) : $(project) : $(sources) : $(requirements)
           : $(default-build) ;
     }
 
@@ -50,195 +58,192 @@
 
             property-set = [ $(property-set).add-raw $(loc:G=<location>) ] ;
         }
-
+
         return $(property-set) ;
     }
-
+
     # Takes a target that is installed and property set which is
     # used when installing.
     rule adjust-properties ( target : build-property-set )
     {
         local ps-raw ;
- local a = [ $(target).action ] ;
+ local a = [ $(target).action ] ;
         if $(a)
         {
             local ps = [ $(a).properties ] ;
             ps-raw = [ $(ps).raw ] ;
-
+
             # Unless <hardcode-dll-paths>true is in properties, which can
             # happen only if the user has explicitly requested it, nuke all
- # <dll-path> properties
+ # <dll-path> properties
             if [ $(property-set).get <hardcode-dll-paths> ] != true
             {
                 ps-raw = [ property.change $(ps-raw) : <dll-path> ] ;
             }
-
+
             # If any <dll-path> properties were specified for installing,
             # add them.
             local l = [ $(build-property-set).get <dll-path> ] ;
             ps-raw += $(l:G=<dll-path>) ;
-
+
             # Also copy <linkflags> feature from current build
             # set, to be used for relinking.
             local l = [ $(build-property-set).get <linkflags> ] ;
- ps-raw += $(l:G=<linkflags>) ;
+ ps-raw += $(l:G=<linkflags>) ;
         }
-
+
         # Remove the <tag> feature on original targets.
         ps-raw = [ property.change $(ps-raw) : <tag> ] ;
         # And <location>. If stage target has another stage target
         # in sources, then we'll get virtual targets with <location>
         # property set.
         ps-raw = [ property.change $(ps-raw) : <location> ] ;
-
-
+
+
         local d = [ $(build-property-set).get <dependency> ] ;
         ps-raw += $(d:G=<dependency>) ;
-
+
         local d = [ $(build-property-set).get <location> ] ;
         ps-raw += $(d:G=<location>) ;
-
+
         local ns = [ $(build-property-set).get <install-no-version-symlinks> ] ;
         ps-raw += $(ns:G=<install-no-version-symlinks>) ;
-
+
         local d = [ $(build-property-set).get <install-source-root> ] ;
         # Make the path absolute: we'll use it to compute relative
         # paths and making the path absolute will help.
         if $(d)
- {
+ {
             d = [ path.root $(d) [ path.pwd ] ] ;
             ps-raw += $(d:G=<install-source-root>) ;
- }
-
+ }
+
         if $(ps-raw)
         {
             return [ property-set.create $(ps-raw) ] ;
- }
+ }
         else
         {
             return [ property-set.empty ] ;
- }
+ }
     }
-
-
+
     rule construct ( name : source-targets * : property-set )
- {
- source-targets = [
+ {
+ source-targets = [
           targets-to-stage $(source-targets) : $(property-set) ] ;
-
- property-set = [ update-location $(property-set) ] ;
-
- local ename = [ $(property-set).get <name> ] ;
-
+
+ property-set = [ update-location $(property-set) ] ;
+
+ local ename = [ $(property-set).get <name> ] ;
+
         if $(ename) && $(source-targets[2])
         {
- errors.error
+ errors.error
               "When <name> property is used in 'install', only one source is allowed" ;
         }
-
-
+
         local result ;
         for local i in $(source-targets)
- {
+ {
             local staged-targets ;
-
- local new-properties =
+
+ local new-properties =
               [ adjust-properties $(i) : $(property-set) ] ;
-
+
             # See if something special should be done when staging this
- # type. It is indicated by presense of special "staged" type
- local t = [ $(i).type ] ;
+ # type. It is indicated by presense of special "staged" type
+ local t = [ $(i).type ] ;
             if $(t) && [ type.registered INSTALLED_$(t) ]
             {
                 if $(ename)
                 {
- error.error "In 'install': <name> property specified with target that requires relinking" ;
+ errors.error "In 'install': <name> property specified with target that requires relinking" ;
                 }
                 else
                 {
- local targets = [ generators.construct $(self.project) $(name) :
+ local targets = [ generators.construct $(self.project) $(name) :
                       INSTALLED_$(t) : $(new-properties) : $(i) ] ;
- staged-targets += $(targets[2-]) ;
- }
+ staged-targets += $(targets[2-]) ;
+ }
             }
- else
- {
+ else
+ {
                 staged-targets = [ stage.copy-file $(self.project) $(ename)
                   : $(i) : $(new-properties) ] ;
             }
-
+
             if ! $(staged-targets)
- {
+ {
                 errors.error "Unable to generate staged version of " [ $(source).str ] ;
- }
-
- for t in $(staged-targets)
+ }
+
+ for t in $(staged-targets)
             {
- result += [ virtual-target.register $(t) ] ;
- }
+ result += [ virtual-target.register $(t) ] ;
+ }
         }
-
+
         return [ property-set.empty ] $(result) ;
- }
-
+ }
 
     # Given the list of source targets explicitly passed to 'stage',
     # returns the list of targets which must be staged.
     rule targets-to-stage ( source-targets * : property-set )
- {
+ {
         local result ;
-
+
         # Traverse the dependencies, if needed.
         if [ $(property-set).get <install-dependencies> ] = "on"
         {
             source-targets = [ collect-targets $(source-targets) ] ;
         }
-
+
         # Filter the target types, if needed
- local included-types = [ $(property-set).get <install-type> ] ;
+ local included-types = [ $(property-set).get <install-type> ] ;
         for local r in $(source-targets)
         {
- local ty = [ $(r).type ] ;
+ local ty = [ $(r).type ] ;
             if $(ty)
             {
                 # Don't stage searched libs.
                 if $(ty) != SEARCHED_LIB
                 {
                     if $(included-types)
- {
+ {
                         if [ include-type $(ty) : $(included-types) ]
                         {
                             result += $(r) ;
- }
- }
+ }
+ }
                     else
                     {
- result += $(r) ;
- }
- }
+ result += $(r) ;
+ }
+ }
             }
             else if ! $(included-types)
             {
                 # Don't install typeless target if there's
                 # explicit list of allowed types.
                 result += $(r) ;
- }
+ }
         }
-
+
         return $(result) ;
     }
-
+
     # CONSIDER: figure out why we can't use virtual-target.traverse here.
     rule collect-targets ( targets * )
     {
         # Find subvariants
- local s ;
+ local s ;
         for local t in $(targets)
         {
             s += [ $(t).creating-subvariant ] ;
         }
         s = [ sequence.unique $(s) ] ;
-
+
         local result = $(targets) ;
         for local i in $(s)
         {
@@ -250,11 +255,11 @@
             if $(r:G) != <use>
             {
                 result2 += $(r:G=) ;
- }
- }
- result = [ sequence.unique $(result2) ] ;
+ }
+ }
+ result = [ sequence.unique $(result2) ] ;
     }
-
+
     # Returns true iff 'type' is subtype of some element of 'types-to-include'.
     local rule include-type ( type : types-to-include * )
     {
@@ -264,27 +269,27 @@
             if [ type.is-subtype $(type) $(types-to-include[1]) ]
             {
                 found = true ;
- }
+ }
             types-to-include = $(types-to-include[2-]) ;
         }
-
+
         return $(found) ;
- }
+ }
 }
 
-# Creates a copy of target 'source'. The 'properties' object should
-# have a <location> property which specifies where the target must
-# be placed.
+
+# Creates a copy of target 'source'. The 'properties' object should have a
+# <location> property which specifies where the target must be placed.
 rule copy-file ( project name ? : source : properties )
-{
+{
     local targets ;
     name ?= [ $(source).name ] ;
 
- new-a = [
- new non-scanning-action $(source) : common.copy : $(properties) ] ;
+ new-a = [
+ new non-scanning-action $(source) : common.copy : $(properties) ] ;
     local source-root = [ $(properties).get <install-source-root> ] ;
- if $(source-root)
- {
+ if $(source-root)
+ {
         # Get the real path of the target. We probably need to strip
         # relative path from the target name at construction...
         local path = [ $(source).path ] ;
@@ -293,8 +298,8 @@
         # path. The 'source-root' is already absolute, see the
         # 'adjust-properties' method above.
         path = [ path.root $(path) [ path.pwd ] ] ;
-
- relative = [ path.relative-to $(source-root) $(path) ] ;
+
+ relative = [ path.relative-to $(source-root) $(path) ] ;
         # Note: using $(name:D=$(relative)) might be faster
         # here, but then we need to explicitly check that
         # relative is not ".", otherwise we might get paths like
@@ -302,190 +307,200 @@
         # <prefix>/boost/.
         #
         # try to create it, and mkdir will obviously fail.
- name = [ path.root $(name:D=) $(relative) ] ;
- targets = [ new file-target $(name) exact : [ $(source).type ]
+ name = [ path.root $(name:D=) $(relative) ] ;
+ targets = [ new file-target $(name) exact : [ $(source).type ]
           : $(project) : $(new-a) ] ;
-
- }
+ }
     else
     {
- targets = [ new file-target $(name:D=) exact : [ $(source).type ]
+ targets = [ new file-target $(name:D=) exact : [ $(source).type ]
           : $(project) : $(new-a) ] ;
     }
-
+
     return $(targets) ;
 }
 
+
 rule symlink ( name : project : source : properties )
 {
     local a = [ new action $(source) : symlink.ln :
       $(properties) ] ;
- local targets = [
+ local targets = [
      new file-target $(name) exact : [ $(source).type ] : $(project) : $(a) ] ;
-
+
     return $(targets) ;
 }
 
-rule relink-file ( project : source : property-set )
-{
+
+rule relink-file ( project : source : property-set )
+{
     local action = [ $(source).action ] ;
     local cloned-action = [ virtual-target.clone-action $(action) : $(project) :
       "" : $(property-set) ] ;
- local result = [ $(cloned-action).targets ] ;
-
+ local result = [ $(cloned-action).targets ] ;
+
     return $(result) ;
 }
 
-# Declare installed version of the EXE type. Generator for this type will
-# cause relinking to the new location.
+
+# Declare installed version of the EXE type. Generator for this type will cause
+# relinking to the new location.
 type.register INSTALLED_EXE : : EXE ;
 
 class installed-exe-generator : generator
 {
- import type property-set modules stage ;
-
+ import type ;
+ import property-set ;
+ import modules ;
+ import stage ;
+
     rule __init__ ( )
     {
         generator.__init__ install-exe : EXE : INSTALLED_EXE ;
     }
-
+
     rule run ( project name ? : property-set : source : multiple ? )
     {
- if [ $(property-set).get <os> ] in NT CYGWIN
+ if [ $(property-set).get <os> ] in NT CYGWIN ||
+ [ $(property-set).get <target-os> ] in windows cygwin
         {
             # Relinking is never needed on NT
- return [ stage.copy-file $(project)
- : $(source) : $(property-set) ] ;
+ return [ stage.copy-file $(project)
+ : $(source) : $(property-set) ] ;
         }
- else
+ else
         {
- return [ stage.relink-file $(project)
- : $(source) : $(property-set) ] ;
- }
- }
+ return [ stage.relink-file $(project)
+ : $(source) : $(property-set) ] ;
+ }
+ }
 }
 
 generators.register [ new installed-exe-generator ] ;
 
 
-# Installing shared link on Unix might cause a creation of
-# versioned symbolic links.
+# Installing a shared link on Unix might cause a creation of versioned symbolic
+# links.
 type.register INSTALLED_SHARED_LIB : : SHARED_LIB ;
+
 class installed-shared-lib-generator : generator
 {
- import type property-set modules stage ;
-
+ import type ;
+ import property-set ;
+ import modules ;
+ import stage ;
+
     rule __init__ ( )
     {
         generator.__init__ install-shared-lib : SHARED_LIB
           : INSTALLED_SHARED_LIB ;
     }
-
+
     rule run ( project name ? : property-set : source : multiple ? )
- {
- if [ $(property-set).get <os> ] = NT
+ {
+ if [ $(property-set).get <os> ] in NT CYGWIN ||
+ [ $(property-set).get <target-os> ] in windows cygwin
         {
- local copied = [ stage.copy-file $(project)
- : $(source) : $(property-set) ] ;
-
+ local copied = [ stage.copy-file $(project)
+ : $(source) : $(property-set) ] ;
+
             copied = [ virtual-target.register $(copied) ] ;
-
+
             return $(copied) ;
         }
- else
+ else
         {
- local a = [ $(source).action ] ;
+ local a = [ $(source).action ] ;
             local copied ;
             if ! $(a)
             {
                 # Non-derived file, just copy.
- copied = [ stage.copy-file $(project)
- : $(source) : $(property-set) ] ;
+ copied = [ stage.copy-file $(project)
+ : $(source) : $(property-set) ] ;
             }
             else
- {
+ {
                 local cp = [ $(a).properties ] ;
                 local current-dll-path = [ $(cp).get <dll-path> ] ;
                 local new-dll-path = [ $(property-set).get <dll-path> ] ;
-
+
                 if $(current-dll-path) != $(new-dll-path)
                 {
                     # Rpath changed, need to relink.
- copied = [ stage.relink-file
+ copied = [ stage.relink-file
                         $(project) : $(source) : $(property-set) ] ;
                 }
                 else
- {
- copied = [ stage.copy-file $(project)
- : $(source) : $(property-set) ] ;
+ {
+ copied = [ stage.copy-file $(project)
+ : $(source) : $(property-set) ] ;
                 }
             }
-
+
             copied = [ virtual-target.register $(copied) ] ;
-
+
             local result = $(copied) ;
             # If the name is in the form NNN.XXX.YYY.ZZZ, where all
             # 'X', 'Y' and 'Z' are numbers, we need to create
             # NNN.XXX and NNN.XXX.YYY symbolic links.
- local m = [ MATCH (.*)\\.([0123456789]+)\\.([0123456789]+)\\.([0123456789]+)$
+ local m = [ MATCH (.*)\\.([0123456789]+)\\.([0123456789]+)\\.([0123456789]+)$
               : [ $(copied).name ] ] ;
             if $(m)
             {
                 # Symlink without version at all is used to make
                 # -lsome_library work.
                 result += [ stage.symlink $(m[1]) : $(project)
- : $(copied) : $(property-set) ] ;
-
+ : $(copied) : $(property-set) ] ;
+
                 # Symlinks of some libfoo.N and libfoo.N.M are used
                 # so that library can found at runtime, if libfoo.N.M.X
                 # has soname of libfoo.N. That happens when the library
                 # makes some binary compatibility guarantees. If not,
                 # it's possible to skip those symlinks.
- local suppress =
+ local suppress =
                   [ $(property-set).get <install-no-version-symlinks> ] ;
-
+
                 if $(suppress) != "on"
- {
+ {
                     result += [ stage.symlink $(m[1]).$(m[2]) : $(project)
                       : $(copied) : $(property-set) ] ;
                     result += [ stage.symlink $(m[1]).$(m[2]).$(m[3]) : $(project)
                       : $(copied) : $(property-set) ] ;
- }
+ }
             }
-
+
             return $(result) ;
- }
- }
+ }
+ }
 }
 
 generators.register [ new installed-shared-lib-generator ] ;
 
 
-
-# Main target rule for 'install'
+# Main target rule for 'install'.
 rule install ( name : sources * : requirements * : default-build * )
 {
     local project = [ project.current ] ;
-
+
     # Unless the user has explicitly asked us to hardcode dll paths, add
     # <hardcode-dll-paths>false in requirements, to override default
     # value.
     if ! <hardcode-dll-paths>true in $(requirements)
     {
         requirements += <hardcode-dll-paths>false ;
- }
-
+ }
+
     if <tag> in $(requirements:G)
     {
- errors.user-error
+ errors.user-error
           "The <tag> property is not allowed for the 'install' rule" ;
     }
-
+
     targets.main-target-alternative
- [ new install-target-class $(name) : $(project)
+ [ new install-target-class $(name) : $(project)
         : [ targets.main-target-sources $(sources) : $(name) ]
- : [ targets.main-target-requirements $(requirements) : $(project) ]
- : [ targets.main-target-default-build $(default-build) : $(project) ]
+ : [ targets.main-target-requirements $(requirements) : $(project) ]
+ : [ targets.main-target-default-build $(default-build) : $(project) ]
       ] ;
 }
 

Modified: branches/proto/v3/tools/build/v2/tools/testing.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/testing.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/testing.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,36 +1,36 @@
-# Copyright 2005 Dave Abrahams
-# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2005 Dave Abrahams
+# Copyright 2002, 2003, 2004, 2005, 2006 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
-# This module implements regression testing framework. It declares a number of
-# main target rules, which perform some action, and if the results are ok,
+# This module implements regression testing framework. It declares a number of
+# main target rules which perform some action and, if the results are ok,
 # creates an output file.
-#
+#
 # The exact list of rules is:
-# 'compile' -- creates .test file if compilation of sources was successfull
-# 'compile-fail' -- creates .test file if compilation of sources failed
+# 'compile' -- creates .test file if compilation of sources was
+# successful.
+# 'compile-fail' -- creates .test file if compilation of sources failed.
 # 'run' -- creates .test file is running of executable produced from
-# sources was successfull. Also leaves behing .output file
+# sources was successful. Also leaves behind .output file
 # with the output from program run.
 # 'run-fail' -- same as above, but .test file is created if running fails.
 #
-# In all cases, presense of .test file is an incication that
-# the test passed. For more convenient reporting, you might want to use C++ Boost
-# regression testing utilities, see
-# http://www.boost.org/more/regression.html
+# In all cases, presence of .test file is an indication that the test passed.
+# For more convenient reporting, you might want to use C++ Boost regression
+# testing utilities, see http://www.boost.org/more/regression.html
 #
-# For historical reason, a 'unit-test' rule is available which
-# has the same syntax as 'exe' and behaves just like 'run'.
+# For historical reason, a 'unit-test' rule is available which has the same
+# syntax as 'exe' and behaves just like 'run'.
 
 # Things to do:
 # - Teach compiler_status handle Jamfile.v2.
 # Notes:
-# - <no-warn> is not implemented, since in Como-specific, and it's not clear how
-# to implement it
-# - std::locale-support is not impelemted (it's used in one test).
+# - <no-warn> is not implemented, since in Como-specific, and it's not clear
+# how to implement it
+# - std::locale-support is not implemented (it's used in one test).
+
 
-
 import targets ;
 import "class" : new ;
 import property ;
@@ -48,77 +48,83 @@
 import sequence ;
 import errors ;
 
-rule init ( ) { }
 
-# The feature which controls the name of program used to
-# lanch test programs.
-feature.feature testing.launcher : : optional free ;
-feature.feature test-info : : free incidental ;
-feature.feature testing.arg : : free incidental ;
+rule init ( )
+{
+}
+
+
+# Feature controling the command used to lanch test programs.
+feature.feature testing.launcher : : free optional ;
+
+feature.feature test-info : : free incidental ;
+feature.feature testing.arg : : free incidental ;
 feature.feature testing.input-file : : free dependency ;
 
+
 # Register target types.
-type.register TEST : test ;
-type.register COMPILE : : TEST ;
-type.register COMPILE_FAIL : : TEST ;
-type.register RUN_OUTPUT : run ;
-type.register RUN : : TEST ;
-type.register RUN_FAIL : : TEST ;
-type.register LINK_FAIL : : TEST ;
-type.register LINK : : TEST ;
-type.register UNIT_TEST : passed : TEST ;
-
-# Declare the rules which create main targets.
-# While the 'type' module already creates rules with the same names for us,
-# we need extra convenience: default name of main target, so write
-# our own versions.
-
-# Helper rule. Create a test target, using basename of first source if no
-# target name is explicitly passed. Remembers the created target in
-# a global variable.
+type.register TEST : test ;
+type.register COMPILE : : TEST ;
+type.register COMPILE_FAIL : : TEST ;
+type.register RUN_OUTPUT : run ;
+type.register RUN : : TEST ;
+type.register RUN_FAIL : : TEST ;
+type.register LINK_FAIL : : TEST ;
+type.register LINK : : TEST ;
+type.register UNIT_TEST : passed : TEST ;
+
+
+# Declare the rules which create main targets. While the 'type' module already
+# creates rules with the same names for us, we need extra convenience: default
+# name of main target, so write our own versions.
+
+# Helper rule. Create a test target, using basename of first source if no target
+# name is explicitly passed. Remembers the created target in a global variable.
 rule make-test ( target-type : sources + : requirements * : target-name ? )
 {
     target-name ?= $(sources[1]:D=:S=) ;
 
     local project = [ project.current ] ;
- # The <location-prefix> forces the build system for generate paths in the form
- # $build_dir/array1.test/gcc/debug
- # This is necessary to allow post-processing tools to work.
- local t =
- [ targets.create-typed-target
+ # The <location-prefix> forces the build system for generate paths in the
+ # form '$build_dir/array1.test/gcc/debug'. This is necessary to allow
+ # post-processing tools to work.
+ local t =
+ [ targets.create-typed-target
           [ type.type-from-rule-name $(target-type) ] : $(project)
- : $(target-name) : $(sources)
+ : $(target-name) : $(sources)
             : $(requirements) <location-prefix>$(target-name).test ] ;
-
- # Remember the test (for --dump-test).
- # A good way would be to collect all given a project.
- # This has some technical problems: e.g. we can't call this dump from
- # Jamfile since projects referred by 'build-project' are not available until
- # whole Jamfile is loaded.
+
+ # Remember the test (for --dump-tests). A good way would be to collect all
+ # given a project. This has some technical problems: e.g. we can't call this
+ # dump from Jamfile since projects referred by 'build-project' are not
+ # available until the whole Jamfile is loaded.
     .all-tests += $(t) ;
- return $(t) ;
+ return $(t) ;
 }
 
-# Note: passing more that one cpp file here is know to
-# fail. Passing a cpp file and a library target works.
+
+# Note: passing more that one cpp file here is known to fail. Passing a cpp file
+# and a library target works.
 rule compile ( sources + : requirements * : target-name ? )
-{
+{
     return [ make-test compile : $(sources) : $(requirements) : $(target-name) ] ;
 }
 
+
 rule compile-fail ( sources + : requirements * : target-name ? )
-{
+{
     return [ make-test compile-fail : $(sources) : $(requirements) : $(target-name) ] ;
 }
 
+
 rule link ( sources + : requirements * : target-name ? )
-{
+{
     return [ make-test link : $(sources) : $(requirements) : $(target-name) ] ;
 }
 
 
 rule link-fail ( sources + : requirements * : target-name ? )
-{
+{
     return [ make-test link-fail : $(sources) : $(requirements) : $(target-name) ] ;
 }
 
@@ -127,56 +133,55 @@
 {
     if $(input-files[2])
     {
- # Check that sorting made when creating property-set instance
- # won't change the ordering.
+ # Check that sorting made when creating property-set instance won't
+ # change the ordering.
         if [ sequence.insertion-sort $(input-files) ] != $(input-files)
         {
             errors.user-error "Names of input files must be sorted alphabetically"
- : "due to internal limitations" ;
- }
+ : "due to internal limitations" ;
+ }
     }
     return <testing.input-file>$(input-files) ;
 }
 
 
-rule run ( sources + : args * : input-files * : requirements * : target-name ?
+rule run ( sources + : args * : input-files * : requirements * : target-name ?
     : default-build * )
-{
+{
     requirements += <testing.arg>$(args:J=" ") ;
     requirements += [ handle-input-files $(input-files) ] ;
     return [ make-test run : $(sources) : $(requirements) : $(target-name) ] ;
 }
 
-rule run-fail ( sources + : args * : input-files * : requirements * : target-name ?
- : default-build * )
-{
- requirements += <testing.arg>$(args:J=" ") ;
+
+rule run-fail ( sources + : args * : input-files * : requirements *
+ : target-name ? : default-build * )
+{
+ requirements += <testing.arg>$(args:J=" ") ;
     requirements += [ handle-input-files $(input-files) ] ;
     return [ make-test run-fail : $(sources) : $(requirements) : $(target-name) ] ;
 }
 
-
-# Use 'test-suite' as synonym for 'alias', for backward compatibility.
+# Use 'test-suite' as a synonym for 'alias', for backward compatibility.
 IMPORT : alias : : test-suite ;
 
 
-
-# For all main target in 'project-module',
-# which are typed target with type derived from 'TEST',
-# produce some interesting information.
+# For all main targets in 'project-module', which are typed targets with type
+# derived from 'TEST', produce some interesting information.
 rule dump-tests # ( project-module )
 {
     for local t in $(.all-tests)
     {
         dump-test $(t) ;
- }
+ }
 }
 
-# Given a project location, compute the name of Boost library
+
+# Given a project location in normalized form (slashes are forward), compute the
+# name of the Boost library.
 local rule get-library-name ( path )
 {
     # Path is in normalized form, so all slashes are forward.
-
     local match1 = [ MATCH /libs/(.*)/(test|example) : $(path) ] ;
     local match2 = [ MATCH /libs/(.*)$ : $(path) ] ;
     local match3 = [ MATCH (/status$) : $(path) ] ;
@@ -184,19 +189,20 @@
     if $(match1) { return $(match1[0]) ; }
     else if $(match2) { return $(match2[0]) ; }
     else if $(match3) { return "" ; }
- else if --dump-tests in [ modules.peek : ARGV ]
- {
- # The 'run' rule and others might be used outside
- # boost. In that case, just return the path,
- # since the 'library name' makes no sense.
+ else if --dump-tests in [ modules.peek : ARGV ]
+ {
+ # The 'run' rule and others might be used outside boost. In that case,
+ # just return the path, since the 'library name' makes no sense.
         return $(path) ;
     }
 }
 
+
 # Was an XML dump requested?
 .out-xml = [ MATCH --out-xml=(.*) : [ modules.peek : ARGV ] ] ;
 
-# Take a target (instance of 'basic-target') and prints
+
+# Takes a target (instance of 'basic-target') and prints
 # - its type
 # - its name
 # - comments specified via the <test-info> property
@@ -206,44 +212,44 @@
     local type = [ $(target).type ] ;
     local name = [ $(target).name ] ;
     local project = [ $(target).project ] ;
-
+
     local project-root = [ $(project).get project-root ] ;
- local library = [ get-library-name
+ local library = [ get-library-name
         [ path.root [ $(project).get location ] [ path.pwd ] ] ] ;
     if $(library)
     {
         name = $(library)/$(name) ;
     }
-
+
     local sources = [ $(target).sources ] ;
     local source-files ;
     for local s in $(sources)
     {
- if [ class.is-a $(s) : file-reference ]
+ if [ class.is-a $(s) : file-reference ]
         {
- local location =
- [ path.root
+ local location =
+ [ path.root
                   [ path.root [ $(s).name ] [ $(s).location ] ]
- [ path.pwd ] ] ;
-
- source-files +=
- [ path.relative
+ [ path.pwd ] ] ;
+
+ source-files +=
+ [ path.relative
                   $(location)
                   [ path.root $(project-root) [ path.pwd ] ] ] ;
- }
+ }
     }
-
+
     local r = [ $(target).requirements ] ;
- # Extract values of the <test-info> feature
+ # Extract values of the <test-info> feature.
     local test-info = [ $(r).get <test-info> ] ;
-
- # If the user requested XML output on the command-line, add the
- # test info to that XML file rather than dumping them to stdout.
+
+ # If the user requested XML output on the command-line, add the test info to
+ # that XML file rather than dumping them to stdout.
     if $(.out-xml)
     {
         local nl = "
 " ;
- .contents on $(.out-xml) +=
+ .contents on $(.out-xml) +=
             "$(nl) <test type=\"$(type)\" name=\"$(name)\">"
             "$(nl) <info><![CDATA[$(test-info)]]></info>"
             "$(nl) <source><![CDATA[$(source-files)]]></source>"
@@ -252,123 +258,123 @@
     }
     else
     {
- # Format them into a single string of quoted strings
+ # Format them into a single string of quoted strings.
         test-info = \"$(test-info:J=\"\ \")\" ;
-
- ECHO boost-test($(type)) \"$(name)\"
- [$(test-info)]
- ":" \"$(source-files)\"
- ;
+
+ ECHO boost-test($(type)) \"$(name)\"
+ [$(test-info)]
+ ":" \"$(source-files)\" ;
     }
 }
 
-# Register generators. Depending on target type, either
-# 'expect-success' or 'expect-failure' rule will be used.
-generators.register-standard testing.expect-success : OBJ : COMPILE ;
-generators.register-standard testing.expect-failure : OBJ : COMPILE_FAIL ;
-generators.register-standard testing.expect-success : RUN_OUTPUT : RUN ;
-generators.register-standard testing.expect-failure : RUN_OUTPUT : RUN_FAIL ;
-generators.register-standard testing.expect-failure : EXE : LINK_FAIL ;
-generators.register-standard testing.expect-success : EXE : LINK ;
+
+# Register generators. Depending on target type, either 'expect-success' or
+# 'expect-failure' rule will be used.
+generators.register-standard testing.expect-success : OBJ : COMPILE ;
+generators.register-standard testing.expect-failure : OBJ : COMPILE_FAIL ;
+generators.register-standard testing.expect-success : RUN_OUTPUT : RUN ;
+generators.register-standard testing.expect-failure : RUN_OUTPUT : RUN_FAIL ;
+generators.register-standard testing.expect-failure : EXE : LINK_FAIL ;
+generators.register-standard testing.expect-success : EXE : LINK ;
 
 # Generator which runs an EXE and captures output.
 generators.register-standard testing.capture-output : EXE : RUN_OUTPUT ;
 
-# Generator which creates target if sources runs successfully.
-# Differers from RUN in that run output is not captured.
-# The reason why it exists is that the 'run' rule is much better for
-# automated testing, but is not user-friendly. See
+# Generator which creates a target if sources runs successfully. Differs from
+# RUN in that run output is not captured. The reason why it exists is that the
+# 'run' rule is much better for automated testing, but is not user-friendly. See
 # http://article.gmane.org/gmane.comp.lib.boost.build/6353/
 generators.register-standard testing.unit-test : EXE : UNIT_TEST ;
 
 
 # The action rules called by generators.
 
-# Causes the 'target' to exist after bjam invocation if and only if all the
+# Causes the 'target' to exist after bjam invocation if and only if all the
 # dependencies were successfully built.
 rule expect-success ( target : dependency + : requirements * )
 {
- **passed** $(target) : $(sources) ;
+ **passed** $(target) : $(sources) ;
 }
 
-# Causes the 'target' to exist after bjam invocation if and only if all some
-# of the dependencies were not successfully built.
+# Causes the 'target' to exist after bjam invocation if and only if all some of
+# the dependencies were not successfully built.
 rule expect-failure ( target : dependency + : properties * )
 {
     local grist = [ MATCH ^<(.*)> : $(dependency:G) ] ;
     local marker = $(dependency:G=$(grist)*fail) ;
     (failed-as-expected) $(marker) ;
- FAIL_EXPECTED $(dependency) ;
+ FAIL_EXPECTED $(dependency) ;
     LOCATE on $(marker) = [ on $(dependency) return $(LOCATE) ] ;
     RMOLD $(marker) ;
     DEPENDS $(marker) : $(dependency) ;
-
     DEPENDS $(target) : $(marker) ;
     **passed** $(target) : $(marker) ;
 }
 
-# The rule/action combination used to report successfull passing
-# of a test.
+
+# The rule/action combination used to report successfull passing of a test.
 rule **passed**
 {
- # Dump all the tests, if needed.
- # We do it here, since dump should happen after all Jamfiles are read,
- # and there's no such place currently defined (but should).
- if ! $(.dumped-tests) && --dump-tests in [ modules.peek : ARGV ]
+ # Dump all the tests, if needed. We do it here, since dump should happen
+ # only after all Jamfiles have been read, and there's no such place
+ # currently defined (but there should be).
+ if ! $(.dumped-tests) && --dump-tests in [ modules.peek : ARGV ]
     {
         .dumped-tests = true ;
         dump-tests ;
     }
-
- # Force deletion of the target, in case any dependencies failed
- # to build.
+
+ # Force deletion of the target, in case any dependencies failed to build.
     RMOLD $(<) ;
 }
 
+
 actions **passed**
 {
     echo passed > $(<)
 }
 
+
 actions (failed-as-expected)
 {
     echo failed as expected > $(<)
 }
 
+
 rule run-path-setup ( target : source : properties * )
 {
- # For testing, we need to make sure that all dynamic libraries needed by
- # the test are found. So, we collect all paths from dependency libraries
- # (via xdll-path property) and add whatever explicit dll-path user has
- # specified. The resulting paths are added to environment on each test
- # invocation.
+ # For testing, we need to make sure that all dynamic libraries needed by the
+ # test are found. So, we collect all paths from dependency libraries (via
+ # xdll-path property) and add whatever explicit dll-path user has specified.
+ # The resulting paths are added to the environment on each test invocation.
     local dll-paths = [ feature.get-values <dll-path> : $(properties) ] ;
     dll-paths += [ feature.get-values <xdll-path> : $(properties) ] ;
     dll-paths += [ on $(source) return $(RUN_PATH) ] ;
     dll-paths = [ sequence.unique $(dll-paths) ] ;
     if $(dll-paths)
- {
+ {
         dll-paths = [ sequence.transform path.native : $(dll-paths) ] ;
-
- PATH_SETUP on $(target) =
- [ common.prepend-path-variable-command
- [ os.shared-library-path-variable ] : $(dll-paths) ] ;
- }
+ PATH_SETUP on $(target) = [ common.prepend-path-variable-command
+ [ os.shared-library-path-variable ] : $(dll-paths) ] ;
+ }
 }
 
+
 local argv = [ modules.peek : ARGV ] ;
 if --preserve-test-targets in $(argv)
 {
     preserve-test-targets = true ;
 }
 
+
 toolset.flags testing.capture-output ARGS <testing.arg> ;
 toolset.flags testing.capture-output INPUT_FILES <testing.input-file> ;
 toolset.flags testing.capture-output LAUNCHER <testing.launcher> ;
 
-# Runs executable 'sources' and stores stdout in file 'target'.
-# If --preserve-test-targets command line option, removes the executable.
-# The 'target-to-remove' parameter controls what should be removed:
+
+# Runs executable 'sources' and stores stdout in file 'target'. Unless
+# --preserve-test-targets command line option has been specified, removes the
+# executable. The 'target-to-remove' parameter controls what should be removed:
 # - if 'none', does not remove anything, ever
 # - if empty, removes 'source'
 # - if non-empty and not 'none', contains a list of sources to remove.
@@ -376,19 +382,20 @@
 {
     output-file on $(target) = $(target:S=.output) ;
     LOCATE on $(target:S=.output) = [ on $(target) return $(LOCATE) ] ;
-
+
     # The INCLUDES kill a warning about independent target...
     INCLUDES $(target) : $(target:S=.output) ;
- # but it also puts .output into dependency graph, so we must tell jam
- # it's OK if it cannot find the target or updating rule.
- NOCARE $(target:S=.output) ;
-
+ # but it also puts .output into dependency graph, so we must tell jam it's
+ # OK if it cannot find the target or updating rule.
+ NOCARE $(target:S=.output) ;
+
     # This has two-fold effect. First it adds input files to the dependendency
     # graph, preventing a warning. Second, it causes input files to be bound
- # before target is created. Therefore, they are bound using SEARCH setting
- # on them and not LOCATE setting of $(target), as in other case (due to jam bug).
+ # before target is created. Therefore, they are bound using SEARCH setting
+ # on them and not LOCATE setting of $(target), as in other case (due to jam
+ # bug).
     DEPENDS $(target) : [ on $(target) return $(INPUT_FILES) ] ;
-
+
     if $(targets-to-remove) = none
     {
         targets-to-remove = ;
@@ -397,23 +404,19 @@
     {
         targets-to-remove = $(source) ;
     }
-
+
     run-path-setup $(target) : $(source) : $(properties) ;
-
+
     if ! $(preserve-test-targets)
     {
         TEMPORARY $(targets-to-remove) ;
- # Set a second action on target that will
- # be executed after capture output action.
- # The 'RmTemps' rule has the 'ignore' modifier
- # so it's always considered succeeded.
- # This is needed for 'run-fail' test. For that
- # test the target will be marked with FAIL_EXPECTED,
- # and without 'ingore' successfull execution
- # will be negated and be reported as failure.
- # With 'ignore' we don't detect a case where
- # removing files, but it's not likely to
- # happen.
+ # Set a second action on target that will be executed after capture
+ # output action. The 'RmTemps' rule has the 'ignore' modifier so it's
+ # always considered succeeded. This is needed for 'run-fail' test. For
+ # that test the target will be marked with FAIL_EXPECTED, and without
+ # 'ignore' successful execution will be negated and be reported as
+ # failure. With 'ignore' we don't detect a case where removing files
+ # fails, but it's not likely to happen.
         RmTemps $(target) : $(targets-to-remove) ;
     }
 }
@@ -421,34 +424,32 @@
 
 if [ os.name ] = NT
 {
- STATUS = %status% ;
- SET_STATUS = "set status=%ERRORLEVEL%" ;
+ STATUS = %status% ;
+ SET_STATUS = "set status=%ERRORLEVEL%" ;
     RUN_OUTPUT_NL = "echo." ;
- STATUS_0 = "%status% EQU 0 (" ;
- STATUS_NOT_0 = "%status% NEQ 0 (" ;
- VERBOSE = "%verbose% EQU 1 (" ;
- ENDIF = ")" ;
- SHELL_SET = "set " ;
-
- CATENATE = type ;
- CP = copy ;
+ STATUS_0 = "%status% EQU 0 (" ;
+ STATUS_NOT_0 = "%status% NEQ 0 (" ;
+ VERBOSE = "%verbose% EQU 1 (" ;
+ ENDIF = ")" ;
+ SHELL_SET = "set " ;
+ CATENATE = type ;
+ CP = copy ;
 }
 else
 {
- STATUS = "$status" ;
- SET_STATUS = "status=$?" ;
+ STATUS = "$status" ;
+ SET_STATUS = "status=$?" ;
     RUN_OUTPUT_NL = "echo" ;
- STATUS_0 = "test $status -eq 0 ; then" ;
- STATUS_NOT_0 = "test $status -ne 0 ; then" ;
- VERBOSE = "test $verbose -eq 1 ; then" ;
- ENDIF = "fi" ;
- SHELL_SET = "" ;
-
- CATENATE = cat ;
- CP = cp ;
+ STATUS_0 = "test $status -eq 0 ; then" ;
+ STATUS_NOT_0 = "test $status -ne 0 ; then" ;
+ VERBOSE = "test $verbose -eq 1 ; then" ;
+ ENDIF = "fi" ;
+ SHELL_SET = "" ;
+ CATENATE = cat ;
+ CP = cp ;
 }
 
-if --verbose-test in [ modules.peek : ARGV ]
+if --verbose-test in [ modules.peek : ARGV ]
 {
     VERBOSE_TEST = 1 ;
 }
@@ -460,10 +461,11 @@
 
 RM = [ common.rm-command ] ;
 
+
 actions capture-output bind INPUT_FILES output-file
 {
     $(PATH_SETUP)
- $(LAUNCHER) "$(>)" $(ARGS) "$(INPUT_FILES)" > "$(output-file)" 2>&1
+ $(LAUNCHER) "$(>)" $(ARGS) "$(INPUT_FILES)" > "$(output-file)" 2>&1
     $(SET_STATUS)
     $(RUN_OUTPUT_NL) >> "$(output-file)"
     echo EXIT STATUS: $(STATUS) >> "$(output-file)"
@@ -478,15 +480,17 @@
         echo ====== BEGIN OUTPUT ======
         $(CATENATE) "$(output-file)"
         echo ====== END OUTPUT ======
- $(ENDIF)
- exit $(STATUS)
+ $(ENDIF)
+ exit $(STATUS)
 }
 
+
 actions quietly updated ignore piecemeal together RmTemps
 {
     $(RM) "$(>)"
 }
 
+
 MAKE_FILE = [ common.file-creation-command ] ;
 
 toolset.flags testing.unit-test LAUNCHER <testing.launcher> ;
@@ -496,19 +500,21 @@
     run-path-setup $(target) : $(source) : $(properties) ;
 }
 
-actions unit-test
+
+actions unit-test
 {
     $(PATH_SETUP)
     $(LAUNCHER) $(>) $(ARGS) && $(MAKE_FILE) $(<)
 }
 
-IMPORT $(__name__) : compile compile-fail run run-fail link link-fail
- : : compile compile-fail run run-fail link link-fail ;
+IMPORT $(__name__) : compile compile-fail run run-fail link link-fail
+ : : compile compile-fail run run-fail link link-fail ;
 
 
 type.register TIME : time ;
 generators.register-standard testing.time : : TIME ;
 
+
 rule record-time ( target : source : start end user system )
 {
     local src-string = [$(source:G=:J=",")"] " ;
@@ -517,21 +523,24 @@
 }
 
 IMPORT testing : record-time : : testing.record-time ;
+
+
 rule time ( target : source : properties * )
 {
- # Set up rule for recording timing information
+ # Set up rule for recording timing information.
     __TIMING_RULE__ on $(source) = testing.record-time $(target) ;
-
- # Make sure that the source is rebuilt any time we need to
- # retrieve that information
+
+ # Make sure that the source is rebuilt any time we need to retrieve that
+ # information.
     REBUILDS $(target) : $(source) ;
 }
 
+
 actions time
 {
     echo user: $(USER_TIME)
     echo system: $(SYSTEM_TIME)
-
+
     echo user: $(USER_TIME)" seconds" > $(<)
     echo system: $(SYSTEM_TIME)" seconds" > $(<)
 }

Modified: branches/proto/v3/tools/build/v2/util/doc.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/util/doc.jam (original)
+++ branches/proto/v3/tools/build/v2/util/doc.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,13 +1,13 @@
-# Copyright 2002, 2005 Dave Abrahams
-# Copyright 2002, 2003, 2006 Rene Rivera
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2002, 2005 Dave Abrahams
+# Copyright 2002, 2003, 2006 Rene Rivera
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 # Documentation system, handles --help requests.
 # It defines rules that attach documentation to modules, rules, and variables.
-# Collects and generates documentation for the various parts of the build system.
-# The documentation is collected from comments integrated into the code.
+# Collects and generates documentation for the various parts of the build
+# system. The documentation is collected from comments integrated into the code.
 
 import modules ;
 import print ;
@@ -235,17 +235,17 @@
 # Generates a general description of the documentation and help system.
 #
 local rule print-help-top ( )
-{
+{
     print.section "General command line usage" ;
 
     print.text " bjam [options] [properties] [targets]
-
+
   Options, properties and targets can be specified in any order.
       " ;
-
- print.section "Important Options" ;
-
- print.list-start ;
+
+ print.section "Important Options" ;
+
+ print.list-start ;
     print.list-item "--clean Remove targets instead of building" ;
     print.list-item "-a Rebuild everything" ;
     print.list-item "-n Don't execute the commands, only print them" ;
@@ -256,11 +256,11 @@
     print.list-item "--debug-building Report which targets are built with what properties" ;
     print.list-item "--debug-generator Diagnose generator search/execution" ;
     print.list-end ;
-
+
     print.section "Further Help"
         The following options can be used to obtain additional documentation.
       ;
-
+
     print.list-start ;
     print.list-item "--help-options Print more obscure command line options." ;
     print.list-item "--help-internal Boost.Build implementation details." ;
@@ -279,18 +279,18 @@
     print.list-item -a;
         Build all targets, even if they are current. ;
     print.list-item -fx;
- Read '"x"' as the Jamfile for building instead of searching
- for the Boost.Build system. ;
+ Read '"x"' as the Jamfile for building instead of searching for the
+ Boost.Build system. ;
     print.list-item -jx;
         Run up to '"x"' commands concurrently. ;
     print.list-item -n;
- Do not execute build commands. Instead print out the commands
- as they would be executed if building. ;
+ Do not execute build commands. Instead print out the commands as they
+ would be executed if building. ;
     print.list-item -ox;
- Write the build commands to the file '"x"'. ;
+ Output the used build commands to file '"x"'. ;
     print.list-item -q;
- Quit as soon as the build of a target fails. Specifying this prevents the
- attempt of building as many targets as possible regardless of failures. ;
+ Quit as soon as a build failure is encountered. Without this option
+ Boost.Jam will continue building as many targets as it can.
     print.list-item -sx=y;
         Sets a Jam variable '"x"' to the value '"y"', overriding any value that
         variable would have from the environment. ;
@@ -299,19 +299,19 @@
     print.list-item -v;
         Display the version of bjam. ;
     print.list-item --x;
- Option '"x"' is ignored but considered and option. The option is then
- available from the '"ARGV"' variable. ;
+ Any option not explicitly handled by Boost.Jam remains available to
+ build scripts using the '"ARGV"' variable. ;
     print.list-item -dn;
         Enables output of diagnostic messages. The debug level '"n"' and all
         below it are enabled by this option. ;
     print.list-item -d+n;
- Enables output of diagnostic messages. Only the output for debug level '"n"'
- is enabled. ;
+ Enables output of diagnostic messages. Only the output for debug level
+ '"n"' is enabled. ;
     print.list-end ;
     print.section "Debug Levels"
- Each debug level shows a different set of information. Usually with the higher
- levels producing more verbose information. The following levels are supported:
- ;
+ Each debug level shows a different set of information. Usually with
+ higher levels producing more verbose information. The following levels
+ are supported: ;
     print.list-start ;
     print.list-item 0;
         Turn off all diagnostic output. Only errors are reported. ;
@@ -353,9 +353,9 @@
     )
 {
     print.section "Help Options"
- These are all the options available for enabling or disabling
- to control the help system in various ways. Options can be enabled
- or disabled with '"--help-enable-<option>"', and "'--help-disable-<option>'"
+ These are all the options available for enabling or disabling to control
+ the help system in various ways. Options can be enabled or disabled with
+ '"--help-enable-<option>"', and "'--help-disable-<option>'"
         respectively.
         ;
     local options-to-list = [ MATCH ^[.]option[.](.*) : $($(module-name).variables) ] ;
@@ -410,11 +410,11 @@
     }
 }
 
-# Generate documentation for possible modules. We attempt to list all known
-# modules, and a brief description of each.
+# Generate documentation for all possible modules. We attempt to list all known
+# modules together with a brief description of each.
 #
 local rule print-help-all (
- ignored # Usually the module name, but is ignored here.
+ ignored # Usually the module name, but is ignored here.
     )
 {
     print.section "Modules"
@@ -451,19 +451,19 @@
 {
     # Print the docs.
     print.section "Module '$(module-name)'" $($(module-name).docs) ;
-
+
     # Print out the documented classes.
     print-help-module-section $(module-name) classes : "Module '$(module-name)' classes"
         Use --help $(module-name).<class-name> to get more information. ;
-
+
     # Print out the documented rules.
     print-help-module-section $(module-name) rules : "Module '$(module-name)' rules"
         Use --help $(module-name).<rule-name> to get more information. ;
-
+
     # Print out the documented variables.
     print-help-module-section $(module-name) variables : "Module '$(module-name)' variables"
         Use --help $(module-name).<variable-name> to get more information. ;
-
+
     # Print out all the same information but indetailed form.
     if $(.option.detailed)
     {
@@ -536,11 +536,11 @@
                     print.list-end ;
                 }
             }
-
+
             # Print out the documented rules of the class.
             print-help-module-section $(module-name) $(class-name).class-rules : "Class '$(module-name).$(class-name)' rules"
                 Use --help $(module-name).<rule-name> to get more information. ;
-
+
             # Print out all the rules if details are requested.
             if $(.option.detailed)
             {
@@ -594,7 +594,7 @@
         # Print the docs.
         print.section "Project-specific help"
             Project has jamfile at $(jamfile) ;
-
+
         print.lines $(jamfile<$(jamfile)>.docs) "" ;
     }
 }
@@ -612,7 +612,7 @@
         # Print the docs.
         print.section "Configuration help"
             Configuration file at $(config-file) ;
-
+
         print.lines $(jamfile<$(config-file)>.docs) "" ;
     }
 }
@@ -738,7 +738,7 @@
                 scope-level = $(scope-level[2-]) ;
             }
         }
-
+
         return true ;
     }
 }
@@ -847,10 +847,10 @@
     }
 }
 
-# Scan a module file for documentation comments. This also
-# invokes any actions assigned to the module. The actions
-# are the rules that do the actual output of the documentation.
-# This rue is invoked as the header scan rule for the module file.
+# Scan a module file for documentation comments. This also invokes any actions
+# assigned to the module. The actions are the rules that do the actual output of
+# the documentation. This rule is invoked as the header scan rule for the module
+# file.
 #
 rule scan-module (
     target # The module file.

Modified: branches/proto/v3/tools/build/v2/util/indirect.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/util/indirect.jam (original)
+++ branches/proto/v3/tools/build/v2/util/indirect.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,14 +1,16 @@
-# Copyright 2003 Dave Abrahams
-# Copyright 2003 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2003 Dave Abrahams
+# Copyright 2003 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 import modules ;
 import numbers ;
 
-# The pattern that indirect rules must match: module$rule
+
+# The pattern that indirect rules must match: module%rule
 .pattern = ^([^%]*)%([^%]+)$ ;
-
+
+
 #
 # Type checking rules.
 #
@@ -16,14 +18,15 @@
 {
     if ! [ MATCH $(.pattern) : $(x) ]
     {
- return "expected a string of the form module$rule, but got \""$(x)"\" for argument" ;
+ return "expected a string of the form module%rule, but got \""$(x)"\" for argument" ;
     }
 }
 
-# make an indirect rule which calls the given rule; if context is
-# supplied it is expected to be the module in which to invoke the rule
-# by the 'call' rule below. Otherwise, the rule will be invoked in
-# the module of this rule's caller.
+
+# Make an indirect rule which calls the given rule. If context is supplied it is
+# expected to be the module in which to invoke the rule by the 'call' rule
+# below. Otherwise, the rule will be invoked in the module of this rule's
+# caller.
 rule make ( rulename bound-args * : context ? )
 {
     context ?= [ CALLER_MODULE ] ;
@@ -31,12 +34,12 @@
     return $(context)%$(rulename) $(bound-args) ;
 }
 
-# make an indirect rule which calls the given rule. rulename may be a
-# qualified rule; if so it is returned unchanged. Otherwise, if
-# frames is not supplied, the result will be invoked (by 'call',
-# below) in the module of the caller. Otherwise, frames > 1
-# specifies additional call frames to back up in order to find the
-# module context.
+
+# Make an indirect rule which calls the given rule. 'rulename' may be a
+# qualified rule; if so it is returned unchanged. Otherwise, if frames is not
+# supplied, the result will be invoked (by 'call', below) in the module of the
+# caller. Otherwise, frames > 1 specifies additional call frames to back up in
+# order to find the module context.
 rule make-qualified ( rulename bound-args * : frames ? )
 {
     if [ MATCH $(.pattern) : $(rulename) ]
@@ -46,17 +49,16 @@
     else
     {
         frames ?= 1 ;
- # Take the first dot-separated element as module name.
- # This disallows module names with dots, but allows rule names
- # with dots.
+ # Take the first dot-separated element as module name. This disallows
+ # module names with dots, but allows rule names with dots.
         local module-context = [ MATCH ^([^.]*)\\..* : $(rulename) ] ;
         module-context ?= [ CALLER_MODULE $(frames) ] ;
         return [ make $(rulename) $(bound-args) : $(module-context) ] ;
     }
 }
 
-# return the module name in which the given indirect rule will be
-# invoked.
+
+# Returns the module name in which the given indirect rule will be invoked.
 rule get-module ( [indirect-rule] x )
 {
     local m = [ MATCH $(.pattern) : $(x) ] ;
@@ -67,37 +69,36 @@
     return $(m[1]) ;
 }
 
-# return the rulename that will be called when x is invoked
+
+# Returns the rulename that will be called when x is invoked.
 rule get-rule ( [indirect-rule] x )
 {
     local m = [ MATCH $(.pattern) : $(x) ] ;
     return $(m[2]) ;
 }
 
+
 # Invoke the given indirect-rule.
 rule call ( [indirect-rule] r args * : * )
 {
- return [
- modules.call-in [ get-module $(r) ]
- : [ get-rule $(r) ] $(args) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9)
- ] ;
+ return [ modules.call-in [ get-module $(r) ] : [ get-rule $(r) ] $(args)
+ : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ] ;
 }
 
+
 rule __test__
 {
     import assert ;
-
+
     rule foo-barr! ( x )
     {
         assert.equal $(x) : x ;
     }
-
+
     assert.equal [ get-rule [ make foo-barr! ] ] : foo-barr! ;
     assert.equal [ get-module [ make foo-barr! ] ] : [ CALLER_MODULE ] ;
-
+
     call [ make foo-barr! ] x ;
     call [ make foo-barr! x ] ;
-
-
     call [ make foo-barr! : [ CALLER_MODULE ] ] x ;
 }

Modified: branches/proto/v3/tools/build/v2/util/order.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/util/order.jam (original)
+++ branches/proto/v3/tools/build/v2/util/order.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,70 +3,71 @@
 # License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy
 # at http://www.boost.org/LICENSE_1_0.txt)
 
-# This module defines a class which allows to order arbitrary object
-# with regard to arbitrary binary relation.
+# This module defines a class which allows to order arbitrary object with
+# regard to arbitrary binary relation.
 #
-# The primary use case is the gcc toolset, which is sensitive to
-# library order: if library 'a' uses symbols from library 'b',
-# then 'a' must be present before 'b' on the linker's command line.
+# The primary use case is the gcc toolset, which is sensitive to library order:
+# if library 'a' uses symbols from library 'b', then 'a' must be present before
+# 'b' on the linker's command line.
 #
-# This requirement can be lifted for gcc with GNU ld, but for gcc with
-# Solaris LD (and for Solaris toolset as well), the order always matters.
+# This requirement can be lifted for gcc with GNU ld, but for gcc with Solaris
+# LD (and for Solaris toolset as well), the order always matters.
 #
-# So, we need to store order requirements and then order libraries
-# according to them. It it not possible to use dependency graph as
-# order requirements. What we need is "use symbols" relationship
-# while dependency graph provides "needs to be updated" relationship.
+# So, we need to store order requirements and then order libraries according to
+# them. It is not possible to use the dependency graph as order requirements.
+# What we need is a "use symbols" relationship while dependency graph provides
+# the "needs to be updated" relationship.
 #
 # For example::
 # lib a : a.cpp b;
 # lib b ;
 #
-# For static linking, the 'a' library need not depend on 'b'. However, it
-# still should come before 'b' on the command line.
+# For static linking, library 'a' need not depend on 'b'. However, it should
+# still come before 'b' on the command line.
 
-class order
+class order
 {
- rule __init__ ( ) {
+ rule __init__ ( )
+ {
     }
-
- # Adds the constraint that 'first' should precede 'second'
+
+ # Adds the constraint that 'first' should preceede 'second'.
     rule add-pair ( first second )
     {
         .constraits += $(first)--$(second) ;
     }
     NATIVE_RULE class_at_order : add-pair ;
-
- # Given a list of objects, reorder them so that the constains specified
- # by 'add-pair' are satisfied.
+
+ # Given a list of objects, reorder them so that the constraints specified by
+ # 'add-pair' are satisfied.
     #
     # The algorithm was adopted from an awk script by Nikita Youshchenko
     # (yoush at cs dot msu dot su)
     rule order ( objects * )
     {
- # The algorithm used is the same is standard transitive closure,
- # except that we're not keeping in-degree for all vertices, but
- # rather removing edges.
+ # The algorithm used is the same is standard transitive closure, except
+ # that we're not keeping in-degree for all vertices, but rather removing
+ # edges.
         local result ;
         if $(objects)
- {
- local constraints = [ eliminate-unused-constraits $(objects) ] ;
-
- # Find some library that nobody depends upon and add it to
- # the 'result' array.
+ {
+ local constraints = [ eliminate-unused-constraits $(objects) ] ;
+
+ # Find some library that nobody depends upon and add it to the
+ # 'result' array.
             local obj ;
             while $(objects)
- {
+ {
                 local new_objects ;
                 while $(objects)
                 {
- obj = $(objects[1]) ;
+ obj = $(objects[1]) ;
                     if [ has-no-dependents $(obj) : $(constraints) ]
                     {
                         # Emulate break ;
                         new_objects += $(objects[2-]) ;
                         objects = ;
- }
+ }
                     else
                     {
                         new_objects += $(obj) ;
@@ -74,30 +75,30 @@
                         objects = $(objects[2-]) ;
                     }
                 }
-
+
                 if ! $(obj)
                 {
                     errors.error "Circular order dependencies" ;
                 }
                 # No problem with placing first.
                 result += $(obj) ;
- # Remove all containts where 'obj' comes first,
- # since they are already satisfied.
+ # Remove all contraints where 'obj' comes first, since they are
+ # already satisfied.
                 constraints = [ remove-satisfied $(constraints) : $(obj) ] ;
- # Add the remaining objects for further processing
- # on the next iteration
-
- objects = $(new_objects) ;
- }
-
- }
+
+ # Add the remaining objects for further processing on the next
+ # iteration
+ objects = $(new_objects) ;
+ }
+
+ }
         return $(result) ;
- }
+ }
     NATIVE_RULE class_at_order : order ;
-
- # Eliminate constains which mentions objects not in 'objects'.
- # In graph-theory terms, this is finding subgraph induced by
- # ordered vertices.
+
+ # Eliminate constraints which mention objects not in 'objects'. In
+ # graph-theory terms, this is finding a subgraph induced by ordered
+ # vertices.
     rule eliminate-unused-constraits ( objects * )
     {
         local result ;
@@ -107,32 +108,32 @@
             if $(m[1]) in $(objects) && $(m[2]) in $(objects)
             {
                 result += $(c) ;
- }
- }
+ }
+ }
         return $(result) ;
     }
-
- # Returns true if there's no constrain in 'constaraint' where
- # 'obj' comes second.
+
+ # Returns true if there's no constraint in 'constaraints' where 'obj' comes
+ # second.
     rule has-no-dependents ( obj : constraints * )
     {
         local failed ;
- while $(constraints) && ! $(failed)
+ while $(constraints) && ! $(failed)
         {
             local c = $(constraints[1]) ;
             local m = [ MATCH (.*)--(.*) : $(c) ] ;
             if $(m[2]) = $(obj)
             {
                 failed = true ;
- }
+ }
             constraints = $(constraints[2-]) ;
         }
         if ! $(failed)
         {
             return true ;
- }
+ }
     }
-
+
     rule remove-satisfied ( constraints * : obj )
     {
         local result ;
@@ -142,32 +143,27 @@
             if $(m[1]) != $(obj)
             {
                 result += $(c) ;
- }
+ }
         }
- return $(result) ;
- }
+ return $(result) ;
+ }
 }
 
+
 rule __test__ ( )
 {
     import "class" : new ;
     import assert ;
-
+
     c1 = [ new order ] ;
     $(c1).add-pair l1 l2 ;
-
+
     assert.result l1 l2 : $(c1).order l1 l2 ;
     assert.result l1 l2 : $(c1).order l2 l1 ;
-
+
     $(c1).add-pair l2 l3 ;
     assert.result l1 l2 : $(c1).order l2 l1 ;
     $(c1).add-pair x l2 ;
     assert.result l1 l2 : $(c1).order l2 l1 ;
     assert.result l1 l2 l3 : $(c1).order l2 l3 l1 ;
-
-
-
-
 }
-
-

Modified: branches/proto/v3/tools/build/v2/util/os.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/util/os.jam (original)
+++ branches/proto/v3/tools/build/v2/util/os.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,23 +1,26 @@
-# Copyright 2001, 2002, 2003, 2005 Dave Abrahams
-# Copyright 2006 Rene Rivera
-# Copyright 2003, 2005 Vladimir Prus
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# Copyright 2001, 2002, 2003, 2005 Dave Abrahams
+# Copyright 2006 Rene Rivera
+# Copyright 2003, 2005 Vladimir Prus
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 import modules ;
 import string ;
 
-# Return the value(s) of the given environment variable(s) at the time
-# bjam was invoked.
+
+# Return the value(s) of the given environment variable(s) at the time bjam was
+# invoked.
 rule environ ( variable-names + )
 {
     return [ modules.peek .ENVIRON : $(variable-names) ] ;
 }
 
+
 .name = [ modules.peek : OS ] ;
 .platform = [ modules.peek : OSPLAT ] ;
 .version = [ modules.peek : OSVER ] ;
 
+
 local rule constant ( c : os ? )
 {
     os ?= $(.name) ;
@@ -27,10 +30,10 @@
     return $(result[1]) ;
 }
 
-rule get-constant ( os ? )
+rule get-constant ( os ? )
 {
- # Find the name of the constant being accessed, which is
- # equal to the name used to invoke us.
+ # Find the name of the constant being accessed, which is equal to the name
+ # used to invoke us.
     local bt = [ BACKTRACE 1 ] ;
     local rulename = [ MATCH ([^.]*)$ : $(bt[4]) ] ;
     return [ constant $(rulename) : $(os) ] ;
@@ -39,15 +42,15 @@
 
 # export all the common constants
 .constants = name platform version shared-library-path-variable path-separator executable-path-variable executable-suffix ;
-for local constant in $(.constants)
+for local constant in $(.constants)
 {
     IMPORT $(__name__) : get-constant : $(__name__) : $(constant) ;
 }
 EXPORT $(__name__) : $(.constants) ;
 
 .executable-path-variable-NT = PATH ;
-# On Windows the case and capitalization of PATH is not always
-# predictable, so let's find out what variable name was really set.
+# On Windows the case and capitalization of PATH is not always predictable, so
+# let's find out what variable name was really set.
 if $(.name) = NT
 {
     for local n in [ VARNAMES .ENVIRON ]
@@ -59,8 +62,8 @@
     }
 }
 
-# Specific constants for various platforms. There's no need to define
-# any constant whose value would be the same as the default, below.
+# Specific constants for various platforms. There's no need to define any
+# constant whose value would be the same as the default, below.
 .shared-library-path-variable-NT = $(.executable-path-variable-NT) ;
 .path-separator-NT = ";" ;
 .expand-variable-prefix-NT = % ;
@@ -81,16 +84,20 @@
 .executable-path-variable = PATH ;
 .executable-suffix = "" ;
 
-# Return a list of the directories in the PATH. Yes, that information
-# is (sort of) available in the global module, but jam code can change
-# those values, and it isn't always clear what case/capitalization to
-# use when looking. This rule is a more reliable way to get there.
+
+# Return a list of the directories in the PATH. Yes, that information is (sort
+# of) available in the global module, but jam code can change those values, and
+# it isn't always clear what case/capitalization to use when looking. This rule
+# is a more reliable way to get there.
 rule executable-path ( )
 {
- return [ string.words [ environ [ constant executable-path-variable ] ]
- : [ constant path-separator ] ] ;
+ return [ string.words [ environ [ constant executable-path-variable ] ]
+ : [ constant path-separator ] ] ;
 }
-
+
+
+# Initialize the list of home directories for the current user depending on the
+# OS.
 if $(.name) = NT
 {
     local home = [ environ HOMEDRIVE HOMEPATH ] ;
@@ -101,14 +108,16 @@
     .home-directories = [ environ HOME ] ;
 }
 
-# Can't use 'constant' mechanism because it only returns 1-element
-# values.
+
+# Can't use 'constant' mechanism because it only returns 1-element values.
 rule home-directories ( )
 {
     return $(.home-directories) ;
 }
-# Return the string needed to represent the expansion of the named
-# shell variable.
+
+
+# Return the string needed to represent the expansion of the named shell
+# variable.
 rule expand-variable ( variable )
 {
     local prefix = [ constant expand-variable-prefix ] ;
@@ -116,17 +125,18 @@
     return $(prefix)$(variable)$(suffix) ;
 }
 
+
 # Returns true if running on windows, whether in cygwin or not.
-rule on-windows
+rule on-windows ( )
 {
     local result ;
- if [ modules.peek : NT ]
+ if [ modules.peek : NT ]
     {
         result = true ;
     }
- else if [ modules.peek : UNIX ]
+ else if [ modules.peek : UNIX ]
     {
- switch [ modules.peek : JAMUNAME ]
+ switch [ modules.peek : JAMUNAME ]
         {
             case CYGWIN* :
             {
@@ -137,24 +147,22 @@
     return $(result) ;
 }
 
-if ! [ on-windows ]
+
+if ! [ on-windows ]
 {
     .on-unix = 1 ;
 }
 
+
 rule on-unix
 {
     return $(.on-unix) ;
 }
-
 
-import regex ;
 
 rule __test__
 {
     import assert ;
- rule identity ( args * ) { return $(args) ; }
-
     if ! ( --quiet in [ modules.peek : ARGV ] )
     {
         ECHO os: name= [ name ] ;

Modified: branches/proto/v3/tools/build/v2/util/path.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/util/path.jam (original)
+++ branches/proto/v3/tools/build/v2/util/path.jam 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -6,39 +6,35 @@
 # (See accompanying file LICENSE_1_0.txt or copy at
 # http://www.boost.org/LICENSE_1_0.txt)
 
-# Performs various path manipulations. Path are always in a 'normilized'
+# Performs various path manipulations. Paths are always in a 'normalized'
 # representation. In it, a path may be either:
 #
 # - '.', or
 #
 # - ['/'] [ ( '..' '/' )* (token '/')* token ]
-#
+#
 # In plain english, path can be rooted, '..' elements are allowed only
 # at the beginning, and it never ends in slash, except for path consisting
 # of slash only.
 
+import errors ;
 import modules ;
-import sequence ;
 import regex ;
-import errors : error ;
+import sequence ;
 import set ;
 
 
 os = [ modules.peek : OS ] ;
-if [ modules.peek : UNIX ]
-{
+if [ modules.peek : UNIX ]
+{
     local uname = [ modules.peek : JAMUNAME ] ;
     switch $(uname)
     {
- case CYGWIN* :
- os = CYGWIN ;
-
- case * :
- os = UNIX ;
- }
+ case CYGWIN* : os = CYGWIN ;
+ case * : os = UNIX ;
+ }
 }
 
-#
 # Converts the native path into normalized form.
 #
 rule make ( native )
@@ -46,7 +42,7 @@
     return [ make-$(os) $(native) ] ;
 }
 
-#
+
 # Builds native representation of the path.
 #
 rule native ( path )
@@ -54,7 +50,7 @@
     return [ native-$(os) $(path) ] ;
 }
 
-#
+
 # Tests if a path is rooted.
 #
 rule is-rooted ( path )
@@ -62,19 +58,22 @@
     return [ MATCH "^(/)" : $(path) ] ;
 }
 
-#
+
 # Tests if a path has a parent.
 #
 rule has-parent ( path )
 {
- if $(path) != / {
+ if $(path) != /
+ {
         return 1 ;
- } else {
+ }
+ else
+ {
         return ;
     }
 }
 
-#
+
 # Returns the path without any directory components.
 #
 rule basename ( path )
@@ -82,41 +81,52 @@
     return [ MATCH "([^/]+)$" : $(path) ] ;
 }
 
-#
+
 # Returns parent directory of the path. If no parent exists, error is issued.
 #
 rule parent ( path )
 {
- if [ has-parent $(path) ] {
-
- if $(path) = . {
+ if [ has-parent $(path) ]
+ {
+ if $(path) = .
+ {
             return .. ;
- } else {
-
+ }
+ else
+ {
             # Strip everything at the end of path up to and including
             # the last slash
             local result = [ regex.match "((.*)/)?([^/]+)" : $(path) : 2 3 ] ;
 
             # Did we strip what we shouldn't?
- if $(result[2]) = ".." {
+ if $(result[2]) = ".."
+ {
                 return $(path)/.. ;
- } else {
- if ! $(result[1]) {
- if [ is-rooted $(path) ] {
+ }
+ else
+ {
+ if ! $(result[1])
+ {
+ if [ is-rooted $(path) ]
+ {
                         result = / ;
- } else {
+ }
+ else
+ {
                         result = . ;
                     }
                 }
                 return $(result[1]) ;
             }
         }
- } else {
- error "Path '$(path)' has no parent" ;
+ }
+ else
+ {
+ errors.error "Path '$(path)' has no parent" ;
     }
 }
 
-#
+
 # Returns path2 such that "[ join path path2 ] = .".
 # The path may not contain ".." element or be rooted.
 #
@@ -130,14 +140,15 @@
     {
         local tokens = [ regex.split $(path) "/" ] ;
         local tokens2 ;
- for local i in $(tokens) {
+ for local i in $(tokens)
+ {
             tokens2 += .. ;
         }
         return [ sequence.join $(tokens2) : "/" ] ;
     }
 }
 
-#
+
 # Auxillary rule: does all the semantic of 'join', except for error cheching.
 # The error checking is separated because this rule is recursive, and I don't
 # like the idea of checking the same input over and over.
@@ -156,31 +167,30 @@
     return $(result) ;
 }
 
-#
+
 # Contanenates the passed path elements. Generates an error if
 # any element other than the first one is rooted.
 #
 rule join ( elements + )
 {
- if ! $(elements[2])
+ if ! $(elements[2])
     {
         return $(elements[1]) ;
     }
     else
- {
+ {
         for local e in $(elements[2-])
         {
             if [ is-rooted $(e) ]
             {
- error only first element may be rooted ;
+ errors.error only first element may be rooted ;
             }
         }
         return [ join-imp $(elements) ] ;
- }
+ }
 }
 
 
-#
 # If 'path' is relative, it is rooted at 'root'. Otherwise, it's unchanged.
 #
 rule root ( path root )
@@ -192,7 +202,7 @@
     }
 }
 
-#
+
 # Returns the current working directory.
 #
 rule pwd ( )
@@ -205,12 +215,12 @@
     {
         .pwd = [ make [ PWD ] ] ;
         return $(.pwd) ;
- }
+ }
 }
 
-#
+
 # Returns the list of files matching the given pattern in the
-# specified directory. Both directories and patterns are
+# specified directory. Both directories and patterns are
 # supplied as portable paths. Each pattern should be non-absolute
 # path, and can't contain "." or ".." elements. Each slash separated
 # element of pattern can contain the following special characters:
@@ -219,9 +229,9 @@
 # A file $(d)/e1/e2/e3 (where 'd' is in $(dirs)) matches pattern p1/p2/p3
 # if and only if e1 matches p1, e2 matches p2 and so on.
 #
-# For example:
-# [ glob . : *.cpp ]
-# [ glob . : */build/Jamfile ]
+# For example:
+# [ glob . : *.cpp ]
+# [ glob . : */build/Jamfile ]
 rule glob ( dirs * : patterns + : exclude-patterns * )
 {
     local result ;
@@ -233,23 +243,24 @@
         {
             local pattern = [ path.root $(p) $(d) ] ;
             real-patterns += [ path.native $(pattern) ] ;
- }
-
+ }
+
         for local p in $(exclude-patterns)
         {
             local pattern = [ path.root $(p) $(d) ] ;
             real-exclude-patterns += [ path.native $(pattern) ] ;
- }
- }
+ }
+ }
 
     local inc = [ GLOB-RECURSIVELY $(real-patterns) ] ;
     inc = [ sequence.transform NORMALIZE_PATH : $(inc) ] ;
     local exc = [ GLOB-RECURSIVELY $(real-exclude-patterns) ] ;
     exc = [ sequence.transform NORMALIZE_PATH : $(exc) ] ;
-
- return [ sequence.transform path.make :
+
+ return [ sequence.transform path.make :
         [ set.difference $(inc) : $(exc) ] ] ;
-}
+}
+
 
 # Recursive version of GLOB. Builds the glob of files while
 # also searching in the subdirectories of the given roots. An
@@ -267,6 +278,7 @@
         ] ] ;
 }
 
+
 local rule .glob-tree ( roots * : patterns * : exclude-patterns * )
 {
     local excluded ;
@@ -290,7 +302,6 @@
 }
 
 
-#
 # Returns true is the specified file exists.
 #
 rule exists ( file )
@@ -300,8 +311,6 @@
 NATIVE_RULE path : exists ;
 
 
-
-#
 # Find out the absolute name of path and returns the list of all the parents,
 # starting with the immediate one. Parents are returned as relative names.
 # If 'upper_limit' is specified, directories above it will be pruned.
@@ -321,9 +330,10 @@
         upper_ele = $(upper_ele[2-]) ;
         path_ele = $(path_ele[2-]) ;
     }
-
+
     # All upper elements removed ?
- if ! $(upper_ele) {
+ if ! $(upper_ele)
+ {
         # Create the relative paths to parents, number of elements in 'path_ele'
         local result ;
         for local i in $(path_ele) {
@@ -332,13 +342,13 @@
         }
         return $(result) ;
     }
- else {
- error "$(upper_limit) is not prefix of $(path)" ;
+ else
+ {
+ errors.error "$(upper_limit) is not prefix of $(path)" ;
     }
 }
 
 
-#
 # Search for 'pattern' in parent directories of 'dir', up till and including
 # 'upper_limit', if it is specified, or till the filesystem root otherwise.
 #
@@ -352,24 +362,24 @@
         result = [ glob $(parent-dirs[1]) : $(patterns) ] ;
         parent-dirs = $(parent-dirs[2-]) ;
     }
- return $(result) ;
+ return $(result) ;
 }
 
-#
+
 # Assuming 'child' is a subdirectory of 'parent', return the relative
 # path from 'parent' to 'child'
 #
 rule relative ( child parent )
 {
- if $(parent) = "."
+ if $(parent) = "."
     {
         return $(child) ;
     }
- else
- {
+ else
+ {
         local split1 = [ regex.split $(parent) / ] ;
         local split2 = [ regex.split $(child) / ] ;
-
+
         while $(split1)
         {
             if $(split1[1]) = $(split2[1])
@@ -380,19 +390,20 @@
             else
             {
                 errors.error $(child) is not a subdir of $(parent) ;
- }
- }
+ }
+ }
         if $(split2)
         {
- return [ join $(split2) ] ;
+ return [ join $(split2) ] ;
         }
         else
         {
             return "." ;
         }
- }
+ }
 }
 
+
 # Returns the minimal path to path2 that is relative path1.
 #
 rule relative-to ( path1 path2 )
@@ -417,6 +428,7 @@
     return [ join . $(root_1) $(split2) ] ;
 }
 
+
 # Returns the list of paths which are used by the operating system
 # for looking up programs
 rule programs-path ( )
@@ -428,11 +440,12 @@
         if $(p)
         {
             result += [ path.make $(p) ] ;
- }
+ }
     }
     return $(result) ;
 }
 
+
 rule make-NT ( native )
 {
     local tokens = [ regex.split $(native) "[/\\]" ] ;
@@ -450,22 +463,32 @@
     {
         result = /$(result) ;
     }
-
+
     if $(native) = ""
     {
         result = "." ;
     }
-
+
     return $(result) ;
 }
 
+
 rule native-NT ( path )
 {
- local result = [ MATCH "^/?(.*)" : $(path) ] ;
+ local result ;
+ if [ is-rooted $(path) ] && ! [ regex.match "^/(.:)" : $(path) ]
+ {
+ result = $(path) ;
+ }
+ else
+ {
+ result = [ MATCH "^/?(.*)" : $(path) ] ;
+ }
     result = [ sequence.join [ regex.split $(result) "/" ] : "\\" ] ;
     return $(result) ;
 }
 
+
 rule make-UNIX ( native )
 {
     # VP: I have no idea now 'native' can be empty here! But it can!
@@ -474,21 +497,24 @@
         errors.error "Empty path passed to 'make-UNIX'" ;
     }
     else
- {
+ {
         return [ NORMALIZE_PATH $(native:T) ] ;
- }
+ }
 }
 
+
 rule native-UNIX ( path )
 {
     return $(path) ;
 }
 
+
 rule make-CYGWIN ( path )
 {
     return [ make-NT $(path) ] ;
 }
 
+
 rule native-CYGWIN ( path )
 {
     local result = $(path) ;
@@ -499,7 +525,7 @@
     return [ native-UNIX $(result) ] ;
 }
 
-#
+
 # split-VMS: splits input native path into
 # device dir file (each part is optional),
 # example:
@@ -516,7 +542,7 @@
     return $(device) $(dir) $(file) ;
 }
 
-#
+
 # Converts a native VMS path into a portable path spec.
 #
 # Does not handle current-device absolute paths such
@@ -532,13 +558,13 @@
     {
         errors.error "Can't handle default-device absolute paths: " $(native) ;
     }
-
+
     local parts = [ split-path-VMS $(native) ] ;
     local device = $(parts[1]) ;
     local dir = $(parts[2]) ;
     local file = $(parts[3]) ;
     local elems ;
-
+
     if $(device)
     {
         #
@@ -546,7 +572,7 @@
         #
         elems = /$(device) ;
     }
-
+
     if $(dir) = "[]"
     {
         #
@@ -558,7 +584,7 @@
     {
         dir = [ regex.replace $(dir) "\\[|\\]" "" ] ;
         local dir_parts = [ regex.split $(dir) \\. ] ;
-
+
         if $(dir_parts[1]) = ""
         {
             #
@@ -566,15 +592,15 @@
             #
             dir_parts = $(dir_parts[2--1]) ;
         }
-
+
         #
         # replace "parent-directory" parts (- => ..)
         #
         dir_parts = [ regex.replace-list $(dir_parts) : - : .. ] ;
-
+
         elems = $(elems) $(dir_parts) ;
     }
-
+
     if $(file)
     {
         if ! [ MATCH (\\.) : $(file) ]
@@ -592,7 +618,7 @@
     return $(portable) ;
 }
 
-#
+
 # Converts a portable path spec into a native VMS path.
 #
 # Relies on having at least one dot (".") included in the file
@@ -634,7 +660,7 @@
         file = $(maybe_file) ;
         dir = [ sequence.join $(split[1--2]) : / ] ;
     }
-
+
     #
     # Has dir spec ?
     #
@@ -651,20 +677,20 @@
         {
             #
             # Relative directory
- #
+ #
             dir = "."$(dir) ;
         }
         dir = "["$(dir)"]" ;
     }
-
+
     native = [ sequence.join $(device) $(dir) $(file) ] ;
 
     return $(native) ;
 }
 
 
-rule __test__ ( ) {
-
+rule __test__ ( )
+{
     import assert ;
     import errors : try catch ;
 
@@ -694,7 +720,6 @@
     assert.result ".." : parent "../foo" ;
     assert.result "../../foo" : parent "../../foo/bar" ;
 
-
     assert.result "." : reverse "." ;
     assert.result ".." : reverse "foo" ;
     assert.result "../../.." : reverse "foo/bar/giz" ;
@@ -733,7 +758,7 @@
     local CWD = "/home/ghost" ;
     assert.result . .. : all-parents "Jamfile" : "/home" : $(CWD) ;
     assert.result . : all-parents "Jamfile" : "/home/ghost" : $(CWD) ;
-
+
     assert.result "c/d" : relative "a/b/c/d" "a/b" ;
     assert.result "foo" : relative "foo" "." ;
 
@@ -744,18 +769,21 @@
     assert.result "foo/bar/giz" : make "foo\\bar\\giz" ;
     assert.result "foo" : make "foo/." ;
     assert.result "foo" : make "foo/bar/.." ;
+ assert.result "foo/bar" : make "foo/././././bar" ;
+ assert.result "/foo" : make "\\foo" ;
     assert.result "/D:/My Documents" : make "D:\\My Documents" ;
     assert.result "/c:/boost/tools/build/new/project.jam" : make "c:\\boost\\tools\\build\\test\\..\\new\\project.jam" ;
 
     assert.result "foo\\bar\\giz" : native "foo/bar/giz" ;
     assert.result "foo" : native "foo" ;
+ assert.result "\\foo" : native "/foo" ;
     assert.result "D:\\My Documents\\Work" : native "/D:/My Documents/Work" ;
 
     modules.poke path : os : UNIX ;
 
     assert.result "foo/bar/giz" : make "foo/bar/giz" ;
     assert.result "/sub1" : make "/sub1/." ;
- assert.result "/sub1" : make "/sub1/sub2/.." ;
+ assert.result "/sub1" : make "/sub1/sub2/.." ;
     assert.result "sub1" : make "sub1/." ;
     assert.result "sub1" : make "sub1/sub2/.." ;
     assert.result "/foo/bar" : native "/foo/bar" ;
@@ -767,12 +795,12 @@
     #
     assert.result "disk:" "[dir]" "file" : split-path-VMS "disk:[dir]file" ;
     assert.result "disk:" "[dir]" "" : split-path-VMS "disk:[dir]" ;
- assert.result "disk:" "" "" : split-path-VMS "disk:" ;
- assert.result "disk:" "" "file" : split-path-VMS "disk:file" ;
+ assert.result "disk:" "" "" : split-path-VMS "disk:" ;
+ assert.result "disk:" "" "file" : split-path-VMS "disk:file" ;
     assert.result "" "[dir]" "file" : split-path-VMS "[dir]file" ;
     assert.result "" "[dir]" "" : split-path-VMS "[dir]" ;
- assert.result "" "" "file" : split-path-VMS "file" ;
- assert.result "" "" "" : split-path-VMS "" ;
+ assert.result "" "" "file" : split-path-VMS "file" ;
+ assert.result "" "" "" : split-path-VMS "" ;
 
     #
     # Special case: current directory
@@ -820,5 +848,4 @@
     assert.result "disk:[my_docs.work]Jamfile." : native "/disk:/my_docs/work/Jamfile." ;
 
     modules.poke path : os : $(save-os) ;
-
 }

Modified: branches/proto/v3/tools/index.html
==============================================================================
--- branches/proto/v3/tools/index.html (original)
+++ branches/proto/v3/tools/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1,12 +1,3 @@
-<!-- Copyright 2004 Aleksey Gurtovoy -->
-<!-- Copyright 2003 Beman Dawes -->
-<!-- Copyright 2003 Douglas Gregor -->
-<!-- Copyright 2005 Eric Niebler -->
-<!-- Copyright 2005 Hartmut Kaiser -->
-<!-- Copyright 2004 John Maddock -->
-<!-- Distributed under the Boost Software License, Version 1.0. -->
-<!-- (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -->
-
 <html>
    <head>
       <title>Boost Tools</title>
@@ -14,21 +5,33 @@
       <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
       <meta name="ProgId" content="FrontPage.Editor.Document">
       <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+ <link rel="stylesheet" href="../doc/html/boostbook.css" type="text/css" />
    </head>
    <body bgcolor="#ffffff">
- <table border="1" cellpadding="2" bgcolor="#007f7f">
- <tr>
- <td bgcolor="#ffffff">
- <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home</td>
- <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
- <td>More</td>
- </tr>
- </table>
- <h1>Boost Tools</h1>
- <p>Boost developers, testers, and maintainers have developed various programs to
+
+ <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
+ <tr>
+ <td width="277">
+ <a href="../index.html">
+ <img src="../boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"></a></td>
+ <td width="337" align="middle">
+ <font size="7">Tools</font>
+ </td>
+ </tr>
+ </table>
+
+ <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" bgcolor="#D7EEFF" height="26">
+ <tr>
+ <td height="16">Getting Started&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Release History&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Tools &nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Web Site&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; Community&nbsp;&nbsp;<font color="#FFFFFF">&nbsp;
+ </font>&nbsp; More</td>
+ </tr>
+ </table>
+
+ <p>Boost developers, testers, and maintainers have developed various tools to
          help with the administration of the Boost Libraries. Like everything else about
          Boost, these tools are available in source form, and are part of the regular
          Boost distribution.</p>
@@ -40,8 +43,11 @@
             the full Boost version of the jam sources.<br>
          &nbsp;
          <li>
- Regression - The Boost regression testing
+ Regression - The Boost regression testing
             system reporting sources.<br>
+&nbsp;<li>
+ Release - Scripts used to build the
+ release tarballs and zips.<br>
          &nbsp;
          <li>
             <a href="inspect/index.html">Inspect </a>- The inspection tool used to detect
@@ -71,8 +77,20 @@
       </li>
    </ul>
       <hr>
- <p>Revised
- <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
- 19 February, 2005</p>
+
+<p>Revised
+<!--webbot bot="Timestamp" s-type="EDITED"
+s-format="%d %b %Y" startspan -->23 Feb 2008<!--webbot bot="Timestamp" endspan i-checksum="14408" --></p>
+
+<p>© Copyright Beman Dawes 2003<br>
+© Copyright Douglas Gregor 2003<br>
+© Copyright Aleksey Gurtovoy 2004<br>
+© Copyright John Maddock 2004<br>
+© Copyright Eric Niebler 2005<br>
+© Copyright Hartmut Kaiser 2005<br>
+<br>
+Distributed under the Boost Software License, Version 1.0.
+(See file LICENSE_1_0.txt
+or www.boost.org/LICENSE_1_0.txt) </p>
    </body>
 </html>

Modified: branches/proto/v3/tools/inspect/index.html
==============================================================================
--- branches/proto/v3/tools/inspect/index.html (original)
+++ branches/proto/v3/tools/inspect/index.html 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -14,7 +14,7 @@
 <img src="../../boost.png" alt="boost.png (6897 bytes)" align="center" width="277" height="86">Inspect
 Tool</h1>
 <p>It is not uncommon for various common errors or
-guideline violations to creep into the
+guideline violations to creep into the
 Boost libraries. The <i>inspect</i> program detects and reports several common
 problems. It can be used to scan a proposed Boost submission to identify various
 failures.</p>
@@ -38,7 +38,7 @@
   <li>tab_check.hpp and <a href="tab_check.cpp">
   tab_check.cpp</a></li>
 </ul>
-<p>A Jamfile is provided to build the program.</p>
+<p>A Jamfile is provided to build the program.</p>
 <hr>
 <p>Revised
 <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->29 December, 2003<!--webbot bot="Timestamp" endspan i-checksum="38523" --></p>
@@ -51,4 +51,4 @@
 
 </body>
 
-</html>
\ No newline at end of file
+</html>

Modified: branches/proto/v3/tools/jam/doc/bjam.qbk
==============================================================================
--- branches/proto/v3/tools/jam/doc/bjam.qbk (original)
+++ branches/proto/v3/tools/jam/doc/bjam.qbk 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -116,7 +116,7 @@
 The toolset used to build Boost.Jam is independent of the toolsets used for Boost.Build. Only one version of Boost.Jam is needed to use Boost.Build.
 ]
 
-The supported toolsets, and wether they are auto-detected, are:
+The supported toolsets, and whether they are auto-detected, are:
 
 [table Supported Toolsets
 

Modified: branches/proto/v3/tools/jam/src/build.bat
==============================================================================
--- branches/proto/v3/tools/jam/src/build.bat (original)
+++ branches/proto/v3/tools/jam/src/build.bat 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -40,7 +40,7 @@
 
 
 :Test_Option
-REM Tests wether the given string is in the form of an option: "--*"
+REM Tests whether the given string is in the form of an option: "--*"
 setlocal & endlocal
 setlocal
 set test=%1

Modified: branches/proto/v3/tools/jam/src/builtins.c
==============================================================================
--- branches/proto/v3/tools/jam/src/builtins.c (original)
+++ branches/proto/v3/tools/jam/src/builtins.c 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1004,16 +1004,14 @@
 /*
  * builtin_import() - IMPORT ( SOURCE_MODULE ? : SOURCE_RULES * : TARGET_MODULE ? : TARGET_RULES * : LOCALIZE ? )
  *
- * The IMPORT rule imports rules from the SOURCE_MODULE into the
- * TARGET_MODULE as local rules. If either SOURCE_MODULE or
- * TARGET_MODULE is not supplied, it refers to the global
- * module. SOURCE_RULES specifies which rules from the SOURCE_MODULE
- * to import; TARGET_RULES specifies the names to give those rules in
- * TARGET_MODULE. If SOURCE_RULES contains a name which doesn't
- * correspond to a rule in SOURCE_MODULE, or if it contains a
- * different number of items than TARGET_RULES, an error is issued.
- * if LOCALIZE is specified, the rules will be executed in
- * TARGET_MODULE, with corresponding access to its module local
+ * The IMPORT rule imports rules from the SOURCE_MODULE into the TARGET_MODULE
+ * as local rules. If either SOURCE_MODULE or TARGET_MODULE is not supplied, it
+ * refers to the global module. SOURCE_RULES specifies which rules from the
+ * SOURCE_MODULE to import; TARGET_RULES specifies the names to give those rules
+ * in TARGET_MODULE. If SOURCE_RULES contains a name which doesn't correspond to
+ * a rule in SOURCE_MODULE, or if it contains a different number of items than
+ * TARGET_RULES, an error is issued. If LOCALIZE is specified, the rules will be
+ * executed in TARGET_MODULE, with corresponding access to its module local
  * variables.
  */
 LIST *
@@ -1087,15 +1085,14 @@
 
     module_t* m = bindmodule( module_list ? module_list->string : 0 );
     
-
     for ( ; rules; rules = list_next( rules ) )
     {
         RULE r_, *r = &r_;
         r_.name = rules->string;
-
+
         if ( !m->rules || !hashcheck( m->rules, (HASHDATA**)&r ) )
             unknown_rule( frame, "EXPORT", m->name, r_.name );
-
+
         r->exported = 1;
     }
     return L0;

Modified: branches/proto/v3/tools/jam/src/execunix.c
==============================================================================
--- branches/proto/v3/tools/jam/src/execunix.c (original)
+++ branches/proto/v3/tools/jam/src/execunix.c 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -25,6 +25,10 @@
 # ifdef USE_EXECUNIX
 # include <sys/times.h>
 
+# if defined(__APPLE__) && defined(__ppc__)
+# define NO_VFORK
+# endif
+
 # ifdef NO_VFORK
 # define vfork() fork()
 # endif
@@ -211,6 +215,8 @@
 
         if ((cmdtab[slot].pid = vfork()) == 0)
            {
+ int pid = getpid();
+
             close(out[0]);
             close(err[0]);
 
@@ -239,17 +245,19 @@
                 r_limit.rlim_max = globs.timeout;
                 setrlimit(RLIMIT_CPU, &r_limit);
             }
- setpgid(cmdtab[slot].pid, cmdtab[slot].pid);
-
- execvp( argv[0], argv );
- _exit(127);
- }
+ setpgid(pid,pid);
+ execvp( argv[0], argv );
+ perror( "execvp" );
+ _exit(127);
+ }
         else if( cmdtab[slot].pid == -1 )
         {
             perror( "vfork" );
             exit( EXITBAD );
         }
 
+ setpgid(cmdtab[slot].pid, cmdtab[slot].pid);
+
         /* close write end of pipes */
         close(out[1]);
         close(err[1]);
@@ -458,7 +466,7 @@
                 if (FD_ISSET(cmdtab[i].fd[OUT], &fds))
                     out = read_descriptor(i, OUT);
 
- if (FD_ISSET(cmdtab[i].fd[ERR], &fds))
+ if ((globs.pipe_action != 0) && (FD_ISSET(cmdtab[i].fd[ERR], &fds)))
                     err = read_descriptor(i, ERR);
 
                 /* if feof on either descriptor, then we're done */

Modified: branches/proto/v3/tools/jam/src/filesys.c
==============================================================================
--- branches/proto/v3/tools/jam/src/filesys.c (original)
+++ branches/proto/v3/tools/jam/src/filesys.c 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -19,6 +19,7 @@
             printf( "dir = '%.*s' ", f->f_dir.len, f->f_dir.ptr );
         if( f->f_base.len )
             printf( "base = '%.*s' ", f->f_base.len, f->f_base.ptr );
+ printf( "\n" );
     }
         
     /* Start with the grist. If the current grist isn't */

Modified: branches/proto/v3/tools/jam/src/make1.c
==============================================================================
--- branches/proto/v3/tools/jam/src/make1.c (original)
+++ branches/proto/v3/tools/jam/src/make1.c 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -687,7 +687,7 @@
         FRAME frame[1];
         frame_init( frame );
 
- /* args * :: $(__ACTION_RULE__[2-]) */
+ /* args * :: $(__TIMING_RULE__[2-]) */
         lol_add( frame->args, list_copy( L0, timing_rule->next ) );
 
         /* target :: the name of the target */

Modified: branches/proto/v3/tools/jam/src/modules/property-set.c
==============================================================================
--- branches/proto/v3/tools/jam/src/modules/property-set.c (original)
+++ branches/proto/v3/tools/jam/src/modules/property-set.c 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -15,12 +15,12 @@
     char* end = strchr(f, '>');
     string s[1];
     LIST* result;
-
+
     string_new(s);
 
     string_append_range(s, f, end+1);
     result = list_new(0, newstr(s->value));
-
+
     string_free(s);
     return result;
 }
@@ -28,22 +28,22 @@
 /*
 rule create ( raw-properties * )
 {
- raw-properties = [ sequence.unique
+ raw-properties = [ sequence.unique
         [ sequence.insertion-sort $(raw-properties) ] ] ;
-
+
     local key = $(raw-properties:J=-:E=) ;
-
- if ! $(.ps.$(key))
+
+ if ! $(.ps.$(key))
     {
         .ps.$(key) = [ new property-set $(raw-properties) ] ;
     }
- return $(.ps.$(key)) ;
+ return $(.ps.$(key)) ;
 }
 */
 
 LIST *property_set_create( PARSE *parse, FRAME *frame )
 {
- LIST* properties = lol_get( frame->args, 0 );
+ LIST* properties = lol_get( frame->args, 0 );
     LIST* sorted = 0;
     LIST* order_sensitive = 0;
     LIST* unique;
@@ -63,7 +63,7 @@
         }
         list_free(att);
     }
-
+
     sorted = list_sort(sorted);
     sorted = list_append(sorted, order_sensitive);
     unique = list_unique(sorted);
@@ -73,24 +73,24 @@
 
     string_new(var);
     string_append(var, ".ps.");
-
+
     for(tmp = unique; tmp; tmp = tmp->next) {
         string_append(var, tmp->string);
         string_push_back(var, '-');
     }
     val = var_get(var->value);
- if (val == 0)
- {
- val = call_rule("new", frame,
- list_append(list_new(0, "property-set"), unique), 0);
-
+ if (val == 0)
+ {
+ val = call_rule("new", frame,
+ list_append(list_new(0, "property-set"), unique), 0);
+
         var_set(newstr(var->value), list_copy(0, val), VAR_SET);
     }
     else
     {
         val = list_copy(0, val);
     }
-
+
     string_free(var);
     /* The 'unique' variable is freed in 'call_rule'. */
     list_free(sorted);
@@ -105,5 +105,4 @@
         char* args[] = { "raw-properties", "*", 0 };
         declare_native_rule("property-set", "create", args, property_set_create, 1);
     }
-
 }

Modified: branches/proto/v3/tools/jam/src/native.c
==============================================================================
--- branches/proto/v3/tools/jam/src/native.c (original)
+++ branches/proto/v3/tools/jam/src/native.c 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -9,15 +9,14 @@
 # define C0 (char *)0
 
 
-void declare_native_rule(char* module, char* rule, char** args,
+void declare_native_rule(char* module, char* rule, char** args,
                          LIST*(*f)(PARSE*, FRAME*), int version)
-
 {
     module_t* m = bindmodule(module);
     if (m->native_rules == 0) {
         m->native_rules = hashinit( sizeof( native_rule_t ), "native rules");
     }
-
+
     {
         native_rule_t n, *np = &n;
         n.name = rule;
@@ -25,14 +24,13 @@
         {
             n.arguments = args_new();
             lol_build( n.arguments->data, args );
- }
+ }
         else
         {
             n.arguments = 0;
         }
- n.procedure = parse_make( f, P0, P0, P0, C0, C0, 0 );
+ n.procedure = parse_make( f, P0, P0, P0, C0, C0, 0 );
         n.version = version;
         hashenter(m->native_rules, (HASHDATA**)&np);
     }
 }
-

Modified: branches/proto/v3/tools/quickbook/detail/actions.cpp
==============================================================================
--- branches/proto/v3/tools/quickbook/detail/actions.cpp (original)
+++ branches/proto/v3/tools/quickbook/detail/actions.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -1096,6 +1096,21 @@
             << " </author>\n";
     }
 
+ void xml_copyright::operator()(std::pair<std::vector<std::string>, std::string> const& copyright) const
+ {
+ out << "\n" << " <copyright>\n";
+
+ for_each(
+ copyright.first.begin()
+ , copyright.first.end()
+ , xml_year(out));
+
+ out << " <holder>" << copyright.second << "</holder>\n"
+ << " </copyright>\n"
+ << "\n"
+ ;
+ }
+
     void xml_year::operator()(std::string const &year) const
     {
         out << " <year>" << year << "</year>\n";
@@ -1170,19 +1185,12 @@
             out << " </authorgroup>\n";
         }
 
- if (!actions.doc_copyright_holder.empty())
+ if (!actions.doc_copyrights.empty())
         {
- out << "\n" << " <copyright>\n";
-
             for_each(
- actions.doc_copyright_years.begin()
- , actions.doc_copyright_years.end()
- , xml_year(out));
-
- out << " <holder>" << actions.doc_copyright_holder << "</holder>\n"
- << " </copyright>\n"
- << "\n"
- ;
+ actions.doc_copyrights.begin()
+ , actions.doc_copyrights.end()
+ , xml_copyright(out));
         }
 
         if (qbk_version_n < 103)

Modified: branches/proto/v3/tools/quickbook/detail/actions.hpp
==============================================================================
--- branches/proto/v3/tools/quickbook/detail/actions.hpp (original)
+++ branches/proto/v3/tools/quickbook/detail/actions.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -743,6 +743,18 @@
         collector& out;
     };
 
+ struct xml_copyright
+ {
+ // Handles xml copyright
+
+ xml_copyright(collector& out)
+ : out(out) {}
+
+ void operator()(std::pair<std::vector<std::string>, std::string> const &copyright) const;
+
+ collector& out;
+ };
+
     void pre(collector& out, quickbook::actions& actions, bool ignore_docinfo = false);
     void post(collector& out, quickbook::actions& actions, bool ignore_docinfo = false);
 

Modified: branches/proto/v3/tools/quickbook/detail/actions_class.cpp
==============================================================================
--- branches/proto/v3/tools/quickbook/detail/actions_class.cpp (original)
+++ branches/proto/v3/tools/quickbook/detail/actions_class.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -24,8 +24,7 @@
         , doc_version()
         , doc_id()
         , doc_dirname()
- , doc_copyright_years()
- , doc_copyright_holder()
+ , doc_copyrights()
         , doc_purpose()
         , doc_category()
         , doc_authors()

Modified: branches/proto/v3/tools/quickbook/detail/actions_class.hpp
==============================================================================
--- branches/proto/v3/tools/quickbook/detail/actions_class.hpp (original)
+++ branches/proto/v3/tools/quickbook/detail/actions_class.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -28,6 +28,7 @@
 
         typedef std::vector<std::string> string_list;
         typedef std::vector<std::pair<std::string, std::string> > author_list;
+ typedef std::vector<std::pair<string_list, std::string> > copyright_list;
         typedef std::pair<char, int> mark_type;
         static int const max_template_depth = 100;
 
@@ -37,8 +38,7 @@
         std::string doc_version;
         std::string doc_id;
         std::string doc_dirname;
- string_list doc_copyright_years;
- std::string doc_copyright_holder;
+ copyright_list doc_copyrights;
         std::string doc_purpose;
         std::string doc_category;
         author_list doc_authors;

Modified: branches/proto/v3/tools/quickbook/doc_info.hpp
==============================================================================
--- branches/proto/v3/tools/quickbook/doc_info.hpp (original)
+++ branches/proto/v3/tools/quickbook/doc_info.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -66,7 +66,7 @@
                               doc_version
                             | doc_id
                             | doc_dirname
- | doc_copyright
+ | doc_copyright [push_back_a(actions.doc_copyrights, copyright)]
                             | doc_purpose [actions.extract_doc_purpose]
                             | doc_category
                             | doc_authors
@@ -103,12 +103,12 @@
                     ;
 
                 doc_copyright =
- "copyright" >> hard_space
- >> +( repeat_p(4)[digit_p] [push_back_a(actions.doc_copyright_years)]
+ "copyright" >> hard_space [clear_a(copyright.first)]
+ >> +( repeat_p(4)[digit_p] [push_back_a(copyright.first)]
>> space
                         )
>> space
- >> (*(anychar_p - ']')) [assign_a(actions.doc_copyright_holder)]
+ >> (*(anychar_p - ']')) [assign_a(copyright.second)]
                     ;
 
                 doc_purpose =
@@ -178,6 +178,7 @@
 
             bool unused;
             std::pair<std::string, std::string> name;
+ std::pair<std::vector<std::string>, std::string> copyright;
             rule<Scanner> doc_info, doc_title, doc_version, doc_id, doc_dirname,
                             doc_copyright, doc_purpose,doc_category, doc_authors,
                             doc_author, comment, space, hard_space, doc_license,

Modified: branches/proto/v3/tools/regression/src/regression.py
==============================================================================
--- branches/proto/v3/tools/regression/src/regression.py (original)
+++ branches/proto/v3/tools/regression/src/regression.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -435,7 +435,7 @@
                 b = os.path.basename( self.local )
                 tag = b[ 0: b.find( '.' ) ]
                 self.log( 'Tag: "%s"' % tag )
- self.unpack_tarball( local, self.boost_root )
+ self.unpack_tarball( self.local, self.boost_root )
                 
             elif self.have_source:
                 if not self.incremental: self.command_cleanup( [ 'bin' ] )

Deleted: branches/proto/v3/tools/release/make_tarballs.py
==============================================================================
--- branches/proto/v3/tools/release/make_tarballs.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,373 +0,0 @@
-# Copyright (c) MetaCommunications, Inc. 2003-2004
-#
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
-
-import sys
-import os
-import shutil
-import optparse
-
-
-import utils
-
-my_location = os.path.abspath( os.path.dirname( sys.argv[0] ) )
-
-def accept_args( args ):
- #( release_version, cvs_tag, sf_user, temp_dir, start_step ) = accept_args( sys.argv[ 1: ] )
- parser = optparse.OptionParser()
- parser.add_option( "-v", "--release-version", dest="release_version", metavar="release-version", help="release version (e.g. 1.32.0)")
- parser.add_option( "", "--tag", dest="tag", help="CVS tag" )
- parser.add_option( "-r", "--cvs-branch", dest="cvs_branch", metavar="cvs-branch"
- , help = "cvs branch to get the sources from (e.g RC_1_32_0). Important: it is case sensitive" )
- parser.add_option( "-u", "--sf-user", dest="sf_user", metavar="sf-user"
- , help = "SourceForge user name (for CVS)" )
- parser.add_option( "-t", "--toolset", dest="toolset", help="toolset to use to build needed tools" )
- parser.add_option( "-s", "--start-step", dest="start_step" )
- parser.usage = "make_tarballs [options] target_directory \n\n" + \
- "Requirements:\n" + \
- " CVS:\n"+ \
- " cvs - (windows) to export sources with windows newlines \n" + \
- " /usr/bin/cvs - (cygwin) to export sources with posix newlines\n" + \
- " Utilities:\n" + \
- " mv - (cygwin) posix move\n" + \
- " /usr/bin/find - (cygwin) to export sources with posix newlines\n" + \
- " 7z - to create zipball\n" + \
- " BoostBook generation:\n" + \
- " bjam\n" + \
- " user-config.jam - in user directory ($HOME/%HOME%) for BoostBook generation\n" + \
- " java\n" + \
- " doxygen\n"
-
-
-
- ( options, args ) = parser.parse_args( args )
-
- temp_dir = None
- start_step = None
- if ( len( args ) > 0 ): temp_dir = args[0]
-
-
- ( version, tag, user, toolset, start_step ) = ( options.release_version
- , options.cvs_branch
- , options.sf_user
- , options.toolset
- , options.start_step )
-
- if ( start_step is None ): start_step = ""
-
- def required( value, name ):
- if ( value is None ):
- print "%s should be specified." % name
- parser.print_help()
- sys.exit( 1 )
-
- required( version, "version" )
- required( tag, "tag" )
- required( user, "user" )
- required( temp_dir, "temp_dir" )
- required( toolset, "toolset" )
-
- return ( version, tag, user, toolset, temp_dir, start_step )
-
-
-def remove_directory( directory ):
- if os.path.exists( directory ):
- print " Removing directory %s" % directory
- os.system( 'rd /s /q "%s"' % directory )
-
-def clean_directory( directory ):
- remove_directory( directory )
- print " Creating directory %s" % directory
- os.makedirs( directory )
-
-def listdir_recursively( root, path="" ):
- # recursive listdir
- files = []
- try:
- for file in os.listdir(os.path.join(root, path)):
- pathname = os.path.join(path, file)
- if os.path.isdir(os.path.join(root, pathname)):
- files.extend(listdir_recursively(root, pathname))
- else:
- files.append(pathname)
- except OSError:
- pass
- return files
-
-def find_file( root, name ):
- print root
- files = listdir_recursively( root )
- for file in files:
- # print file
- if os.path.basename( file ) == name:
- return os.path.join( root, file )
- return None
-
-start_dir = os.getcwd()
-
-class make_tarballs( utils.step_controller ):
- def __init__( self, release_version, cvs_tag, sf_user, toolset, temp_dir, start_step ):
- utils.step_controller.__init__( self, start_step )
- self.release_version_ = release_version
- self.cvs_tag_ = cvs_tag
- self.sf_user_ = sf_user
- self.toolset_ = toolset
- self.temp_dir_ = temp_dir
-
- def run( self ):
- archives = []
-
- win_build_results = self.build_win( self.release_version_
- , self.cvs_tag_
- , self.sf_user_
- , self.temp_dir_ )
- archives.extend( win_build_results[1] )
-
- archives.extend( self.build_unix( self.release_version_
- , self.cvs_tag_
- , self.sf_user_
- , self.temp_dir_
- , win_build_results[0] ) )
-
-
- # os.chdir( start_dir )
- # for archive in archives:
- # shutil.copy( archive, start_dir )
-
-
- def make_temp_platform( self, temp, platform ):
- temp_platform = os.path.join( temp, platform )
- if not self.is_skipping():
- clean_directory( temp_platform )
- return temp_platform
-
- def cvs_export( self, sf_user, cvs_tag, release_version, shell = "%s" ):
- if not self.is_skipping():
- print " Exporting..."
- cvs_export_template = 'cvs -d:ext:%(user)s_at_[hidden]:/cvsroot/boost -z9 export -r %(branch)s boost'
-
- cmd = cvs_export_template % { "user": sf_user
- , "branch" : cvs_tag }
-
- print cmd
- os.system( shell % cmd )
- os.system( "del /S/F/Q .cvsignore >nul" )
- # have to use mv instead of os.rename - cygwin cvs sets strange directory permssions
- # which Windows rename or Python's os.rename cannot deal with
- os.system( "mv boost boost_%s" % release_version )
- return "boost_%s" % release_version
-
- def build_win( self, release_version, cvs_tag, sf_user, temp_dir ):
-
- if "win.export":
- self.start_step( "win.export", "Exporting windows copy" )
-
- temp_win = self.make_temp_platform( temp_dir, "win" )
- os.chdir( temp_win )
-
- exported_dir = self.cvs_export( sf_user, cvs_tag, release_version )
- self.finish_step( "win.export" )
-
- self.make_docs( os.path.abspath( exported_dir ), temp_dir )
-
- if self.start_step( "win.make_readonly", "Making all files writable" ):
- os.chdir( temp_win )
- utils.checked_system( [ "attrib /S -R *.*" ] )
- self.finish_step( "win.make_readonly" )
-
- zip_name = "boost_%s.zip" % release_version
- os.chdir( temp_win )
-
-
- if self.start_step( "win.zip", " Zipping" ):
- print " Zipping"
- if os.path.exists( zip_name ): os.unlink( zip_name )
-
- utils.checked_system( ["7z a -r -tzip %s %s\* > %s" % ( zip_name, "boost_%s" % release_version, zip_name + ".log" ) ] )
- self.finish_step( "win.zip" )
-
-
- return ( os.path.abspath( exported_dir ), [ os.path.abspath( zip_name ) ] )
-
- def make_docs( self, boost_directory, temp_dir ):
- boostbook_temp = os.path.join( boost_directory, "bin.v2" )
- tools_directory = os.path.join( temp_dir, "tools" )
- if not os.path.exists( tools_directory ):
- os.makedirs( tools_directory )
-
- if self.start_step( "win.make_docs.setup_tools", "Setting up BoostBook tools" ):
- sys.path.append( sys.path[0] + "/../boostbook" )
- print sys.path
- import setup_boostbook
- os.environ[ "BOOST_ROOT" ] = boost_directory
- setup_boostbook.setup_boostbook( os.path.join( temp_dir, "tools" ) )
-
- if self.start_step( "win.make_docs.clean", "Clearing \"bin.v2" ):
- if os.path.exists( boostbook_temp ):
- shutil.rmtree( boostbook_temp )
- self.finish_step( "win.make_docs.clean" )
-
-
- cd = os.getcwd()
- os.chdir( os.path.join( boost_directory, "doc" ) )
-
- if self.start_step( "win.make_docs.correct_permissions", "Making html's writable" ):
- utils.checked_system(
- [
- "cd html"
- , "attrib -R *"
- , "cd .."
- ] )
- self.finish_step( "win.make_docs.correct_permissions" )
-
- def generate( output_format ):
- if self.start_step( "win.make_docs.%s" % output_format, ' Generating %s' % output_format ):
- utils.checked_system( [
- # "set HOME=%s" % my_location
- "%s -d2 --v2 %s " % ( bjam_path(), output_format )
- ] )
- self.finish_step( "win.make_docs.%s" % output_format )
-
- generate( "html" )
- generate( "docbook" )
- generate( "fo" )
-
- if self.start_step( "win.make_docs.copy_docs", "Copying docs into doc directory" ):
- shutil.copy( os.path.join( boostbook_temp, "doc", self.toolset_, "debug", "boost.docbook" ), "boost.docbook" )
- shutil.copy( os.path.join( boostbook_temp, "doc", self.toolset_, "debug", "boost.fo" ), "boost.fo" )
- self.finish_step( "win.make_docs.copy_docs" )
-
-
- if self.start_step( "win.make_docs.clean2", "Copying docs into doc directory" ):
- shutil.rmtree( boostbook_temp )
- shutil.rmtree( "xml" )
- self.finish_step( "win.make_docs.clean2" )
-
- if self.start_step( "win.make_docs.bb_userman", "Creating Boost.Build user manual" ):
- os.chdir( os.path.join( boost_directory, "tools", "build", "v2", "doc" ) )
-
- utils.checked_system( [
-# "set HOME=%s" % my_location
- "%s -d2 --v2 pdf" % bjam_path()
- ] )
-
- for f in [ "userman.pdf" ]:
- shutil.copy( find_file( os.path.join( boostbook_temp ), f ), f )
-
- shutil.rmtree( boostbook_temp )
- self.finish_step( "win.make_docs.bb_userman" )
-
- if self.start_step( "win.make_docs.clean3", boost_directory ):
- for i in os.walk( boost_directory ):
- for f in i[2]:
- full_path = os.path.join( i[0], f )
- if os.path.splitext( f )[1] in [ ".boostbook" ] \
- and os.access( full_path, os.W_OK ):
- os.unlink( full_path )
- self.finish_step( "win.make_docs.clean3" )
-
-
- def correct_executable_permissions( self, path ):
- if not self.is_skipping():
- print " Correcting permissions"
- for i in os.walk( path ):
- for f in i[2]:
- if os.path.splitext( f )[1] in ( ".css", ".hpp", ".cpp",\
- ".html", ".htm", ".rst", \
- ".pdf", ".xml", ".png",\
- ".jpg", ".vcproj", ".pattern2", \
- ".jam", ".bat", ".sty", ".diff" ) \
- or os.path.basename( f ).lower() in ( "jamfile", "todo", "makefile", "jamrules", "gnumakefile" ):
- print os.path.join( i[0], f )
- os.system( "chmod a-x %s" % os.path.join( i[0], f ) )
-
-
- def build_unix( self, release_version, cvs_tag, sf_user, temp_dir, win_build_dir ):
-
- self.start_step( "unix.export", "Exporting unix copy" )
-
- temp_unix = self.make_temp_platform( temp_dir, "unix" )
- os.chdir( temp_unix )
-
- exported_dir = self.cvs_export( sf_user, cvs_tag, release_version, "bash -c \"/usr/bin/%s\"" )
- self.correct_executable_permissions( "." )
- self.finish_step( "unix.export" )
-
- self.copy_docs_to_unix( os.path.abspath( exported_dir )
- , win_build_dir )
-
- if self.start_step( "unix.make_readonly", "Making all files readonly" ):
- utils.checked_system( [ "chmod -R a-w+r,u+w %s" % temp_unix ] )
- utils.checked_system( [ "bash -c /usr/bin/find %s -type d -exec chmod u+w {} ;" % temp_unix ] )
- self.finish_step( "unix.make_readonly" )
-
- gz_archive_name = "boost_%s" % release_version + ".tar.gz"
- if self.start_step( "unix.gz", " Making .gz" ):
- if os.path.exists( gz_archive_name ): os.unlink( gz_archive_name )
- os.system( "tar cfz %s %s" % ( gz_archive_name, "boost_%s" % release_version ) )
- self.finish_step( "unix.gz" )
-
- bz2_archive_name = "boost_%s" % release_version + ".tar.bz2"
- if self.start_step( "unix.bz2", " Making .bz2" ):
- if os.path.exists( bz2_archive_name ): os.unlink( bz2_archive_name )
- os.system( 'bash -c "gunzip -c %s | bzip2 > %s"' % ( gz_archive_name, bz2_archive_name ) )
- self.finish_step( "unix.bz2" )
-
- return [ os.path.abspath( x ) for x in ( gz_archive_name, bz2_archive_name ) ]
-
- def remove_x_permission( self, directory ):
- for i in os.walk( directory ):
- for f in i[1]:
- os.system( "chmod a=xr,u=rwx %s" % os.path.join( i[0], f ) )
- for f in i[2]:
- os.system( "chmod a=r,u=rw %s" % os.path.join( i[0], f ) )
-
- def copy_docs_to_unix( self, unix_boost_directory, win_boost_directory ):
- if self.start_step( "unix.copy_docs", "Copying docs to unix copy" ):
- doc_directory = os.path.join( unix_boost_directory, "doc" )
- doc_html_directory = os.path.join( doc_directory, "html" )
- remove_directory( doc_html_directory )
- utils.checked_system( [
- "cp -R %s %s " % ( os.path.join( win_boost_directory, "doc", "html" )
- , doc_html_directory )
- ] )
- for f in [ "boost.docbook", "boost.fo" ]:
- utils.checked_system( [
- "cp %s %s" % ( os.path.join( win_boost_directory, "doc", f )
- , os.path.join( doc_directory, f ) )
- ] )
-
- self.remove_x_permission( doc_directory )
-
- boost_build_doc_directory = os.path.join( unix_boost_directory, "tools", "build", "v2", "doc" )
- boost_build_doc_html_directory = os.path.join( boost_build_doc_directory, "html" )
-
- remove_directory( boost_build_doc_html_directory )
- utils.checked_system( [
- "cp -R %s %s " % ( os.path.join( win_boost_directory, "tools", "build", "v2", "doc", "html" )
- , boost_build_doc_html_directory ) ] )
-
- for f in [ "userman.pdf" ]:
- utils.checked_system( [
- "cp %s %s " % ( os.path.join( win_boost_directory, "tools", "build", "v2", "doc", f )
- , os.path.join( boost_build_doc_directory, f ) ) ] )
-
- self.remove_x_permission( boost_build_doc_directory )
- self.finish_step( "unix.copy_docs" )
-
-
-def bjam_path():
- if os.path.exists( os.path.join( my_location, "bjam.exe" ) ):
- return os.path.join( my_location, "bjam.exe" )
- else:
- return "bjam.exe"
-
-def main():
- ( release_version, cvs_tag, sf_user, toolset, temp_dir, start_step ) = accept_args( sys.argv[ 1: ] )
-
- make_tarballs( release_version, cvs_tag, sf_user, toolset, temp_dir, start_step ).run()
-
-if __name__ == "__main__":
- main()

Deleted: branches/proto/v3/tools/release/utils.py
==============================================================================
--- branches/proto/v3/tools/release/utils.py 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
+++ (empty file)
@@ -1,52 +0,0 @@
-import string
-
-import os
-
-class failure_exception:
- def __init__( self, rc ):
- self.rc_ = rc
-
- def __str__( self ):
- return "rc: %d" % self.rc_
-
-def system( commands ):
- if os.path.exists( "tmp.cmd" ):
- os.chmod( "tmp.cmd", 0777 )
- os.unlink( "tmp.cmd" )
-
- f = open( "tmp.cmd", "w" )
- f.write( string.join( commands, "\n" ) )
- f.close()
- rc = os.system( "tmp.cmd" )
- os.chmod( "tmp.cmd", 0777 )
- os.unlink( "tmp.cmd" )
- return rc
-
-def checked_system( commands, valid_return_codes = [ 0 ] ):
- rc = system( commands )
- if rc not in [ 0 ] + valid_return_codes: raise failure_exception( rc )
- return rc
-
-class step_controller:
- def __init__( self, start_step ):
- self.current_step_ = None;
- self.skip_to_step_ = start_step
-
- def start_step( self, step_name, start_message ):
- self.current_step_ = step_name
- if self.is_skipping( step_name ):
- print "[%s] Skipping." % step_name
- return 0
- else:
- self.skip_to_step_ = ""
- print "[%s] %s" % ( step_name, start_message )
- return 1
-
- def finish_step( self, step_name ):
- print "[%s] Finished" % step_name
-
- def is_skipping( self, step_name = None ):
- if step_name is None: step_name = self.current_step_
- return self.skip_to_step_ != "" and self.skip_to_step_ != step_name
-
-

Modified: branches/proto/v3/tools/wave/build/Jamfile.v2
==============================================================================
--- branches/proto/v3/tools/wave/build/Jamfile.v2 (original)
+++ branches/proto/v3/tools/wave/build/Jamfile.v2 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
 #
 # http://www.boost.org/
 #
-# Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+# Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
 # Software License, Version 1.0. (See accompanying file
 # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -24,6 +24,7 @@
     /boost//thread
     /boost//date_time
     :
+ <threading>multi
 # <debug-symbols>on
     :
     release

Modified: branches/proto/v3/tools/wave/cpp.cpp
==============================================================================
--- branches/proto/v3/tools/wave/cpp.cpp (original)
+++ branches/proto/v3/tools/wave/cpp.cpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/
@@ -139,7 +139,7 @@
         "Wave: A Standard conformant C++ preprocessor based on the Boost.Wave library",
         "http://www.boost.org/",
         "",
- "Copyright (c) 2001-2007 Hartmut Kaiser, Distributed under the Boost",
+ "Copyright (c) 2001-2008 Hartmut Kaiser, Distributed under the Boost",
         "Software License, Version 1.0. (See accompanying file",
         "LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)",
         0

Modified: branches/proto/v3/tools/wave/cpp.hpp
==============================================================================
--- branches/proto/v3/tools/wave/cpp.hpp (original)
+++ branches/proto/v3/tools/wave/cpp.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -3,7 +3,7 @@
 
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/tools/wave/cpp_config.hpp
==============================================================================
--- branches/proto/v3/tools/wave/cpp_config.hpp (original)
+++ branches/proto/v3/tools/wave/cpp_config.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -4,7 +4,7 @@
     
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/tools/wave/cpp_version.hpp
==============================================================================
--- branches/proto/v3/tools/wave/cpp_version.hpp (original)
+++ branches/proto/v3/tools/wave/cpp_version.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/tools/wave/stop_watch.hpp
==============================================================================
--- branches/proto/v3/tools/wave/stop_watch.hpp (original)
+++ branches/proto/v3/tools/wave/stop_watch.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/

Modified: branches/proto/v3/tools/wave/trace_macro_expansion.hpp
==============================================================================
--- branches/proto/v3/tools/wave/trace_macro_expansion.hpp (original)
+++ branches/proto/v3/tools/wave/trace_macro_expansion.hpp 2008-03-05 15:37:04 EST (Wed, 05 Mar 2008)
@@ -2,7 +2,7 @@
     Boost.Wave: A Standard compliant C++ preprocessor library
     http://www.boost.org/
 
- Copyright (c) 2001-2007 Hartmut Kaiser. Distributed under the Boost
+ Copyright (c) 2001-2008 Hartmut Kaiser. Distributed under the Boost
     Software License, Version 1.0. (See accompanying file
     LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================*/


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk